Pull from driver-dev

This commit is contained in:
Kovid Goyal 2009-05-02 12:46:12 -07:00
commit 7961339e2a
4 changed files with 32 additions and 14 deletions

View File

@ -16,18 +16,19 @@ class DeviceConfig(object):
c.add_opt('format_map', default=cls.FORMATS, help=cls.HELP_MESSAGE) c.add_opt('format_map', default=cls.FORMATS, help=cls.HELP_MESSAGE)
return c return c
@classmethod
def _configProxy(cls): def _configProxy(cls):
return ConfigProxy(cls._config()) return ConfigProxy(cls._config())
@classmethod @classmethod
def config_widget(cls): def config_widget(cls):
from calibre.gui2.device_drivers.configwidget import ConfigWidget from calibre.gui2.device_drivers.configwidget import ConfigWidget
cw = ConfigWidget(cls.configProxy(cls._config()), cls.FORMATS) cw = ConfigWidget(cls._configProxy(), cls.FORMATS)
return cw return cw
@classmethod @classmethod
def save_settings(cls, config_widget): def save_settings(cls, config_widget):
cls.configProxy(cls._config())['format_map'] = config_widget.format_map() cls._configProxy()['format_map'] = config_widget.format_map()
@classmethod @classmethod
def settings(cls): def settings(cls):

View File

@ -22,8 +22,7 @@ from cssutils import CSSParser
from calibre.translations.dynamic import translate from calibre.translations.dynamic import translate
from calibre.ebooks.chardet import xml_to_unicode from calibre.ebooks.chardet import xml_to_unicode
from calibre.ebooks.oeb.entitydefs import ENTITYDEFS from calibre.ebooks.oeb.entitydefs import ENTITYDEFS
from calibre.ebooks.conversion.preprocess import HTMLPreProcessor, \ from calibre.ebooks.conversion.preprocess import CSSPreProcessor
CSSPreProcessor
XML_NS = 'http://www.w3.org/XML/1998/namespace' XML_NS = 'http://www.w3.org/XML/1998/namespace'
XHTML_NS = 'http://www.w3.org/1999/xhtml' XHTML_NS = 'http://www.w3.org/1999/xhtml'

View File

@ -7,7 +7,8 @@ from PyQt4.Qt import QDialog, QMessageBox, QListWidgetItem, QIcon, \
QDesktopServices, QVBoxLayout, QLabel, QPlainTextEdit, \ QDesktopServices, QVBoxLayout, QLabel, QPlainTextEdit, \
QStringListModel, QAbstractItemModel, QFont, \ QStringListModel, QAbstractItemModel, QFont, \
SIGNAL, QTimer, Qt, QSize, QVariant, QUrl, \ SIGNAL, QTimer, Qt, QSize, QVariant, QUrl, \
QModelIndex, QInputDialog, QAbstractTableModel QModelIndex, QInputDialog, QAbstractTableModel, \
QDialogButtonBox
from calibre.constants import islinux, iswindows from calibre.constants import islinux, iswindows
from calibre.gui2.dialogs.config_ui import Ui_Dialog from calibre.gui2.dialogs.config_ui import Ui_Dialog
@ -525,11 +526,11 @@ class ConfigDialog(QDialog, Ui_Dialog):
index = self.plugin_view.currentIndex() index = self.plugin_view.currentIndex()
if index.isValid(): if index.isValid():
plugin = self._plugin_model.index_to_plugin(index) plugin = self._plugin_model.index_to_plugin(index)
if op == 'toggle':
if not plugin.can_be_disabled: if not plugin.can_be_disabled:
error_dialog(self,_('Plugin cannot be disabled'), error_dialog(self,_('Plugin cannot be disabled'),
_('The plugin: %s cannot be disabled')%plugin.name).exec_() _('The plugin: %s cannot be disabled')%plugin.name).exec_()
return return
if op == 'toggle':
if is_disabled(plugin): if is_disabled(plugin):
enable_plugin(plugin) enable_plugin(plugin)
else: else:
@ -540,6 +541,23 @@ class ConfigDialog(QDialog, Ui_Dialog):
info_dialog(self, _('Plugin not customizable'), info_dialog(self, _('Plugin not customizable'),
_('Plugin: %s does not need customization')%plugin.name).exec_() _('Plugin: %s does not need customization')%plugin.name).exec_()
return return
if hasattr(plugin, 'config_widget'):
config_dialog = QDialog(self)
button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
config_dialog.connect(button_box, SIGNAL('accepted()'), config_dialog.accept)
config_dialog.connect(button_box, SIGNAL('rejected()'), config_dialog.reject)
config_widget = plugin.config_widget()
v = QVBoxLayout(config_dialog)
v.addWidget(config_widget)
v.addWidget(button_box)
config_dialog.exec_()
if config_dialog.result() == QDialog.Accepted:
plugin.save_settings(config_widget)
self._plugin_model.refresh_plugin(plugin)
else:
help = plugin.customization_help() help = plugin.customization_help()
text, ok = QInputDialog.getText(self, _('Customize %s')%plugin.name, text, ok = QInputDialog.getText(self, _('Customize %s')%plugin.name,
help) help)