Port compiling of .ui forms

This commit is contained in:
Kovid Goyal 2014-04-11 11:39:50 +05:30
parent ecd89949a2
commit 6004b84c5d
2 changed files with 8 additions and 8 deletions

View File

@ -5,6 +5,7 @@ __docformat__ = 'restructuredtext en'
import sys, os, re, time, random, __builtin__, warnings import sys, os, re, time, random, __builtin__, warnings
__builtin__.__dict__['dynamic_property'] = lambda func: func(None) __builtin__.__dict__['dynamic_property'] = lambda func: func(None)
sys.path.insert(0, '/opt/pyqt5/lib') # QT5XX: Remove this after migration complete
from math import floor from math import floor
from functools import partial from functools import partial

View File

@ -4,7 +4,7 @@ __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
import os, sys, Queue, threading, glob import os, sys, Queue, threading, glob
from threading import RLock from threading import RLock
from urllib import unquote from urllib import unquote
from PyQt4.Qt import (QVariant, QFileInfo, QObject, QBuffer, Qt, from PyQt5.Qt import (QFileInfo, QObject, QBuffer, Qt,
QByteArray, QTranslator, QCoreApplication, QThread, QByteArray, QTranslator, QCoreApplication, QThread,
QEvent, QTimer, pyqtSignal, QDateTime, QDesktopServices, QEvent, QTimer, pyqtSignal, QDateTime, QDesktopServices,
QFileDialog, QFileIconProvider, QSettings, QColor, QFileDialog, QFileIconProvider, QSettings, QColor,
@ -134,7 +134,6 @@ defs['emblem_position'] = 'left'
del defs del defs
# }}} # }}}
NONE = QVariant() # : Null value to return from the data function of item models
UNDEFINED_QDATETIME = QDateTime(UNDEFINED_DATE) UNDEFINED_QDATETIME = QDateTime(UNDEFINED_DATE)
ALL_COLUMNS = ['title', 'ondevice', 'authors', 'size', 'timestamp', 'rating', 'publisher', ALL_COLUMNS = ['title', 'ondevice', 'authors', 'size', 'timestamp', 'rating', 'publisher',
@ -1134,7 +1133,7 @@ def form_to_compiled_form(form):
def build_forms(srcdir, info=None, summary=False): def build_forms(srcdir, info=None, summary=False):
import re, cStringIO import re, cStringIO
from PyQt4.uic import compileUi from PyQt5.uic import compileUi
forms = find_forms(srcdir) forms = find_forms(srcdir)
if info is None: if info is None:
from calibre import prints from calibre import prints
@ -1145,6 +1144,9 @@ def build_forms(srcdir, info=None, summary=False):
return ans return ans
num = 0 num = 0
transdef_pat = re.compile(r'^\s+_translate\s+=\s+QtCore.QCoreApplication.translate$', flags=re.M)
transpat = re.compile(r'_translate\s*\(.+?,\s+"(.+?)(?<!\\)"\)', re.DOTALL)
for form in forms: for form in forms:
compiled_form = form_to_compiled_form(form) compiled_form = form_to_compiled_form(form)
if not os.path.exists(compiled_form) or os.stat(form).st_mtime > os.stat(compiled_form).st_mtime: if not os.path.exists(compiled_form) or os.stat(form).st_mtime > os.stat(compiled_form).st_mtime:
@ -1154,14 +1156,11 @@ def build_forms(srcdir, info=None, summary=False):
compileUi(form, buf) compileUi(form, buf)
dat = buf.getvalue() dat = buf.getvalue()
dat = dat.replace('import images_rc', '') dat = dat.replace('import images_rc', '')
dat = re.sub(r'^ {4}def _translate\(context, text, disambig\):\s+return.*$', ' pass', dat, dat = transdef_pat.sub('', dat)
flags=re.M) dat = transpat.sub(r'_("\1")', dat)
dat = re.compile(r'(?:QtGui.QApplication.translate|(?<!def )_translate)\(.+?,\s+"(.+?)(?<!\\)",.+?\)', re.DOTALL).sub(r'_("\1")', dat)
dat = dat.replace('_("MMM yyyy")', '"MMM yyyy"') dat = dat.replace('_("MMM yyyy")', '"MMM yyyy"')
dat = dat.replace('_("d MMM yyyy")', '"d MMM yyyy"') dat = dat.replace('_("d MMM yyyy")', '"d MMM yyyy"')
dat = pat.sub(sub, dat) dat = pat.sub(sub, dat)
dat = dat.replace('from QtWebKit.QWebView import QWebView',
'from PyQt4 import QtWebKit\nfrom PyQt4.QtWebKit import QWebView')
open(compiled_form, 'wb').write(dat) open(compiled_form, 'wb').write(dat)
num += 1 num += 1