From 080271a24b0c3f732b9870ca7b12c4bbe9754d5e Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Thu, 23 Jan 2025 16:49:20 +0000 Subject: [PATCH 1/3] Make Look & feel / Tag browser / tb_hierarchy respect the new "lazy" tab process. I wonder if the lazy tab processing will eventually need to move into a superclass. There are several preference sections that use tabs. --- .../look_feel_tabs/tb_hierarchy.py | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/calibre/gui2/preferences/look_feel_tabs/tb_hierarchy.py b/src/calibre/gui2/preferences/look_feel_tabs/tb_hierarchy.py index 2f31825daa..6f93dfa6d0 100644 --- a/src/calibre/gui2/preferences/look_feel_tabs/tb_hierarchy.py +++ b/src/calibre/gui2/preferences/look_feel_tabs/tb_hierarchy.py @@ -59,8 +59,16 @@ class TbHierarchyTab(ConfigTabWidget, Ui_Form): def genesis(self, gui): self.gui = gui - self.tb_hierarchical_cats_model = TBHierarchicalFields(gui.current_db, self.tb_hierarchical_cats, - category_icons=gui.tags_view.model().category_custom_icons) + self.tb_search_order_up_button.clicked.connect(self.move_tb_search_up) + self.tb_search_order_down_button.clicked.connect(self.move_tb_search_down) + self.tb_search_order.set_movement_functions(self.move_tb_search_up, self.move_tb_search_down) + self.tb_search_order_reset_button.clicked.connect(self.reset_tb_search_order) + + def lazy_populate_content(self): + self.fill_tb_search_order_box() + + self.tb_hierarchical_cats_model = TBHierarchicalFields(self.gui.current_db, self.tb_hierarchical_cats, + category_icons=self.gui.tags_view.model().category_custom_icons) self.tb_hierarchical_cats_model.dataChanged.connect(self.changed_signal) self.tb_hierarchical_cats.setModel(self.tb_hierarchical_cats_model) self.tb_hierarchy_reset_layout_button.clicked.connect(partial(self.reset_layout, @@ -69,14 +77,6 @@ class TbHierarchyTab(ConfigTabWidget, Ui_Form): model=self.tb_hierarchical_cats_model)) self.tb_hierarchy_import_layout_button.clicked.connect(partial(self.import_layout, model=self.tb_hierarchical_cats_model)) - - self.fill_tb_search_order_box() - self.tb_search_order_up_button.clicked.connect(self.move_tb_search_up) - self.tb_search_order_down_button.clicked.connect(self.move_tb_search_down) - self.tb_search_order.set_movement_functions(self.move_tb_search_up, self.move_tb_search_down) - self.tb_search_order_reset_button.clicked.connect(self.reset_tb_search_order) - - def initialize(self): self.tb_hierarchical_cats_model.initialize() def fill_tb_search_order_box(self): From 8281d102fd8f6d544dbea503827e32df6c4c4493 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Thu, 23 Jan 2025 22:27:09 +0000 Subject: [PATCH 2/3] Fix regression in the tab hierarchy class caused by previous commit. --- .../gui2/preferences/look_feel_tabs/tb_hierarchy.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/preferences/look_feel_tabs/tb_hierarchy.py b/src/calibre/gui2/preferences/look_feel_tabs/tb_hierarchy.py index 6f93dfa6d0..eeb7c333c7 100644 --- a/src/calibre/gui2/preferences/look_feel_tabs/tb_hierarchy.py +++ b/src/calibre/gui2/preferences/look_feel_tabs/tb_hierarchy.py @@ -59,12 +59,14 @@ class TbHierarchyTab(ConfigTabWidget, Ui_Form): def genesis(self, gui): self.gui = gui + self.tab_opened = False self.tb_search_order_up_button.clicked.connect(self.move_tb_search_up) self.tb_search_order_down_button.clicked.connect(self.move_tb_search_down) self.tb_search_order.set_movement_functions(self.move_tb_search_up, self.move_tb_search_down) self.tb_search_order_reset_button.clicked.connect(self.reset_tb_search_order) def lazy_populate_content(self): + self.tab_opened = True self.fill_tb_search_order_box() self.tb_hierarchical_cats_model = TBHierarchicalFields(self.gui.current_db, self.tb_hierarchical_cats, @@ -170,5 +172,6 @@ class TbHierarchyTab(ConfigTabWidget, Ui_Form): _('

Could not read field list. Error:
%s')%err, show=True) def commit(self): - self.tb_search_order_commit() - self.tb_hierarchical_cats_model.commit() + if self.tab_opened: + self.tb_search_order_commit() + self.tb_hierarchical_cats_model.commit() From ac1f1c5b6c87f6090f6c7975a30163829971f121 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Fri, 24 Jan 2025 02:49:33 +0000 Subject: [PATCH 3/3] Turn off multiple selection in the icon viewer. The underlying mechanisms can't handle it yet. --- src/calibre/gui2/preferences/look_feel_tabs/tb_icon_rules.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/calibre/gui2/preferences/look_feel_tabs/tb_icon_rules.py b/src/calibre/gui2/preferences/look_feel_tabs/tb_icon_rules.py index bb17bafdd7..0e35bfa260 100644 --- a/src/calibre/gui2/preferences/look_feel_tabs/tb_icon_rules.py +++ b/src/calibre/gui2/preferences/look_feel_tabs/tb_icon_rules.py @@ -113,6 +113,7 @@ class TbIconRulesTab(ConfigTabWidget, Ui_Form): ('', _('Category'), _('Value'), _('Icon file or template'),_('For children'))) self.rules_table.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.rules_table.customContextMenuRequested.connect(self.show_context_menu) + self.rules_table.setSelectionMode(QAbstractItemView.SelectionMode.SingleSelection) for i in range(0, HEADER_SECTION_COUNT): item = self.rules_table.horizontalHeaderItem(i)