From dba833795f1be9bab1e7e0f125ce30a4220977bd Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 4 Jun 2016 16:26:33 +0530 Subject: [PATCH] Bulk conversion dialog: Fix page margin settings being ignored when converting to DOCX --- src/calibre/ebooks/conversion/plumber.py | 13 ++++++++----- src/calibre/gui2/convert/bulk.py | 4 ++-- src/calibre/gui2/tools.py | 7 +++++++ 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/calibre/ebooks/conversion/plumber.py b/src/calibre/ebooks/conversion/plumber.py index 393d3f095d..04ce4ecd27 100644 --- a/src/calibre/ebooks/conversion/plumber.py +++ b/src/calibre/ebooks/conversion/plumber.py @@ -831,13 +831,16 @@ OptionRecommendation(name='search_replace', if help is not None: return help.replace('%default', str(rec.recommended_value)) + def merge_plugin_recs(self, plugin): + for name, val, level in plugin.recommendations: + rec = self.get_option_by_name(name) + if rec is not None and rec.level <= level: + rec.recommended_value = val + rec.level = level + def merge_plugin_recommendations(self): for source in (self.input_plugin, self.output_plugin): - for name, val, level in source.recommendations: - rec = self.get_option_by_name(name) - if rec is not None and rec.level <= level: - rec.recommended_value = val - rec.level = level + self.merge_plugin_recs(source) def merge_ui_recommendations(self, recommendations): ''' diff --git a/src/calibre/gui2/convert/bulk.py b/src/calibre/gui2/convert/bulk.py index 69780e13af..efb6765398 100644 --- a/src/calibre/gui2/convert/bulk.py +++ b/src/calibre/gui2/convert/bulk.py @@ -70,8 +70,8 @@ class BulkConfig(Config): output_path = 'dummy.'+output_format log = Log() log.outputs = [] - self.plumber = Plumber(input_path, output_path, log, - merge_plugin_recs=False) + self.plumber = Plumber(input_path, output_path, log, merge_plugin_recs=False) + self.plumber.merge_plugin_recs(self.plumber.output_plugin) def widget_factory(cls): return cls(self.stack, self.plumber.get_option_by_name, diff --git a/src/calibre/gui2/tools.py b/src/calibre/gui2/tools.py index 4e73726a93..7d6f602f5d 100644 --- a/src/calibre/gui2/tools.py +++ b/src/calibre/gui2/tools.py @@ -196,6 +196,13 @@ class QueueBulk(QProgressDialog): combined_recs[item[0]] = item[1] save_specifics(self.db, book_id, combined_recs) lrecs = list(combined_recs.to_recommendations()) + from calibre.customize.ui import plugin_for_output_format + op = plugin_for_output_format(self.output_format) + if op and op.recommendations: + prec = {x[0] for x in op.recommendations} + for i, r in enumerate(list(lrecs)): + if r[0] in prec: + lrecs[i] = (r[0], r[1], OptionRecommendation.HIGH) cover_file = create_cover_file(self.db, book_id)