Skip to content

Commit 70cd0e9

Browse files
committed
PICARD-2071: Fix tracks sometimes sorted in reverse order
When tracks got loaded while sorting was disabled the tracks ended up in reverse order. Unify the behavior by always disabling sorting while inserting tracks.
1 parent 813feb9 commit 70cd0e9

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

picard/ui/itemviews.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -969,11 +969,18 @@ def update(self, update_tracks=True, update_selection=True):
969969
item.update(update_album=False)
970970
if newnum > oldnum: # add new items
971971
items = []
972-
for i in range(newnum - 1, oldnum - 1, -1): # insertChildren is backwards
972+
for i in range(oldnum, newnum):
973973
item = TrackItem(album.tracks[i], False)
974974
item.setHidden(False) # Workaround to make sure the parent state gets updated
975975
items.append(item)
976+
# insertChildren behaves differently if sorting is disabled / enabled, which results
977+
# in different sort order of tracks in unsorted state. As we sort the tracks later
978+
# anyway make sure sorting is disabled here.
979+
tree_view = self.treeWidget()
980+
sorting_enabled = tree_view.isSortingEnabled()
981+
tree_view.setSortingEnabled(False)
976982
self.insertChildren(oldnum, items)
983+
tree_view.setSortingEnabled(sorting_enabled)
977984
for item in items: # Update after insertChildren so that setExpanded works
978985
item.update(update_album=False)
979986
if album.errors:

0 commit comments

Comments
 (0)