From 15dc2da704f358b41822ddaa21000d4cace026b0 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 15 Nov 2009 20:38:25 -0700 Subject: [PATCH] Bulk conversion: Add option to disable using per-book settings from a previous conversion --- src/calibre/gui2/convert/bulk.py | 7 +++++++ src/calibre/gui2/convert/single.py | 1 + src/calibre/gui2/convert/single.ui | 9 ++++++++- src/calibre/gui2/tools.py | 15 ++++++++++----- src/calibre/manual/conversion.rst | 2 +- 5 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/calibre/gui2/convert/bulk.py b/src/calibre/gui2/convert/bulk.py index 1940b31906..821edd08bd 100644 --- a/src/calibre/gui2/convert/bulk.py +++ b/src/calibre/gui2/convert/bulk.py @@ -31,6 +31,13 @@ class BulkConfig(Config): self.input_label.hide() self.input_formats.hide() + self.opt_individual_saved_settings.setVisible(True) + self.opt_individual_saved_settings.setChecked(True) + self.opt_individual_saved_settings.setToolTip(_('For ' + 'settings that cannot be specified in this dialog, use the ' + 'values saved in a previous conversion (if they exist) instead ' + 'of using the defaults specified in the Preferences')) + self.connect(self.output_formats, SIGNAL('currentIndexChanged(QString)'), self.setup_pipeline) diff --git a/src/calibre/gui2/convert/single.py b/src/calibre/gui2/convert/single.py index c8a4b6bb97..b5cba20c2f 100644 --- a/src/calibre/gui2/convert/single.py +++ b/src/calibre/gui2/convert/single.py @@ -116,6 +116,7 @@ class Config(ResizableDialog, Ui_Dialog): def __init__(self, parent, db, book_id, preferred_input_format=None, preferred_output_format=None): ResizableDialog.__init__(self, parent) + self.opt_individual_saved_settings.setVisible(False) self.db, self.book_id = db, book_id self.setup_input_output_formats(self.db, self.book_id, preferred_input_format, diff --git a/src/calibre/gui2/convert/single.ui b/src/calibre/gui2/convert/single.ui index 6fe57f86a2..290b31aaec 100644 --- a/src/calibre/gui2/convert/single.ui +++ b/src/calibre/gui2/convert/single.ui @@ -33,6 +33,13 @@ + + + + Use &saved conversion settings for individual books + + + @@ -109,7 +116,7 @@ 0 0 810 - 492 + 489 diff --git a/src/calibre/gui2/tools.py b/src/calibre/gui2/tools.py index c3b442ebcb..cb263e9ca6 100644 --- a/src/calibre/gui2/tools.py +++ b/src/calibre/gui2/tools.py @@ -111,17 +111,21 @@ def convert_bulk_ebook(parent, queue, db, book_ids, out_format=None, args=[]): user_recs = cPickle.loads(d.recommendations) book_ids = convert_existing(parent, db, book_ids, output_format) - return QueueBulk(parent, book_ids, output_format, queue, db, user_recs, args) + use_saved_single_settings = d.opt_individual_saved_settings.isChecked() + return QueueBulk(parent, book_ids, output_format, queue, db, user_recs, + args, use_saved_single_settings=use_saved_single_settings) class QueueBulk(QProgressDialog): - def __init__(self, parent, book_ids, output_format, queue, db, user_recs, args): + def __init__(self, parent, book_ids, output_format, queue, db, user_recs, + args, use_saved_single_settings=True): QProgressDialog.__init__(self, '', QString(), 0, len(book_ids), parent) self.setWindowTitle(_('Queueing books for bulk conversion')) self.book_ids, self.output_format, self.queue, self.db, self.args, self.user_recs = \ book_ids, output_format, queue, db, args, user_recs self.parent = parent + self.use_saved_single_settings = use_saved_single_settings self.i, self.bad, self.jobs, self.changed = 0, [], [], False self.timer = QTimer(self) self.connect(self.timer, SIGNAL('timeout()'), self.do_book) @@ -149,11 +153,12 @@ class QueueBulk(QProgressDialog): combined_recs = GuiRecommendations() default_recs = load_defaults('%s_input' % input_format) - specific_recs = load_specifics(self.db, book_id) for key in default_recs: combined_recs[key] = default_recs[key] - for key in specific_recs: - combined_recs[key] = specific_recs[key] + if self.use_saved_single_settings: + specific_recs = load_specifics(self.db, book_id) + for key in specific_recs: + combined_recs[key] = specific_recs[key] for item in self.user_recs: combined_recs[item[0]] = item[1] save_specifics(self.db, book_id, combined_recs) diff --git a/src/calibre/manual/conversion.rst b/src/calibre/manual/conversion.rst index 67658c3952..8775b864a7 100644 --- a/src/calibre/manual/conversion.rst +++ b/src/calibre/manual/conversion.rst @@ -421,7 +421,7 @@ button in the individual book conversion dialog. When you Bulk Convert a set of books, settings are taken in the following order: * From the defaults set in Preferences->Conversion - * From the saved conversion settings for each book being converted (if any) + * From the saved conversion settings for each book being converted (if any). This can be turned off by the option in the top left corner of the Bulk Conversion dialog. * From the settings set in the Bulk conversion dialog Note that the final settings for each book in a Bulk Conversion will be saved and re-used if the book is converted again. Since the