Put back intermediate_nodes

With the changes to avg_rating it works ok
This commit is contained in:
Kovid Goyal 2015-11-23 14:58:14 +05:30
parent 9b229f3951
commit 17edcc0686

View File

@ -422,6 +422,7 @@ class TagsModel(QAbstractItemModel): # {{{
sort_by = config['sort_tags_by'] sort_by = config['sort_tags_by']
eval_formatter = EvalFormatter() eval_formatter = EvalFormatter()
intermediate_nodes = {}
if data is None: if data is None:
print ('_create_node_tree: no data!') print ('_create_node_tree: no data!')
@ -585,6 +586,7 @@ class TagsModel(QAbstractItemModel): # {{{
if tag.id_set is not None: if tag.id_set is not None:
n.id_set |= tag.id_set n.id_set |= tag.id_set
category_child_map[tag.name, tag.category] = n category_child_map[tag.name, tag.category] = n
intermediate_nodes[tag.original_name, tag.category] = tag
else: else:
for i,comp in enumerate(components): for i,comp in enumerate(components):
if i == 0: if i == 0:
@ -601,19 +603,23 @@ class TagsModel(QAbstractItemModel): # {{{
else: else:
if i < len(components)-1: if i < len(components)-1:
original_name = '.'.join(components[:i+1]) original_name = '.'.join(components[:i+1])
t = copy.copy(tag) t = intermediate_nodes.get((original_name, tag.category), None)
t.original_name = original_name if t is None:
t.count = 0 t = copy.copy(tag)
if key != 'search': t.original_name = original_name
# This 'manufactured' intermediate node can t.count = 0
# be searched, but cannot be edited. if key != 'search':
t.is_editable = False # This 'manufactured' intermediate node can
else: # be searched, but cannot be edited.
t.is_searchable = t.is_editable = False t.is_editable = False
else:
t.is_searchable = t.is_editable = False
intermediate_nodes[original_name, tag.category] = t
else: else:
t = tag t = tag
if not in_uc: if not in_uc:
t.original_name = t.name t.original_name = t.name
intermediate_nodes[t.original_name, t.category] = t
t.is_hierarchical = \ t.is_hierarchical = \
'5state' if t.category != 'search' else '3state' '5state' if t.category != 'search' else '3state'
t.name = comp t.name = comp