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:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user