Make clicking on first letter nodes in the tag browser work better

This commit is contained in:
Charles Haley 2011-06-25 09:34:58 +01:00
parent 41af71af27
commit 30a2aa6253

View File

@ -1686,10 +1686,19 @@ class TagsModel(QAbstractItemModel): # {{{
if self.collapse_model == 'first letter' and \ if self.collapse_model == 'first letter' and \
tag_item.temporary and not key.startswith('@') \ tag_item.temporary and not key.startswith('@') \
and tag_item.tag.state: and tag_item.tag.state:
if node_searches[tag_item.tag.state] == 'true': k = 'author_sort' if key == 'authors' else key
ans.append('%s:~^%s'%(key, tag_item.py_name)) letters_seen = {}
for subnode in tag_item.children:
letters_seen[subnode.tag.sort[0]] = True
charclass = ''.join(letters_seen)
if k == 'author_sort':
expr = r'%s:"~(^[%s])|(&\\s*[%s])"'%(k, charclass, charclass)
else: else:
ans.append('(not %s:~^%s )'%(key, tag_item.py_name)) expr = r'%s:"~^[%s]"'%(k, charclass)
if node_searches[tag_item.tag.state] == 'true':
ans.append(expr)
else:
ans.append('(not ' + expr + ')')
continue continue
tag = tag_item.tag tag = tag_item.tag
if tag.state != TAG_SEARCH_STATES['clear']: if tag.state != TAG_SEARCH_STATES['clear']: