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
+
+