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..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,8 +59,18 @@ 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.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, + 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 +79,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): @@ -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()
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)