diff --git a/src/calibre/gui2/preferences/conversion.py b/src/calibre/gui2/preferences/conversion.py index fb97c7d6c5..26cb062cb2 100644 --- a/src/calibre/gui2/preferences/conversion.py +++ b/src/calibre/gui2/preferences/conversion.py @@ -80,8 +80,19 @@ class Base(ConfigWidgetBase): merge_plugin_recs=False) def widget_factory(cls): - return cls(self, self.plumber.get_option_by_name, - self.plumber.get_option_help, None, None) + plugin = getattr(cls, 'conv_plugin', None) + if plugin is None: + hfunc = self.plumber.get_option_by_name + else: + options = plugin.options.union(plugin.common_options) + + def hfunc(name): + for rec in options: + if rec.option == name: + ans = getattr(rec, 'help', None) + if ans is not None: + return ans.replace('%default', str(rec.recommended_value)) + return cls(self, self.plumber.get_option_by_name, hfunc, None, None) self.load_conversion_widgets() widgets = list(map(widget_factory, self.conversion_widgets)) @@ -131,6 +142,7 @@ class InputOptions(Base): for plugin in input_format_plugins(): pw = config_widget_for_input_plugin(plugin) if pw is not None: + pw.conv_plugin = plugin self.conversion_widgets.append(pw) @@ -144,14 +156,15 @@ class OutputOptions(Base): output_widget = importlib.import_module( 'calibre.gui2.convert.'+name) pw = output_widget.PluginWidget + pw.conv_plugin = plugin self.conversion_widgets.append(pw) except ImportError: continue + if __name__ == '__main__': - from PyQt5.Qt import QApplication - app = QApplication([]) + from calibre.gui2 import Application + app = Application([]) # test_widget('Conversion', 'Input Options') # test_widget('Conversion', 'Common Options') test_widget('Conversion', 'Output Options') -