From 5d4bca12c09cedc5203a296d039730dbc6e5ae22 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 13 May 2024 00:54:59 +0200 Subject: [PATCH] Use ColumnSortType and Column.sortkey(), get rid of few more MainPanel references --- picard/ui/itemviews/__init__.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/picard/ui/itemviews/__init__.py b/picard/ui/itemviews/__init__.py index 8fc882435..345fdb520 100644 --- a/picard/ui/itemviews/__init__.py +++ b/picard/ui/itemviews/__init__.py @@ -103,6 +103,7 @@ from picard.ui.itemviews.columns import ( DEFAULT_COLUMNS, ITEM_ICON_COLUMN, ColumnAlign, + ColumnSortType, ) from picard.ui.ratingwidget import RatingWidget from picard.ui.scriptsmenu import ScriptsMenu @@ -956,14 +957,11 @@ class TreeItem(QtWidgets.QTreeWidgetItem): if sortkey is not None: return sortkey - if column == MainPanel.LENGTH_COLUMN: - sortkey = self.obj.metadata.length or 0 - elif column == MainPanel.FILESIZE_COLUMN: - try: - sortkey = int(self.obj.metadata['~filesize'] or self.obj.orig_metadata['~filesize']) - except ValueError: - sortkey = 0 - elif column in MainPanel.NAT_SORT_COLUMNS: + this_column = DEFAULT_COLUMNS[column] + + if this_column.sort_type == ColumnSortType.SORTKEY: + sortkey = this_column.sortkey(self.obj) + elif this_column.sort_type == ColumnSortType.NAT: sortkey = natsort.natkey(self.text(column)) else: sortkey = strxfrm(self.text(column))