File tree Expand file tree Collapse file tree 2 files changed +15
-13
lines changed Expand file tree Collapse file tree 2 files changed +15
-13
lines changed Original file line number Diff line number Diff line change @@ -632,7 +632,7 @@ def search_library(
632
632
633
633
def search_tags (
634
634
self ,
635
- name : str ,
635
+ name : str | None ,
636
636
) -> list [Tag ]:
637
637
"""Return a list of Tag records matching the query."""
638
638
tag_limit = 100
Original file line number Diff line number Diff line change @@ -186,26 +186,28 @@ def on_tag_modal_saved():
186
186
187
187
def update_tags (self , query : str | None = None ):
188
188
logger .info ("[Tag Search Super Class] Updating Tags" )
189
-
190
189
# TODO: Look at recycling rather than deleting and re-initializing
191
190
while self .scroll_layout .count ():
192
191
self .scroll_layout .takeAt (0 ).widget ().deleteLater ()
193
-
194
192
tag_results = self .lib .search_tags (name = query )
195
193
if len (tag_results ) > 0 :
196
- self .first_tag_id = tag_results [0 ].id
197
- else :
198
- self .first_tag_id = None
199
-
200
- for tag in tag_results :
201
- if tag .id not in self .exclude :
194
+ results_1 = []
195
+ results_2 = []
196
+ for tag in tag_results :
197
+ if tag .id in self .exclude :
198
+ continue
199
+ elif query and tag .name .lower ().startswith (query .lower ()):
200
+ results_1 .append (tag )
201
+ else :
202
+ results_2 .append (tag )
203
+ results_1 .sort (key = lambda tag : len (tag .name ))
204
+ results_2 .sort ()
205
+ for tag in results_1 + results_2 :
202
206
self .scroll_layout .addWidget (self .__build_row_item_widget (tag ))
203
-
204
- # If query doesnt exist add create button
205
- if len (tag_results ) == 0 :
207
+ else :
208
+ # If query doesnt exist add create button
206
209
c = self .construct_tag_button (query )
207
210
self .scroll_layout .addWidget (c )
208
-
209
211
self .search_field .setFocus ()
210
212
211
213
def on_return (self , text : str ):
You can’t perform that action at this time.
0 commit comments