mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 02:34:06 -04:00
move EditRules from "Look & Feel" to their own widgets
This commit is contained in:
parent
78bfa97e03
commit
7a91da1599
@ -5,13 +5,10 @@ __license__ = 'GPL v3'
|
|||||||
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
|
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
|
||||||
__docformat__ = 'restructuredtext en'
|
__docformat__ = 'restructuredtext en'
|
||||||
|
|
||||||
from qt.core import QIcon, QKeySequence, QListWidgetItem, Qt
|
from qt.core import QKeySequence, QListWidgetItem, Qt
|
||||||
|
|
||||||
from calibre.gui2.preferences import ConfigWidgetBase, test_widget
|
from calibre.gui2.preferences import ConfigWidgetBase, test_widget
|
||||||
from calibre.gui2.preferences.coloring import EditRules
|
|
||||||
from calibre.gui2.preferences.look_feel_tabs import selected_rows_metadatas
|
|
||||||
from calibre.gui2.preferences.look_feel_ui import Ui_Form
|
from calibre.gui2.preferences.look_feel_ui import Ui_Form
|
||||||
from calibre.gui2.widgets import BusyCursor
|
|
||||||
|
|
||||||
|
|
||||||
class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
||||||
@ -19,14 +16,6 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
|||||||
def genesis(self, gui):
|
def genesis(self, gui):
|
||||||
self.gui = gui
|
self.gui = gui
|
||||||
|
|
||||||
self.edit_rules = EditRules(self.tabWidget)
|
|
||||||
self.edit_rules.changed.connect(self.changed_signal)
|
|
||||||
self.tabWidget.addTab(self.edit_rules, QIcon.ic('format-fill-color.png'), _('Column &coloring'))
|
|
||||||
|
|
||||||
self.icon_rules = EditRules(self.tabWidget)
|
|
||||||
self.icon_rules.changed.connect(self.changed_signal)
|
|
||||||
self.tabWidget.addTab(self.icon_rules, QIcon.ic('icon_choose.png'), _('Column &icons'))
|
|
||||||
|
|
||||||
self.tabWidget.setCurrentIndex(0)
|
self.tabWidget.setCurrentIndex(0)
|
||||||
self.tabWidget.tabBar().setVisible(False)
|
self.tabWidget.tabBar().setVisible(False)
|
||||||
keys = [QKeySequence('F11', QKeySequence.SequenceFormat.PortableText), QKeySequence(
|
keys = [QKeySequence('F11', QKeySequence.SequenceFormat.PortableText), QKeySequence(
|
||||||
@ -45,25 +34,10 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
|||||||
def initial_tab_changed(self):
|
def initial_tab_changed(self):
|
||||||
self.sections_view.setCurrentRow(self.tabWidget.currentIndex())
|
self.sections_view.setCurrentRow(self.tabWidget.currentIndex())
|
||||||
|
|
||||||
def initialize(self):
|
|
||||||
ConfigWidgetBase.initialize(self)
|
|
||||||
|
|
||||||
db = self.gui.current_db
|
|
||||||
mi = selected_rows_metadatas()
|
|
||||||
self.edit_rules.initialize(db.field_metadata, db.prefs, mi, 'column_color_rules')
|
|
||||||
self.icon_rules.initialize(db.field_metadata, db.prefs, mi, 'column_icon_rules')
|
|
||||||
|
|
||||||
def restore_defaults(self):
|
def restore_defaults(self):
|
||||||
ConfigWidgetBase.restore_defaults(self)
|
ConfigWidgetBase.restore_defaults(self)
|
||||||
self.edit_rules.clear()
|
|
||||||
self.icon_rules.clear()
|
|
||||||
self.changed_signal.emit()
|
self.changed_signal.emit()
|
||||||
|
|
||||||
def commit(self, *args):
|
|
||||||
with BusyCursor():
|
|
||||||
self.edit_rules.commit(self.gui.current_db.prefs)
|
|
||||||
self.icon_rules.commit(self.gui.current_db.prefs)
|
|
||||||
|
|
||||||
def refresh_gui(self, gui):
|
def refresh_gui(self, gui):
|
||||||
m = gui.library_view.model()
|
m = gui.library_view.model()
|
||||||
m.update_db_prefs_cache()
|
m.update_db_prefs_cache()
|
||||||
|
@ -102,6 +102,24 @@
|
|||||||
<string>&Quickview</string>
|
<string>&Quickview</string>
|
||||||
</attribute>
|
</attribute>
|
||||||
</widget>
|
</widget>
|
||||||
|
<widget class="ColumnColorRules" name="edit_rules">
|
||||||
|
<attribute name="icon">
|
||||||
|
<iconset resource="../../../../resources/images.qrc">
|
||||||
|
<normaloff>:/images/format-fill-color.png</normaloff>:/images/format-fill-color.png</iconset>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="title">
|
||||||
|
<string>Column &coloring</string>
|
||||||
|
</attribute>
|
||||||
|
</widget>
|
||||||
|
<widget class="ColumnIconRules" name="icon_rules">
|
||||||
|
<attribute name="icon">
|
||||||
|
<iconset resource="../../../../resources/images.qrc">
|
||||||
|
<normaloff>:/images/icon_choose.png</normaloff>:/images/icon_choose.png</iconset>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="title">
|
||||||
|
<string>Column &icons</string>
|
||||||
|
</attribute>
|
||||||
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
@ -178,6 +196,16 @@
|
|||||||
<extends>ConfigWidgetBase</extends>
|
<extends>ConfigWidgetBase</extends>
|
||||||
<header>calibre/gui2/preferences/look_feel_tabs/quickview.h</header>
|
<header>calibre/gui2/preferences/look_feel_tabs/quickview.h</header>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>ColumnColorRules</class>
|
||||||
|
<extends>ConfigWidgetBase</extends>
|
||||||
|
<header>calibre/gui2/preferences/look_feel_tabs.h</header>
|
||||||
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>ColumnIconRules</class>
|
||||||
|
<extends>ConfigWidgetBase</extends>
|
||||||
|
<header>calibre/gui2/preferences/look_feel_tabs.h</header>
|
||||||
|
</customwidget>
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="../../../../resources/images.qrc"/>
|
<include location="../../../../resources/images.qrc"/>
|
||||||
|
@ -12,6 +12,8 @@ from qt.core import QAbstractListModel, QComboBox, QFormLayout, QIcon, QItemSele
|
|||||||
from calibre.ebooks.metadata.book.render import DEFAULT_AUTHOR_LINK
|
from calibre.ebooks.metadata.book.render import DEFAULT_AUTHOR_LINK
|
||||||
from calibre.gui2 import choose_files, choose_save_file, error_dialog
|
from calibre.gui2 import choose_files, choose_save_file, error_dialog
|
||||||
from calibre.gui2.book_details import get_field_list
|
from calibre.gui2.book_details import get_field_list
|
||||||
|
from calibre.gui2.preferences import LazyConfigWidgetBase
|
||||||
|
from calibre.gui2.preferences.coloring import EditRules
|
||||||
from calibre.gui2.ui import get_gui
|
from calibre.gui2.ui import get_gui
|
||||||
|
|
||||||
|
|
||||||
@ -167,6 +169,47 @@ class DisplayedFields(QAbstractListModel):
|
|||||||
return idx
|
return idx
|
||||||
|
|
||||||
|
|
||||||
|
class LazyEditRulesBase(LazyConfigWidgetBase):
|
||||||
|
|
||||||
|
rule_set_name = None
|
||||||
|
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
super().__init__(parent)
|
||||||
|
self.rules_editor = EditRules(parent)
|
||||||
|
self.setLayout(self.rules_editor.layout())
|
||||||
|
|
||||||
|
def genesis(self, gui):
|
||||||
|
self.gui = gui
|
||||||
|
self.rules_editor.changed.connect(self.changed_signal)
|
||||||
|
|
||||||
|
def lazy_initialize(self):
|
||||||
|
if not self.rule_set_name:
|
||||||
|
raise NotImplementedError('You must define the attribut "rule_set_name" in LazyEditRulesBase subclasses')
|
||||||
|
self.load_rule_set(self.rule_set_name)
|
||||||
|
|
||||||
|
def load_rule_set(self, name):
|
||||||
|
db = self.gui.current_db
|
||||||
|
mi = selected_rows_metadatas()
|
||||||
|
self.rules_editor.initialize(db.field_metadata, db.prefs, mi, name)
|
||||||
|
|
||||||
|
def commit(self):
|
||||||
|
self.rules_editor.commit(self, self.gui.current_db.prefs)
|
||||||
|
return LazyConfigWidgetBase.commit(self)
|
||||||
|
|
||||||
|
def restore_defaults(self):
|
||||||
|
LazyConfigWidgetBase.restore_defaults(self)
|
||||||
|
self.rules_editor.clear(self)
|
||||||
|
self.changed_signal.emit()
|
||||||
|
|
||||||
|
|
||||||
|
class ColumnColorRules(LazyEditRulesBase):
|
||||||
|
rule_set_name = 'column_color_rules'
|
||||||
|
|
||||||
|
|
||||||
|
class ColumnIconRules(LazyEditRulesBase):
|
||||||
|
rule_set_name = 'column_icon_rules'
|
||||||
|
|
||||||
|
|
||||||
def export_layout(in_widget, model=None):
|
def export_layout(in_widget, model=None):
|
||||||
filename = choose_save_file(in_widget, 'look_feel_prefs_import_export_field_list',
|
filename = choose_save_file(in_widget, 'look_feel_prefs_import_export_field_list',
|
||||||
_('Save column list to file'),
|
_('Save column list to file'),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user