version 0.4.56

This commit is contained in:
Kovid Goyal 2008-05-18 16:36:46 -07:00
parent 941de96559
commit b6231d5750
7 changed files with 44 additions and 39 deletions

View File

@ -134,9 +134,10 @@ _check_symlinks_prescript()
for dep in deps: for dep in deps:
match = re.search(r'(Qt\w+?)\.framework', dep) match = re.search(r'(Qt\w+?)\.framework', dep)
if not match: if not match:
print dep match = re.search(r'(phonon)\.framework', dep)
raise Exception('a') if not match:
continue print dep
raise Exception('Unknown Qt dependency')
module = match.group(1) module = match.group(1)
newpath = fp + '%s.framework/Versions/Current/%s'%(module, module) newpath = fp + '%s.framework/Versions/Current/%s'%(module, module)
cmd = ' '.join(['install_name_tool', '-change', dep, newpath, path]) cmd = ' '.join(['install_name_tool', '-change', dep, newpath, path])
@ -188,9 +189,7 @@ _check_symlinks_prescript()
def run(self): def run(self):
plugin_files = self.build_plugins()
py2app.run(self) py2app.run(self)
self.add_qt_plugins()
resource_dir = os.path.join(self.dist_dir, resource_dir = os.path.join(self.dist_dir,
APPNAME + '.app', 'Contents', 'Resources') APPNAME + '.app', 'Contents', 'Resources')
frameworks_dir = os.path.join(os.path.dirname(resource_dir), 'Frameworks') frameworks_dir = os.path.join(os.path.dirname(resource_dir), 'Frameworks')
@ -208,6 +207,8 @@ _check_symlinks_prescript()
f.close() f.close()
os.chmod(path, stat.S_IXUSR|stat.S_IXGRP|stat.S_IXOTH|stat.S_IREAD\ os.chmod(path, stat.S_IXUSR|stat.S_IXGRP|stat.S_IXOTH|stat.S_IREAD\
|stat.S_IWUSR|stat.S_IROTH|stat.S_IRGRP) |stat.S_IWUSR|stat.S_IROTH|stat.S_IRGRP)
self.add_qt_plugins()
plugin_files = self.build_plugins()
print print
print 'Adding clit' print 'Adding clit'
@ -219,8 +220,12 @@ _check_symlinks_prescript()
print 'Adding pdftohtml' print 'Adding pdftohtml'
os.link(os.path.expanduser('~/pdftohtml'), os.path.join(frameworks_dir, 'pdftohtml')) os.link(os.path.expanduser('~/pdftohtml'), os.path.join(frameworks_dir, 'pdftohtml'))
print 'Adding plugins' print 'Adding plugins'
module_dir = os.path.join(resource_dir, 'lib', 'python2.5', 'lib-dynload')
for src, dest in plugin_files: for src, dest in plugin_files:
os.link(src, os.path.join(frameworks_dir, dest)) if 'dylib' in dest:
os.link(src, os.path.join(frameworks_dir, dest))
else:
os.link(src, os.path.join(module_dir, dest))
print print
print 'Installing prescipt' print 'Installing prescipt'
sf = [os.path.basename(s) for s in all_names] sf = [os.path.basename(s) for s in all_names]
@ -264,7 +269,8 @@ def main():
'argv_emulation' : True, 'argv_emulation' : True,
'iconfile' : 'icons/library.icns', 'iconfile' : 'icons/library.icns',
'frameworks': ['libusb.dylib', 'libunrar.dylib'], 'frameworks': ['libusb.dylib', 'libunrar.dylib'],
'includes' : ['sip', 'pkg_resources', 'PyQt4.QtSvg', 'includes' : ['sip', 'pkg_resources', 'PyQt4.QtXml',
'PyQt4.QtSvg',
'mechanize', 'ClientForm', 'usbobserver', 'mechanize', 'ClientForm', 'usbobserver',
'genshi', 'calibre.web.feeds.recipes.*', 'genshi', 'calibre.web.feeds.recipes.*',
'IPython.Extensions.*', 'pydoc'], 'IPython.Extensions.*', 'pydoc'],
@ -284,7 +290,7 @@ def main():
setup_requires = ['py2app'], setup_requires = ['py2app'],
) )
if auto: if auto:
subprocess.call(('sudo', 'shutdown', '-h', '+1')) subprocess.call(('sudo', 'shutdown', '-h', '+2'))
return 0 return 0
if __name__ == '__main__': if __name__ == '__main__':

View File

@ -1,7 +1,7 @@
''' E-book management software''' ''' E-book management software'''
__license__ = 'GPL v3' __license__ = 'GPL v3'
__copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>' __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
__version__ = '0.4.55' __version__ = '0.4.56'
__docformat__ = "epytext" __docformat__ = "epytext"
__author__ = "Kovid Goyal <kovid at kovidgoyal.net>" __author__ = "Kovid Goyal <kovid at kovidgoyal.net>"
__appname__ = 'calibre' __appname__ = 'calibre'

View File

@ -13,6 +13,7 @@ from calibre.gui2 import qstring_to_unicode, error_dialog, question_dialog
from calibre.gui2.widgets import PythonHighlighter from calibre.gui2.widgets import PythonHighlighter
from calibre.utils import sendmail from calibre.utils import sendmail
from calibre.ptempfile import PersistentTemporaryFile from calibre.ptempfile import PersistentTemporaryFile
from calibre import isosx
class UserProfiles(QDialog, Ui_Dialog): class UserProfiles(QDialog, Ui_Dialog):
@ -69,7 +70,7 @@ class UserProfiles(QDialog, Ui_Dialog):
pt.close() pt.close()
sendmail(subject='Recipe for '+title, sendmail(subject='Recipe for '+title,
attachments=[pt.name], attachments=[pt.name],
body='The attached file: %s is a recipe to download %s.'%(os.path.basename(pt.name), title)) body=_('Save the text below into a file named recipe.py and send the file to your friends, to allow them to use this recipe.') if isosx else _('The attached file: %s is a recipe to download %s.')%(os.path.basename(pt.name), title))

View File

@ -32,7 +32,7 @@ makefile = pyqtconfig.QtGuiModuleMakefile (
# ".dll" extension on Windows). # ".dll" extension on Windows).
makefile.extra_lib_dirs = ['../../.build', '..\\..\\release', '../../'] makefile.extra_lib_dirs = ['../../.build', '..\\..\\release', '../../']
makefile.extra_libs = ['pictureflow0' if 'win' in sys.platform and 'darwin' not in sys.platform else "pictureflow"] makefile.extra_libs = ['pictureflow0' if 'win' in sys.platform and 'darwin' not in sys.platform else "pictureflow"]
makefile.extra_cflags = ['-arch i386', '-arch ppc'] makefile.extra_cflags = ['-arch i386', '-arch ppc'] if 'darwin' in sys.platform else []
makefile.extra_cxxflags = makefile.extra_cflags makefile.extra_cxxflags = makefile.extra_cflags
if 'linux' in sys.platform: if 'linux' in sys.platform:
makefile.extra_lflags = ['-Wl,--rpath=.'] makefile.extra_lflags = ['-Wl,--rpath=.']

View File

@ -85,7 +85,7 @@ class LocationDelegate(QAbstractItemDelegate):
def __init__(self): def __init__(self):
QAbstractItemDelegate.__init__(self) QAbstractItemDelegate.__init__(self)
self.icon_rect = QRect(0, 10, 150, 45) self.icon_rect = QRect(0, 10, 150, 45)
self.buffer = 0 self.buffer = 5
def get_rects(self, index, option): def get_rects(self, index, option):
row = index.row() row = index.row()
@ -100,33 +100,21 @@ class LocationDelegate(QAbstractItemDelegate):
return irect.united(trect).size() return irect.united(trect).size()
def paint(self, painter, option, index): def paint(self, painter, option, index):
selected = bool(option.state & QStyle.State_Selected)
active = bool(option.state & QStyle.State_Active)
font = QFont() font = QFont()
font.setBold(True) font.setPointSize(9)
font.setPointSize(8)
mode = QIcon.Active if active else QIcon.Selected if selected else QIcon.Normal
icon = QIcon(index.model().data(index, Qt.DecorationRole)) icon = QIcon(index.model().data(index, Qt.DecorationRole))
highlight = getattr(index.model(), 'highlight_row', -1) == index.row() highlight = getattr(index.model(), 'highlight_row', -1) == index.row()
text = index.model().data(index, Qt.DisplayRole).toString() text = index.model().data(index, Qt.DisplayRole).toString()
painter.save() painter.save()
irect, trect = self.get_rects(index, option) irect, trect = self.get_rects(index, option)
mode = QIcon.Normal
if highlight: if highlight:
font.setItalic(True) font.setBold(True)
mode = QIcon.Active
painter.setFont(font) painter.setFont(font)
icon.paint(painter, irect, Qt.AlignHCenter|Qt.AlignTop, mode, QIcon.On) icon.paint(painter, irect, Qt.AlignHCenter|Qt.AlignTop, mode, QIcon.On)
if selected:
brect = painter.drawText(QRectF(trect), Qt.AlignTop|Qt.AlignHCenter, text)
brect.adjust(-3, -0, 3, 0)
painter.fillRect(brect, option.palette.highlight())
painter.save()
painter.setPen(Qt.DotLine)
painter.drawRect(brect)
painter.restore()
painter.setBrush(option.palette.highlightedText())
else:
painter.setBrush(option.palette.text())
painter.drawText(QRectF(trect), Qt.AlignTop|Qt.AlignHCenter, text) painter.drawText(QRectF(trect), Qt.AlignTop|Qt.AlignHCenter, text)
painter.restore() painter.restore()
@ -140,7 +128,12 @@ class LocationModel(QAbstractListModel):
_('Reader\n%s available'), _('Reader\n%s available'),
_('Card\n%s available')] _('Card\n%s available')]
self.free = [-1, -1] self.free = [-1, -1]
self.highlight_row = 0 self.highlight_row = 0
self.tooltips = [
_('Click to see the list of books available on your computer'),
_('Click to see the list of books in the main memory of your reader'),
_('Click to see the list of books on the storage card in your reader')
]
def rowCount(self, parent): def rowCount(self, parent):
return 1 + sum([1 for i in self.free if i >= 0]) return 1 + sum([1 for i in self.free if i >= 0])
@ -154,6 +147,8 @@ class LocationModel(QAbstractListModel):
data = QVariant(text) data = QVariant(text)
elif role == Qt.DecorationRole: elif role == Qt.DecorationRole:
data = self.icons[row] data = self.icons[row]
elif role == Qt.ToolTipRole:
return QVariant(self.tooltips[row])
return data return data
def headerData(self, section, orientation, role): def headerData(self, section, orientation, role):
@ -178,7 +173,8 @@ class LocationView(QListView):
self.reset() self.reset()
QObject.connect(self.selectionModel(), SIGNAL('currentChanged(QModelIndex, QModelIndex)'), self.current_changed) QObject.connect(self.selectionModel(), SIGNAL('currentChanged(QModelIndex, QModelIndex)'), self.current_changed)
self.delegate = LocationDelegate() self.delegate = LocationDelegate()
self.setItemDelegate(self.delegate) self.setItemDelegate(self.delegate)
self.setCursor(Qt.PointingHandCursor)
def current_changed(self, current, previous): def current_changed(self, current, previous):
i = current.row() i = current.row()

View File

@ -39,6 +39,8 @@ def source_files():
def update_po_files(tarball): def update_po_files(tarball):
if not os.getcwd().endswith('translations'):
os.chdir('translations')
tf = tarfile.open(tarball, 'r:gz') tf = tarfile.open(tarball, 'r:gz')
next = tf.next() next = tf.next()
while next is not None: while next is not None:

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: it\n" "Project-Id-Version: it\n"
"POT-Creation-Date: 2008-05-18 08:42+PDT\n" "POT-Creation-Date: 2008-05-18 08:42+PDT\n"
"PO-Revision-Date: 2008-05-03 22:51+0200\n" "PO-Revision-Date: 2008-05-19 22:51+0200\n"
"Last-Translator: Iacopo Benesperi <iacchi@iacchi.org>\n" "Last-Translator: Iacopo Benesperi <iacchi@iacchi.org>\n"
"Language-Team: italiano\n" "Language-Team: italiano\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -531,7 +531,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:243 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:243
msgid "Could not read from thumbnail file:" msgid "Could not read from thumbnail file:"
msgstr "" msgstr "Impossibile leggere dal file della miniatura:"
#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:263 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:263
msgid "" msgid ""
@ -1782,7 +1782,7 @@ msgstr "Aggiungi il tag a quelli disponibili e applicalo al libro corrente"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:64
msgid "No recipe selected" msgid "No recipe selected"
msgstr "" msgstr "Nessuna formula selezionata"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:84
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:94
@ -1843,11 +1843,11 @@ msgstr "Esiste già una formula personalizzata di nome %s. Sovrascriverla?"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:185 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:185
msgid "Choose a recipe file" msgid "Choose a recipe file"
msgstr "" msgstr "Scegliere un file di formula"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:185 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:185
msgid "Recipes" msgid "Recipes"
msgstr "" msgstr "Formule"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:194 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:194
msgid "Add custom news source" msgid "Add custom news source"
@ -1867,11 +1867,11 @@ msgstr "Rimuo&vi formula"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:198 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:198
msgid "&Share recipe" msgid "&Share recipe"
msgstr "" msgstr "Condi&vidi formula"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:199 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:199
msgid "&Load recipe from file" msgid "&Load recipe from file"
msgstr "" msgstr "Carica formula &da file"
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:201 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:201
msgid "" msgid ""