From 1237f103c55921d1bc98bfba849f346448cf96b5 Mon Sep 17 00:00:00 2001 From: un-pogaz <46523284+un-pogaz@users.noreply.github.com> Date: Thu, 30 Jan 2025 18:39:03 +0100 Subject: [PATCH] fix parent of hierarchical categories disappear --- .../gui2/preferences/look_feel_tabs/tb_icon_rules.py | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 84902d7caa..e1b2d1b5cc 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 @@ -355,6 +355,7 @@ class TbIconRulesTab(LazyConfigWidgetBase, Ui_Form): def populate_content(self): field_metadata = self.gui.current_db.field_metadata category_icons = self.gui.tags_view.model().category_custom_icons + is_hierarchical_category = self.gui.tags_view.model().is_key_a_hierarchical_category only_current_library = self.show_only_current_library.isChecked() v = gprefs['tags_browser_value_icons'] row = 0 @@ -366,6 +367,15 @@ class TbIconRulesTab(LazyConfigWidgetBase, Ui_Form): if category in field_metadata: display_name = field_metadata[category]['name'] all_values = self.gui.current_db.new_api.all_field_names(category) + if is_hierarchical_category(category): + rslt = set() + for value in all_values: + idx = 0 + while idx >= 0: + rslt.add(value) + idx = value.rfind('.') + value = value[:idx] + all_values = rslt elif only_current_library: continue else: