Sync to trunk.

This commit is contained in:
John Schember 2009-06-20 09:39:49 -04:00
commit 05d27a0225
8 changed files with 51 additions and 19 deletions

View File

@ -2,7 +2,7 @@ __license__ = 'GPL v3'
__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
__appname__ = 'calibre' __appname__ = 'calibre'
__version__ = '0.6.0b6' __version__ = '0.6.0b8'
__author__ = "Kovid Goyal <kovid@kovidgoyal.net>" __author__ = "Kovid Goyal <kovid@kovidgoyal.net>"
import re import re

View File

@ -35,12 +35,10 @@ class BEBOOK(USBMS):
SUPPORTS_SUB_DIRS = True SUPPORTS_SUB_DIRS = True
FDI_LUNS = {'lun0':1, 'lun1':0, 'lun2':2}
def windows_sort_drives(self, drives): def windows_sort_drives(self, drives):
main = drives.get('main', None) main = drives.get('main', None)
card = drives.get('carda', None) card = drives.get('carda', None)
if card and main and card < main: if card and main and card > main:
drives['main'] = card drives['main'] = card
drives['carda'] = main drives['carda'] = main
@ -63,7 +61,7 @@ class BEBOOK(USBMS):
except: except:
card_num = None card_num = None
if card_num is not None and main_num is not None and card_num < main_num: if card_num is not None and main_num is not None and card_num > main_num:
names['main'] = card names['main'] = card
names['carda'] = main names['carda'] = main

View File

@ -217,7 +217,7 @@ class EPUBOutput(OutputFormatPlugin):
Perform various markup transforms to get the output to render correctly Perform various markup transforms to get the output to render correctly
in the quirky ADE. in the quirky ADE.
''' '''
from calibre.ebooks.oeb.base import XPNSMAP, XHTML from calibre.ebooks.oeb.base import XPNSMAP, XHTML, OEB_STYLES
from lxml.etree import XPath as _XPath from lxml.etree import XPath as _XPath
from functools import partial from functools import partial
XPath = partial(_XPath, namespaces=XPNSMAP) XPath = partial(_XPath, namespaces=XPNSMAP)
@ -276,12 +276,6 @@ class EPUBOutput(OutputFormatPlugin):
for tag in XPath('//h:img[@src]')(root): for tag in XPath('//h:img[@src]')(root):
tag.set('src', tag.get('src', '').replace('&', '')) tag.set('src', tag.get('src', '').replace('&', ''))
stylesheet = self.oeb.manifest.hrefs['stylesheet.css']
stylesheet.data.add('a { color: inherit; text-decoration: inherit; '
'cursor: default; }')
stylesheet.data.add('a[href] { color: blue; '
'text-decoration: underline; cursor:pointer; }')
special_chars = re.compile(u'[\u200b\u00ad]') special_chars = re.compile(u'[\u200b\u00ad]')
for elem in root.iterdescendants(): for elem in root.iterdescendants():
if getattr(elem, 'text', False): if getattr(elem, 'text', False):
@ -291,5 +285,19 @@ class EPUBOutput(OutputFormatPlugin):
elem.tail = special_chars.sub('', elem.tail) elem.tail = special_chars.sub('', elem.tail)
elem.tail = elem.tail.replace(u'\u2011', '-') elem.tail = elem.tail.replace(u'\u2011', '-')
stylesheet = None
for item in self.oeb.manifest:
if item.media_type.lower() in OEB_STYLES:
stylesheet = item
break
if stylesheet is not None:
stylesheet.data.add('a { color: inherit; text-decoration: inherit; '
'cursor: default; }')
stylesheet.data.add('a[href] { color: blue; '
'text-decoration: underline; cursor:pointer; }')
else:
self.oeb.log.warn('No stylesheet found')

View File

@ -228,7 +228,7 @@ class Config(ResizableDialog, Ui_Dialog):
return return
x = w.commit(save_defaults=False) x = w.commit(save_defaults=False)
recs.update(x) recs.update(x)
self.opf_path, self.cover_path = self.mw.opf_file, self.mw.cover_file self.opf_file, self.cover_file = self.mw.opf_file, self.mw.cover_file
self._recommendations = recs self._recommendations = recs
if self.db is not None: if self.db is not None:
recs['gui_preferred_input_format'] = self.input_format recs['gui_preferred_input_format'] = self.input_format

View File

@ -73,7 +73,8 @@ class JobManager(QAbstractTableModel):
if col == 1: if col == 1:
return QVariant(job.status_text) return QVariant(job.status_text)
if col == 2: if col == 2:
return QVariant(job.percent) p = 100. if job.is_finished else job.percent
return QVariant(p)
if col == 3: if col == 3:
rtime = job.running_time rtime = job.running_time
if rtime is None: if rtime is None:

View File

@ -48,12 +48,21 @@ def convert_single_ebook(parent, db, book_ids, auto_conversion=False, out_format
out_file = PersistentTemporaryFile('.' + d.output_format) out_file = PersistentTemporaryFile('.' + d.output_format)
out_file.write(d.output_format) out_file.write(d.output_format)
out_file.close() out_file.close()
temp_files = []
desc = _('Convert book %d of %d (%s)') % (i + 1, total, repr(mi.title)) desc = _('Convert book %d of %d (%s)') % (i + 1, total, repr(mi.title))
recs = cPickle.loads(d.recommendations) recs = cPickle.loads(d.recommendations)
args = [in_file, out_file.name, recs] args = [in_file, out_file.name, recs]
temp_files = [out_file] if d.opf_file is not None:
recs.append(('read_metadata_from_opf', d.opf_file.name,
OptionRecommendation.HIGH))
temp_files.append(d.opf_file)
if d.cover_file is not None:
recs.append(('cover', d.cover_file.name,
OptionRecommendation.HIGH))
temp_files.append(d.cover_file)
temp_files.append(out_file)
jobs.append(('gui_convert', args, desc, d.output_format.upper(), book_id, temp_files)) jobs.append(('gui_convert', args, desc, d.output_format.upper(), book_id, temp_files))
changed = True changed = True
@ -104,11 +113,23 @@ def convert_bulk_ebook(parent, db, book_ids, out_format=None):
out_file = PersistentTemporaryFile('.' + output_format) out_file = PersistentTemporaryFile('.' + output_format)
out_file.write(output_format) out_file.write(output_format)
out_file.close() out_file.close()
temp_files = []
lrecs = list(recs)
if d.opf_file is not None:
lrecs.append(('read_metadata_from_opf', d.opf_file.name,
OptionRecommendation.HIGH))
temp_files.append(d.opf_file)
if d.cover_file is not None:
lrecs.append(('cover', d.cover_file.name,
OptionRecommendation.HIGH))
temp_files.append(d.cover_file)
desc = _('Convert book %d of %d (%s)') % (i + 1, total, repr(mi.title)) desc = _('Convert book %d of %d (%s)') % (i + 1, total, repr(mi.title))
args = [in_file, out_file.name, recs] args = [in_file, out_file.name, lrecs]
temp_files = [out_file] temp_files.append(out_file)
jobs.append(('gui_convert', args, desc, d.output_format.upper(), book_id, temp_files)) jobs.append(('gui_convert', args, desc, d.output_format.upper(), book_id, temp_files))
changed = True changed = True

View File

@ -190,6 +190,10 @@ class Document(QWebPage):
def animated_scroll_done(self): def animated_scroll_done(self):
self.emit(SIGNAL('animated_scroll_done()')) self.emit(SIGNAL('animated_scroll_done()'))
@pyqtSignature("QString")
def debug(self, msg):
prints(msg)
def reference_mode(self, enable): def reference_mode(self, enable):
self.javascript(('enter' if enable else 'leave')+'_reference_mode()') self.javascript(('enter' if enable else 'leave')+'_reference_mode()')

View File

@ -9,8 +9,8 @@ DEPENDENCIES = [
('setuptools', '0.6c5', 'setuptools', 'python-setuptools', 'python-setuptools-devel'), ('setuptools', '0.6c5', 'setuptools', 'python-setuptools', 'python-setuptools-devel'),
('Python Imaging Library', '1.1.6', 'imaging', 'python-imaging', 'python-imaging'), ('Python Imaging Library', '1.1.6', 'imaging', 'python-imaging', 'python-imaging'),
('libusb', '0.1.12', None, None, None), ('libusb', '0.1.12', None, None, None),
('Qt', '4.5.0', 'qt', 'libqt4-core libqt4-gui', 'qt4'), ('Qt', '4.5.1', 'qt', 'libqt4-core libqt4-gui', 'qt4'),
('PyQt', '4.5.0', 'PyQt4', 'python-qt4', 'PyQt4'), ('PyQt', '4.5.1', 'PyQt4', 'python-qt4', 'PyQt4'),
('python-mechanize', '0.1.11', 'dev-python/mechanize', 'python-mechanize', 'python-mechanize'), ('python-mechanize', '0.1.11', 'dev-python/mechanize', 'python-mechanize', 'python-mechanize'),
('ImageMagick', '6.3.5', 'imagemagick', 'imagemagick', 'ImageMagick'), ('ImageMagick', '6.3.5', 'imagemagick', 'imagemagick', 'ImageMagick'),
('xdg-utils', '1.0.2', 'xdg-utils', 'xdg-utils', 'xdg-utils'), ('xdg-utils', '1.0.2', 'xdg-utils', 'xdg-utils', 'xdg-utils'),