This commit is contained in:
@@ -48,6 +48,8 @@ class UserSampleSpreadsheet(QAbstractTableModel):
|
||||
]
|
||||
self.current_sample = current_sample
|
||||
self.current_puck = current_puck
|
||||
self.__sort_col = 1
|
||||
self.__sort_order = Qt.SortOrder.AscendingOrder
|
||||
|
||||
def rowCount(self, parent=None):
|
||||
return len(self.samples)
|
||||
@@ -86,34 +88,42 @@ class UserSampleSpreadsheet(QAbstractTableModel):
|
||||
self,
|
||||
samples: list[SampleShortInfo]
|
||||
):
|
||||
if self.samples != samples:
|
||||
current_set = set(self.samples)
|
||||
new_set = set(samples)
|
||||
|
||||
if current_set != new_set:
|
||||
self.beginResetModel()
|
||||
self.samples = samples
|
||||
self.sort_internal()
|
||||
self.endResetModel()
|
||||
|
||||
def sort(self, column, order):
|
||||
self.layoutAboutToBeChanged.emit()
|
||||
self.__sort_order = order
|
||||
self.__sort_col = column
|
||||
self.sort_internal()
|
||||
self.layoutChanged.emit()
|
||||
|
||||
if column == 3:
|
||||
|
||||
def sort_internal(self):
|
||||
if self.__sort_col == 3:
|
||||
self.samples = sorted(
|
||||
self.samples,
|
||||
key=lambda row: row.loc_str_sort(),
|
||||
reverse=(
|
||||
order == Qt.SortOrder.DescendingOrder
|
||||
self.__sort_order == Qt.SortOrder.DescendingOrder
|
||||
), # Reverse for descending order
|
||||
)
|
||||
else:
|
||||
# Sort the samples based on the specified column and order
|
||||
self.samples = sorted(
|
||||
self.samples,
|
||||
key=lambda row: get_entry(row, column),
|
||||
key=lambda row: get_entry(row, self.__sort_col),
|
||||
reverse=(
|
||||
order == Qt.SortOrder.DescendingOrder
|
||||
self.__sort_order == Qt.SortOrder.DescendingOrder
|
||||
), # Reverse for descending order
|
||||
)
|
||||
|
||||
# Notify views that the model layout has changed
|
||||
self.layoutChanged.emit()
|
||||
|
||||
def flags(self, index):
|
||||
default_flags = super().flags(index)
|
||||
|
||||
Reference in New Issue
Block a user