GUI: Fixed sorting for mount count in reference_tools_panel.py and also the unmoutn button is now correctly wired

This commit is contained in:
2025-11-10 09:42:48 +01:00
parent 22790b7b87
commit 7fb870eac4
+20 -10
View File
@@ -78,12 +78,14 @@ class ReferenceToolsModel(QAbstractTableModel):
def update_rows(self, rows: list[SampleShortInfo]):
self.beginResetModel()
self.samples = rows
if self.samples: # Only sort if we have samples
self._sort()
else:
self.__sorted_samples = [] # Clear sorted samples if no data
self.endResetModel()
try:
self.samples = rows
if self.samples: # Only sort if we have samples
self._sort()
else:
self.__sorted_samples = [] # Clear sorted samples if no data
finally:
self.endResetModel()
def sort(self, column, order):
@@ -106,11 +108,19 @@ class ReferenceToolsModel(QAbstractTableModel):
key=lambda row: row.loc_str_sort(),
reverse=(self.__sort_order == Qt.SortOrder.DescendingOrder)
)
else:
# Generic sorting for other columns
elif self.__sort_col == 2:
# Numeric sort for Mount count; place None last on ascending, first on descending
none_sentinel = float('inf') if self.__sort_order == Qt.SortOrder.AscendingOrder else float('-inf')
self.__sorted_samples = sorted(
self.samples,
key=lambda row: get_entry(row, self.__sort_col) or "",
key=lambda row: (row.mount_count if isinstance(row.mount_count, (int, float)) else none_sentinel),
reverse=(self.__sort_order == Qt.SortOrder.DescendingOrder)
)
else:
# String sort with empty fallback
self.__sorted_samples = sorted(
self.samples,
key=lambda row: (get_entry(row, self.__sort_col) or ""),
reverse=(self.__sort_order == Qt.SortOrder.DescendingOrder)
)
@@ -227,7 +237,7 @@ class ReferenceToolsPanel(QFrame):
if action == act_mount:
self.mount.emit(item, True)
elif action == act_unmount:
self.unmount.emit(item)
self.unmount.emit()
@Slot(SampleShortInfoList)
def new_list(self, samples: SampleShortInfoList):