diff --git a/ebook_converter/customize/builtins.py b/ebook_converter/customize/builtins.py index b824879..16f9a46 100644 --- a/ebook_converter/customize/builtins.py +++ b/ebook_converter/customize/builtins.py @@ -1102,277 +1102,277 @@ plugins += [ActionAdd, ActionFetchAnnotations, ActionGenerateCatalog, # Preferences Plugins {{{ -class LookAndFeel(PreferencesPlugin): - name = 'Look & Feel' - icon = I('lookfeel.png') - gui_name = _('Look & feel') - category = 'Interface' - gui_category = _('Interface') - category_order = 1 - name_order = 1 - config_widget = 'ebook_converter.gui2.preferences.look_feel' - description = _('Adjust the look and feel of the calibre interface' - ' to suit your tastes') +# class LookAndFeel(PreferencesPlugin): + # name = 'Look & Feel' + # icon = I('lookfeel.png') + # gui_name = _('Look & feel') + # category = 'Interface' + # gui_category = _('Interface') + # category_order = 1 + # name_order = 1 + # config_widget = 'ebook_converter.gui2.preferences.look_feel' + # description = _('Adjust the look and feel of the calibre interface' + # ' to suit your tastes') -class Behavior(PreferencesPlugin): - name = 'Behavior' - icon = I('config.png') - gui_name = _('Behavior') - category = 'Interface' - gui_category = _('Interface') - category_order = 1 - name_order = 2 - config_widget = 'ebook_converter.gui2.preferences.behavior' - description = _('Change the way calibre behaves') +# class Behavior(PreferencesPlugin): + # name = 'Behavior' + # icon = I('config.png') + # gui_name = _('Behavior') + # category = 'Interface' + # gui_category = _('Interface') + # category_order = 1 + # name_order = 2 + # config_widget = 'ebook_converter.gui2.preferences.behavior' + # description = _('Change the way calibre behaves') -class Columns(PreferencesPlugin): - name = 'Custom Columns' - icon = I('column.png') - gui_name = _('Add your own columns') - category = 'Interface' - gui_category = _('Interface') - category_order = 1 - name_order = 3 - config_widget = 'ebook_converter.gui2.preferences.columns' - description = _('Add/remove your own columns to the calibre book list') +# class Columns(PreferencesPlugin): + # name = 'Custom Columns' + # icon = I('column.png') + # gui_name = _('Add your own columns') + # category = 'Interface' + # gui_category = _('Interface') + # category_order = 1 + # name_order = 3 + # config_widget = 'ebook_converter.gui2.preferences.columns' + # description = _('Add/remove your own columns to the calibre book list') -class Toolbar(PreferencesPlugin): - name = 'Toolbar' - icon = I('wizard.png') - gui_name = _('Toolbars & menus') - category = 'Interface' - gui_category = _('Interface') - category_order = 1 - name_order = 4 - config_widget = 'ebook_converter.gui2.preferences.toolbar' - description = _('Customize the toolbars and context menus, changing which' - ' actions are available in each') +# class Toolbar(PreferencesPlugin): + # name = 'Toolbar' + # icon = I('wizard.png') + # gui_name = _('Toolbars & menus') + # category = 'Interface' + # gui_category = _('Interface') + # category_order = 1 + # name_order = 4 + # config_widget = 'ebook_converter.gui2.preferences.toolbar' + # description = _('Customize the toolbars and context menus, changing which' + # ' actions are available in each') -class Search(PreferencesPlugin): - name = 'Search' - icon = I('search.png') - gui_name = _('Searching') - category = 'Interface' - gui_category = _('Interface') - category_order = 1 - name_order = 5 - config_widget = 'ebook_converter.gui2.preferences.search' - description = _('Customize the way searching for books works in calibre') +# class Search(PreferencesPlugin): + # name = 'Search' + # icon = I('search.png') + # gui_name = _('Searching') + # category = 'Interface' + # gui_category = _('Interface') + # category_order = 1 + # name_order = 5 + # config_widget = 'ebook_converter.gui2.preferences.search' + # description = _('Customize the way searching for books works in calibre') -class InputOptions(PreferencesPlugin): - name = 'Input Options' - icon = I('arrow-down.png') - gui_name = _('Input options') - category = 'Conversion' - gui_category = _('Conversion') - category_order = 2 - name_order = 1 - config_widget = 'ebook_converter.gui2.preferences.conversion:InputOptions' - description = _('Set conversion options specific to each input format') +# class InputOptions(PreferencesPlugin): + # name = 'Input Options' + # icon = I('arrow-down.png') + # gui_name = _('Input options') + # category = 'Conversion' + # gui_category = _('Conversion') + # category_order = 2 + # name_order = 1 + # config_widget = 'ebook_converter.gui2.preferences.conversion:InputOptions' + # description = _('Set conversion options specific to each input format') - def create_widget(self, *args, **kwargs): - # The DOC Input plugin tries to override this - self.config_widget = 'ebook_converter.gui2.preferences.conversion:InputOptions' - return PreferencesPlugin.create_widget(self, *args, **kwargs) + # def create_widget(self, *args, **kwargs): + # # The DOC Input plugin tries to override this + # self.config_widget = 'ebook_converter.gui2.preferences.conversion:InputOptions' + # return PreferencesPlugin.create_widget(self, *args, **kwargs) -class CommonOptions(PreferencesPlugin): - name = 'Common Options' - icon = I('convert.png') - gui_name = _('Common options') - category = 'Conversion' - gui_category = _('Conversion') - category_order = 2 - name_order = 2 - config_widget = 'ebook_converter.gui2.preferences.conversion:CommonOptions' - description = _('Set conversion options common to all formats') +# class CommonOptions(PreferencesPlugin): + # name = 'Common Options' + # icon = I('convert.png') + # gui_name = _('Common options') + # category = 'Conversion' + # gui_category = _('Conversion') + # category_order = 2 + # name_order = 2 + # config_widget = 'ebook_converter.gui2.preferences.conversion:CommonOptions' + # description = _('Set conversion options common to all formats') -class OutputOptions(PreferencesPlugin): - name = 'Output Options' - icon = I('arrow-up.png') - gui_name = _('Output options') - category = 'Conversion' - gui_category = _('Conversion') - category_order = 2 - name_order = 3 - config_widget = 'ebook_converter.gui2.preferences.conversion:OutputOptions' - description = _('Set conversion options specific to each output format') +# class OutputOptions(PreferencesPlugin): + # name = 'Output Options' + # icon = I('arrow-up.png') + # gui_name = _('Output options') + # category = 'Conversion' + # gui_category = _('Conversion') + # category_order = 2 + # name_order = 3 + # config_widget = 'ebook_converter.gui2.preferences.conversion:OutputOptions' + # description = _('Set conversion options specific to each output format') -class Adding(PreferencesPlugin): - name = 'Adding' - icon = I('add_book.png') - gui_name = _('Adding books') - category = 'Import/Export' - gui_category = _('Import/export') - category_order = 3 - name_order = 1 - config_widget = 'ebook_converter.gui2.preferences.adding' - description = _('Control how calibre reads metadata from files when ' - 'adding books') +# class Adding(PreferencesPlugin): + # name = 'Adding' + # icon = I('add_book.png') + # gui_name = _('Adding books') + # category = 'Import/Export' + # gui_category = _('Import/export') + # category_order = 3 + # name_order = 1 + # config_widget = 'ebook_converter.gui2.preferences.adding' + # description = _('Control how calibre reads metadata from files when ' + # 'adding books') -class Saving(PreferencesPlugin): - name = 'Saving' - icon = I('save.png') - gui_name = _('Saving books to disk') - category = 'Import/Export' - gui_category = _('Import/export') - category_order = 3 - name_order = 2 - config_widget = 'ebook_converter.gui2.preferences.saving' - description = _('Control how calibre exports files from its database ' - 'to disk when using Save to disk') +# class Saving(PreferencesPlugin): + # name = 'Saving' + # icon = I('save.png') + # gui_name = _('Saving books to disk') + # category = 'Import/Export' + # gui_category = _('Import/export') + # category_order = 3 + # name_order = 2 + # config_widget = 'ebook_converter.gui2.preferences.saving' + # description = _('Control how calibre exports files from its database ' + # 'to disk when using Save to disk') -class Sending(PreferencesPlugin): - name = 'Sending' - icon = I('sync.png') - gui_name = _('Sending books to devices') - category = 'Import/Export' - gui_category = _('Import/export') - category_order = 3 - name_order = 3 - config_widget = 'ebook_converter.gui2.preferences.sending' - description = _('Control how calibre transfers files to your ' - 'e-book reader') +# class Sending(PreferencesPlugin): + # name = 'Sending' + # icon = I('sync.png') + # gui_name = _('Sending books to devices') + # category = 'Import/Export' + # gui_category = _('Import/export') + # category_order = 3 + # name_order = 3 + # config_widget = 'ebook_converter.gui2.preferences.sending' + # description = _('Control how calibre transfers files to your ' + # 'e-book reader') -class Plugboard(PreferencesPlugin): - name = 'Plugboard' - icon = I('plugboard.png') - gui_name = _('Metadata plugboards') - category = 'Import/Export' - gui_category = _('Import/export') - category_order = 3 - name_order = 4 - config_widget = 'ebook_converter.gui2.preferences.plugboard' - description = _('Change metadata fields before saving/sending') +# class Plugboard(PreferencesPlugin): + # name = 'Plugboard' + # icon = I('plugboard.png') + # gui_name = _('Metadata plugboards') + # category = 'Import/Export' + # gui_category = _('Import/export') + # category_order = 3 + # name_order = 4 + # config_widget = 'ebook_converter.gui2.preferences.plugboard' + # description = _('Change metadata fields before saving/sending') -class TemplateFunctions(PreferencesPlugin): - name = 'TemplateFunctions' - icon = I('template_funcs.png') - gui_name = _('Template functions') - category = 'Advanced' - gui_category = _('Advanced') - category_order = 5 - name_order = 5 - config_widget = 'ebook_converter.gui2.preferences.template_functions' - description = _('Create your own template functions') +# class TemplateFunctions(PreferencesPlugin): + # name = 'TemplateFunctions' + # icon = I('template_funcs.png') + # gui_name = _('Template functions') + # category = 'Advanced' + # gui_category = _('Advanced') + # category_order = 5 + # name_order = 5 + # config_widget = 'ebook_converter.gui2.preferences.template_functions' + # description = _('Create your own template functions') -class Email(PreferencesPlugin): - name = 'Email' - icon = I('mail.png') - gui_name = _('Sharing books by email') - category = 'Sharing' - gui_category = _('Sharing') - category_order = 4 - name_order = 1 - config_widget = 'ebook_converter.gui2.preferences.emailp' - description = _('Setup sharing of books via email. Can be used ' - 'for automatic sending of downloaded news to your devices') +# class Email(PreferencesPlugin): + # name = 'Email' + # icon = I('mail.png') + # gui_name = _('Sharing books by email') + # category = 'Sharing' + # gui_category = _('Sharing') + # category_order = 4 + # name_order = 1 + # config_widget = 'ebook_converter.gui2.preferences.emailp' + # description = _('Setup sharing of books via email. Can be used ' + # 'for automatic sending of downloaded news to your devices') -class Server(PreferencesPlugin): - name = 'Server' - icon = I('network-server.png') - gui_name = _('Sharing over the net') - category = 'Sharing' - gui_category = _('Sharing') - category_order = 4 - name_order = 2 - config_widget = 'ebook_converter.gui2.preferences.server' - description = _('Setup the calibre Content server which will ' - 'give you access to your calibre library from anywhere, ' - 'on any device, over the internet') +# class Server(PreferencesPlugin): + # name = 'Server' + # icon = I('network-server.png') + # gui_name = _('Sharing over the net') + # category = 'Sharing' + # gui_category = _('Sharing') + # category_order = 4 + # name_order = 2 + # config_widget = 'ebook_converter.gui2.preferences.server' + # description = _('Setup the calibre Content server which will ' + # 'give you access to your calibre library from anywhere, ' + # 'on any device, over the internet') -class MetadataSources(PreferencesPlugin): - name = 'Metadata download' - icon = I('download-metadata.png') - gui_name = _('Metadata download') - category = 'Sharing' - gui_category = _('Sharing') - category_order = 4 - name_order = 3 - config_widget = 'ebook_converter.gui2.preferences.metadata_sources' - description = _('Control how calibre downloads e-book metadata from the net') +# class MetadataSources(PreferencesPlugin): + # name = 'Metadata download' + # icon = I('download-metadata.png') + # gui_name = _('Metadata download') + # category = 'Sharing' + # gui_category = _('Sharing') + # category_order = 4 + # name_order = 3 + # config_widget = 'ebook_converter.gui2.preferences.metadata_sources' + # description = _('Control how calibre downloads e-book metadata from the net') -class IgnoredDevices(PreferencesPlugin): - name = 'Ignored Devices' - icon = I('reader.png') - gui_name = _('Ignored devices') - category = 'Sharing' - gui_category = _('Sharing') - category_order = 4 - name_order = 4 - config_widget = 'ebook_converter.gui2.preferences.ignored_devices' - description = _('Control which devices calibre will ignore when they are connected ' - 'to the computer.') +# class IgnoredDevices(PreferencesPlugin): + # name = 'Ignored Devices' + # icon = I('reader.png') + # gui_name = _('Ignored devices') + # category = 'Sharing' + # gui_category = _('Sharing') + # category_order = 4 + # name_order = 4 + # config_widget = 'ebook_converter.gui2.preferences.ignored_devices' + # description = _('Control which devices calibre will ignore when they are connected ' + # 'to the computer.') -class Plugins(PreferencesPlugin): - name = 'Plugins' - icon = I('plugins.png') - gui_name = _('Plugins') - category = 'Advanced' - gui_category = _('Advanced') - category_order = 5 - name_order = 1 - config_widget = 'ebook_converter.gui2.preferences.plugins' - description = _('Add/remove/customize various bits of calibre ' - 'functionality') +# class Plugins(PreferencesPlugin): + # name = 'Plugins' + # icon = I('plugins.png') + # gui_name = _('Plugins') + # category = 'Advanced' + # gui_category = _('Advanced') + # category_order = 5 + # name_order = 1 + # config_widget = 'ebook_converter.gui2.preferences.plugins' + # description = _('Add/remove/customize various bits of calibre ' + # 'functionality') -class Tweaks(PreferencesPlugin): - name = 'Tweaks' - icon = I('tweaks.png') - gui_name = _('Tweaks') - category = 'Advanced' - gui_category = _('Advanced') - category_order = 5 - name_order = 2 - config_widget = 'ebook_converter.gui2.preferences.tweaks' - description = _('Fine tune how calibre behaves in various contexts') +# class Tweaks(PreferencesPlugin): + # name = 'Tweaks' + # icon = I('tweaks.png') + # gui_name = _('Tweaks') + # category = 'Advanced' + # gui_category = _('Advanced') + # category_order = 5 + # name_order = 2 + # config_widget = 'ebook_converter.gui2.preferences.tweaks' + # description = _('Fine tune how calibre behaves in various contexts') -class Keyboard(PreferencesPlugin): - name = 'Keyboard' - icon = I('keyboard-prefs.png') - gui_name = _('Shortcuts') - category = 'Advanced' - gui_category = _('Advanced') - category_order = 5 - name_order = 4 - config_widget = 'ebook_converter.gui2.preferences.keyboard' - description = _('Customize the keyboard shortcuts used by calibre') +# class Keyboard(PreferencesPlugin): + # name = 'Keyboard' + # icon = I('keyboard-prefs.png') + # gui_name = _('Shortcuts') + # category = 'Advanced' + # gui_category = _('Advanced') + # category_order = 5 + # name_order = 4 + # config_widget = 'ebook_converter.gui2.preferences.keyboard' + # description = _('Customize the keyboard shortcuts used by calibre') -class Misc(PreferencesPlugin): - name = 'Misc' - icon = I('exec.png') - gui_name = _('Miscellaneous') - category = 'Advanced' - gui_category = _('Advanced') - category_order = 5 - name_order = 3 - config_widget = 'ebook_converter.gui2.preferences.misc' - description = _('Miscellaneous advanced configuration') +# class Misc(PreferencesPlugin): + # name = 'Misc' + # icon = I('exec.png') + # gui_name = _('Miscellaneous') + # category = 'Advanced' + # gui_category = _('Advanced') + # category_order = 5 + # name_order = 3 + # config_widget = 'ebook_converter.gui2.preferences.misc' + # description = _('Miscellaneous advanced configuration') -plugins += [LookAndFeel, Behavior, Columns, Toolbar, Search, InputOptions, - CommonOptions, OutputOptions, Adding, Saving, Sending, Plugboard, - Email, Server, Plugins, Tweaks, Misc, TemplateFunctions, - MetadataSources, Keyboard, IgnoredDevices] +# plugins += [LookAndFeel, Behavior, Columns, Toolbar, Search, InputOptions, + # CommonOptions, OutputOptions, Adding, Saving, Sending, Plugboard, + # Email, Server, Plugins, Tweaks, Misc, TemplateFunctions, + # MetadataSources, Keyboard, IgnoredDevices] # }}} diff --git a/ebook_converter/customize/conversion.py b/ebook_converter/customize/conversion.py index 2e5d96d..8a3a718 100644 --- a/ebook_converter/customize/conversion.py +++ b/ebook_converter/customize/conversion.py @@ -95,37 +95,6 @@ class DummyReporter(object): pass -def gui_configuration_widget(name, parent, get_option_by_name, - get_option_help, db, book_id, for_output=True): - import importlib - - def widget_factory(cls): - return cls(parent, get_option_by_name, - get_option_help, db, book_id) - - if for_output: - try: - output_widget = importlib.import_module( - 'ebook_converter.gui2.convert.'+name) - pw = output_widget.PluginWidget - pw.ICON = I('back.png') - pw.HELP = _('Options specific to the output format.') - return widget_factory(pw) - except ImportError: - pass - else: - try: - input_widget = importlib.import_module( - 'ebook_converter.gui2.convert.'+name) - pw = input_widget.PluginWidget - pw.ICON = I('forward.png') - pw.HELP = _('Options specific to the input format.') - return widget_factory(pw) - except ImportError: - pass - return None - - class InputFormatPlugin(Plugin): ''' @@ -262,17 +231,6 @@ class InputFormatPlugin(Plugin): ''' pass - def gui_configuration_widget(self, parent, get_option_by_name, - get_option_help, db, book_id=None): - ''' - Called to create the widget used for configuring this plugin in the - calibre GUI. The widget must be an instance of the PluginWidget class. - See the builtin input plugins for examples. - ''' - name = self.name.lower().replace(' ', '_') - return gui_configuration_widget(name, parent, get_option_by_name, - get_option_help, db, book_id, for_output=False) - class OutputFormatPlugin(Plugin): @@ -363,14 +321,3 @@ class OutputFormatPlugin(Plugin): ''' pass - - def gui_configuration_widget(self, parent, get_option_by_name, - get_option_help, db, book_id=None): - ''' - Called to create the widget used for configuring this plugin in the - calibre GUI. The widget must be an instance of the PluginWidget class. - See the builtin output plugins for examples. - ''' - name = self.name.lower().replace(' ', '_') - return gui_configuration_widget(name, parent, get_option_by_name, - get_option_help, db, book_id, for_output=True) diff --git a/ebook_converter/devices/interface.py b/ebook_converter/devices/interface.py index 312249b..7bcc18c 100644 --- a/ebook_converter/devices/interface.py +++ b/ebook_converter/devices/interface.py @@ -66,7 +66,7 @@ class DevicePlugin(Plugin): path_sep = os.sep #: Icon for this device - icon = I('reader.png') + icon = None # Encapsulates an annotation fetched from the device UserAnnotation = namedtuple('Annotation','type, value') diff --git a/ebook_converter/utils/config_base.py b/ebook_converter/utils/config_base.py index 76b84f3..0352435 100644 --- a/ebook_converter/utils/config_base.py +++ b/ebook_converter/utils/config_base.py @@ -635,9 +635,8 @@ def read_custom_tweaks(): def default_tweaks_raw(): - with open(pkg_resources.resource_filename('ebook_converter', - 'data/default_tweaks.py')) as f: - return f.read().encode() + return pkg_resources.resource_filename('ebook_converter', + 'data/default_tweaks.py') def read_tweaks(): diff --git a/ebook_converter/utils/img.py b/ebook_converter/utils/img.py index 28a7646..69e4e0d 100644 --- a/ebook_converter/utils/img.py +++ b/ebook_converter/utils/img.py @@ -626,10 +626,12 @@ def encode_jpeg(file_path, quality=80): def test(): # {{{ + # TODO(gryf): move this test to separate file. from ebook_converter.ptempfile import TemporaryDirectory from ebook_converter import CurrentDir from glob import glob - img = image_from_data(I('lt.png', data=True, allow_user_override=False)) + # TODO(gryf): make the sample image out of pillow or smth + # img = image_from_data(I('lt.png', data=True, allow_user_override=False)) with TemporaryDirectory() as tdir, CurrentDir(tdir): save_image(img, 'test.jpg') ret = optimize_jpeg('test.jpg') @@ -638,7 +640,9 @@ def test(): # {{{ ret = encode_jpeg('test.jpg') if ret is not None: raise SystemExit('encode_jpeg failed: %s' % ret) - shutil.copyfile(I('lt.png'), 'test.png') + # TODO(gryf): make the sample image out of pillow or smth. for sure + # tempfile would be better idea. + #shutil.copyfile(I('lt.png'), 'test.png') ret = optimize_png('test.png') if ret is not None: raise SystemExit('optimize_png failed: %s' % ret) diff --git a/ebook_converter/utils/resources.py b/ebook_converter/utils/resources.py index 797d55d..4ea8b03 100644 --- a/ebook_converter/utils/resources.py +++ b/ebook_converter/utils/resources.py @@ -98,7 +98,3 @@ def get_image_path(path, data=False, allow_user_override=True): def set_data(path, data=None): return _resolver.set_data(path, data) - - -builtins.__dict__['P'] = get_path -builtins.__dict__['I'] = get_image_path