mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Three things related to tag_browser_category_order:
1) do a proper migration of the tweak 2) Fix the server's usage of the migrated value. 3) Fix an exception in the server related to hierarchical user categories
This commit is contained in:
parent
5b94406fcc
commit
80e4b7dde9
@ -1228,6 +1228,9 @@ class TagsModel(QAbstractItemModel): # {{{
|
||||
order = {'*': 1000}
|
||||
defvalue = order.get('*', 1000)
|
||||
self.row_map.sort(key=lambda x: order.get(x, defvalue))
|
||||
# Migrate the tweak to the new pref. First, make sure the order is valid
|
||||
self.row_map = self.get_ordered_categories(pref_data_override=[[k,None] for k in self.row_map])
|
||||
self.db.new_api.set_pref('tag_browser_category_order', self.row_map)
|
||||
return data
|
||||
|
||||
def set_categories_filter(self, txt):
|
||||
|
@ -222,10 +222,8 @@ def create_toplevel_tree(category_data, items, field_metadata, opts, db):
|
||||
last_category_node, category_node_map, root = None, {}, {'id':None, 'children':[]}
|
||||
node_id_map = {}
|
||||
category_nodes, recount_nodes = [], []
|
||||
order = db.pref('tag_browser_category_order') or {}
|
||||
defvalue = order.get('*', 100)
|
||||
categories = [category for category in field_metadata if category in category_data]
|
||||
scats = sorted(categories, key=lambda x: order.get(x, defvalue))
|
||||
scats = db.pref('tag_browser_category_order', [k for k in category_data])
|
||||
scats = [k for k in scats if k in field_metadata]
|
||||
|
||||
for category in scats:
|
||||
is_user_category = category.startswith('@')
|
||||
@ -361,6 +359,9 @@ def process_category_node(
|
||||
opts, tag_map, hierarchical_tags, node_to_tag_map, collapse_nodes,
|
||||
intermediate_nodes, hierarchical_items):
|
||||
category = items[category_node['id']]['category']
|
||||
if category not in category_data:
|
||||
# This can happen for user categories that are hierarchical and missing their parent.
|
||||
return
|
||||
category_items = category_data[category]
|
||||
cat_len = len(category_items)
|
||||
if cat_len <= 0:
|
||||
|
Loading…
x
Reference in New Issue
Block a user