Progress reporting for gui conversion.

This commit is contained in:
John Schember 2009-05-06 19:10:46 -04:00
parent 6368f86626
commit 0a67d84598
3 changed files with 11 additions and 13 deletions

View File

@ -9,8 +9,8 @@ import logging
from calibre.ebooks.conversion.plumber import Plumber from calibre.ebooks.conversion.plumber import Plumber
from calibre.utils.logging import Log from calibre.utils.logging import Log
def gui_convert(input, output, recommendations): def gui_convert(input, output, recommendations, notification):
plumber = Plumber(input, output, Log()) plumber = Plumber(input, output, Log(), notification)
plumber.merge_ui_recommendations(recommendations) plumber.merge_ui_recommendations(recommendations)
plumber.run() plumber.run()

View File

@ -16,21 +16,21 @@ from calibre.gui2.convert import load_specifics
from calibre.gui2.convert.single import NoSupportedInputFormats from calibre.gui2.convert.single import NoSupportedInputFormats
from calibre.gui2.convert.single import Config as SingleConfig from calibre.gui2.convert.single import Config as SingleConfig
def convert_single_ebook(parent, db, row_ids, auto_conversion=False, out_format=None): def convert_single_ebook(parent, db, book_ids, auto_conversion=False, out_format=None):
changed = False changed = False
jobs = [] jobs = []
bad = [] bad = []
total = len(row_ids) total = len(book_ids)
if total == 0: if total == 0:
return None, None, None return None, None, None
parent.status_bar.showMessage(_('Starting conversion of %d books') % total, 2000) parent.status_bar.showMessage(_('Starting conversion of %d books') % total, 2000)
for i, row_id in enumerate(row_ids): for i, book_id in enumerate(book_ids):
temp_files = [] temp_files = []
try: try:
d = SingleConfig(parent, db, row_id, None, out_format) d = SingleConfig(parent, db, book_id, None, out_format)
if auto_conversion: if auto_conversion:
result = QDialog.Accepted result = QDialog.Accepted
@ -38,8 +38,8 @@ def convert_single_ebook(parent, db, row_ids, auto_conversion=False, out_format=
result = d.exec_() result = d.exec_()
if result == QDialog.Accepted: if result == QDialog.Accepted:
mi = db.get_metadata(row_id, True) mi = db.get_metadata(book_id, True)
in_file = db.format_abspath(row_id, d.input_format, True) in_file = db.format_abspath(book_id, d.input_format, True)
out_file = PersistentTemporaryFile('.' + d.output_format) out_file = PersistentTemporaryFile('.' + d.output_format)
out_file.write(d.output_format) out_file.write(d.output_format)
@ -50,11 +50,11 @@ def convert_single_ebook(parent, db, row_ids, auto_conversion=False, out_format=
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] temp_files = [out_file]
jobs.append(('gui_convert', args, desc, d.output_format.upper(), row_id, temp_files)) jobs.append(('gui_convert', args, desc, d.output_format.upper(), book_id, temp_files))
changed = True changed = True
except NoSupportedInputFormats: except NoSupportedInputFormats:
bad.append(row_id) bad.append(book_id)
if bad != []: if bad != []:
res = [] res = []
@ -67,7 +67,6 @@ def convert_single_ebook(parent, db, row_ids, auto_conversion=False, out_format=
return jobs, changed, bad return jobs, changed, bad
def convert_bulk_ebooks(*args): def convert_bulk_ebooks(*args):
pass pass
#(fmt, parent, db, comics, others): #(fmt, parent, db, comics, others):

View File

@ -50,9 +50,8 @@ PARALLEL_FUNCS = {
'ebook-convert' : 'ebook-convert' :
('calibre.ebooks.conversion.cli', 'main', {}, None), ('calibre.ebooks.conversion.cli', 'main', {}, None),
'gui_convert' : 'gui_convert' :
('calibre.gui2.convert.gui_conversion', 'gui_convert', {}, None), ('calibre.gui2.convert.gui_conversion', 'gui_convert', {}, 'notification'),
} }