From 56ae7183a3fa05e12f156655e006a6d990ba3333 Mon Sep 17 00:00:00 2001 From: un-pogaz <46523284+un-pogaz@users.noreply.github.com> Date: Wed, 12 Feb 2025 08:45:36 +0100 Subject: [PATCH] move "Grid rule editor" to its own widget --- .../preferences/look_feel_tabs/__init__.py | 4 ++++ .../preferences/look_feel_tabs/cover_grid.py | 19 +++++++------------ .../preferences/look_feel_tabs/cover_grid.ui | 14 +++++++++++++- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/calibre/gui2/preferences/look_feel_tabs/__init__.py b/src/calibre/gui2/preferences/look_feel_tabs/__init__.py index eb8dcc6c6c8a..eb8d6ce06c22 100644 --- a/src/calibre/gui2/preferences/look_feel_tabs/__init__.py +++ b/src/calibre/gui2/preferences/look_feel_tabs/__init__.py @@ -254,6 +254,10 @@ class ColumnIconRules(LazyEditRulesBase): rule_set_name = 'column_icon_rules' +class GridEmblemnRules(LazyEditRulesBase): + rule_set_name = 'cover_grid_icon_rules' + + def export_layout(in_widget, model=None): filename = choose_save_file(in_widget, 'look_feel_prefs_import_export_field_list', _('Save column list to file'), diff --git a/src/calibre/gui2/preferences/look_feel_tabs/cover_grid.py b/src/calibre/gui2/preferences/look_feel_tabs/cover_grid.py index 5c6ad8d652dd..ba5d7166f821 100644 --- a/src/calibre/gui2/preferences/look_feel_tabs/cover_grid.py +++ b/src/calibre/gui2/preferences/look_feel_tabs/cover_grid.py @@ -7,14 +7,12 @@ from threading import Thread -from qt.core import QBrush, QColor, QColorDialog, QDialog, QPainter, QPixmap, QPushButton, QSize, QSizePolicy, Qt, QTabWidget, QVBoxLayout, QWidget, pyqtSignal +from qt.core import QBrush, QColor, QColorDialog, QDialog, QPainter, QPixmap, QPushButton, QSize, QSizePolicy, Qt, QTabWidget, QWidget, pyqtSignal from calibre import human_readable from calibre.gui2 import gprefs, open_local_file, question_dialog from calibre.gui2.library.alternate_views import CM_TO_INCH, auto_height from calibre.gui2.preferences import LazyConfigWidgetBase -from calibre.gui2.preferences.coloring import EditRules -from calibre.gui2.preferences.look_feel_tabs import selected_rows_metadatas from calibre.gui2.preferences.look_feel_tabs.cover_grid_ui import Ui_Form from calibre.gui2.widgets import BusyCursor from calibre.startup import connect_lambda @@ -83,11 +81,8 @@ def genesis(self, gui): key=lambda x:sort_key(x[0])) r('field_under_covers_in_grid', db.prefs, choices=choices) - self.grid_rules = EditRules(self.emblems_tab) - self.grid_rules.changed.connect(self.changed_signal) - self.emblems_tab.setLayout(QVBoxLayout()) - self.emblems_tab.layout().addWidget(self.grid_rules) - + self.grid_rules.genesis(self.gui) + self.grid_rules.changed_signal.connect(self.changed_signal) self.size_calculated.connect(self.update_cg_cache_size, type=Qt.ConnectionType.QueuedConnection) l = self.cg_background_box.layout() @@ -118,9 +113,9 @@ def genesis(self, gui): def lazy_initialize(self): self.show_current_cache_usage() - db = self.gui.current_db self.blockSignals(True) - self.grid_rules.initialize(db.field_metadata, db.prefs, selected_rows_metadatas(), 'cover_grid_icon_rules') + self.grid_rules.lazy_initialize() + self.lazy_init_called = True self.blockSignals(False) self.set_cg_color(gprefs['cover_grid_color']) self.set_cg_texture(gprefs['cover_grid_texture']) @@ -210,14 +205,14 @@ def restore_cover_grid_appearance(self): def commit(self): with BusyCursor(): - self.grid_rules.commit(self.gui.current_db.prefs) + self.grid_rules.commit() gprefs['cover_grid_color'] = tuple(self.cg_bg_widget.bcol.getRgb())[:3] gprefs['cover_grid_texture'] = self.cg_bg_widget.btex return LazyConfigWidgetBase.commit(self) def restore_defaults(self): LazyConfigWidgetBase.restore_defaults(self) - self.grid_rules.clear() + self.grid_rules.restore_defaults() self.set_cg_color(gprefs.defaults['cover_grid_color']) self.set_cg_texture(gprefs.defaults['cover_grid_texture']) self.changed_signal.emit() diff --git a/src/calibre/gui2/preferences/look_feel_tabs/cover_grid.ui b/src/calibre/gui2/preferences/look_feel_tabs/cover_grid.ui index 9e15c03e996a..03e40cfccbde 100644 --- a/src/calibre/gui2/preferences/look_feel_tabs/cover_grid.ui +++ b/src/calibre/gui2/preferences/look_feel_tabs/cover_grid.ui @@ -271,7 +271,7 @@ A value of zero means calculate automatically. - + &Emblems @@ -412,6 +412,18 @@ A value of zero means calculate automatically. + + + ConfigWidgetBase + QWidget +
calibre/gui2/preferences/look_feel_tabs.h
+
+ + GridEmblemnRules + ConfigWidgetBase +
calibre/gui2/preferences/look_feel_tabs.h
+
+