diff --git a/src/gui/ALTimerTaskWidget.py b/src/gui/ALTimerTaskWidget.py index c656e49..d719fa6 100644 --- a/src/gui/ALTimerTaskWidget.py +++ b/src/gui/ALTimerTaskWidget.py @@ -154,6 +154,7 @@ class ALTimerTaskWidget(QWidget, Ui_ALTimerTaskWidget): self.__timer_tasks = [] self.__check_timer = None self.__sort_policy = SortPolicy.BY_EXECUTE_TIME + self.__sort_order = Qt.SortOrder.AscendingOrder self.__timer_tasks_config_path = timer_tasks_config_path self.setupUi(self) @@ -170,6 +171,7 @@ class ALTimerTaskWidget(QWidget, Ui_ALTimerTaskWidget): self.AddTimerTaskButton.clicked.connect(self.addTask) self.ClearAllTimerTasksButton.clicked.connect(self.clearAllTasks) self.TimerTaskSortTypeComboBox.currentIndexChanged.connect(self.onSortPolicyComboBoxChanged) + self.TimerTaskSortOrderToggleButton.clicked.connect(self.onSortOrderToggleButtonClicked) self.timerTasksChanged.connect(self.onTimerTasksChanged) @@ -294,20 +296,24 @@ class ALTimerTaskWidget(QWidget, Ui_ALTimerTaskWidget): def sortTimerTasks( self, - policy: SortPolicy = SortPolicy.BY_EXECUTE_TIME + policy: SortPolicy = SortPolicy.BY_EXECUTE_TIME, + order: Qt.SortOrder = Qt.SortOrder.AscendingOrder ): if policy == SortPolicy.BY_NAME: self.__timer_tasks.sort( - key = lambda x: x["name"] + key = lambda x: x["name"], + reverse = order is Qt.SortOrder.DescendingOrder ) elif policy == SortPolicy.BY_ADD_TIME: self.__timer_tasks.sort( - key = lambda x: x["add_time"] + key = lambda x: x["add_time"], + reverse = order is Qt.SortOrder.DescendingOrder ) elif policy == SortPolicy.BY_EXECUTE_TIME: self.__timer_tasks.sort( - key = lambda x: x["execute_time"] + key = lambda x: x["execute_time"], + reverse = order is Qt.SortOrder.DescendingOrder ) @@ -343,7 +349,7 @@ class ALTimerTaskWidget(QWidget, Ui_ALTimerTaskWidget): ): self.TimerTasksListWidget.clear() - self.sortTimerTasks(self.__sort_policy) + self.sortTimerTasks(self.__sort_policy, self.__sort_order) for timer_task in self.__timer_tasks: item = QListWidgetItem() item.setData(Qt.UserRole, timer_task) @@ -445,6 +451,18 @@ class ALTimerTaskWidget(QWidget, Ui_ALTimerTaskWidget): self.__sort_policy = mapping[policy] self.updateTimerTaskList() + @Slot() + def onSortOrderToggleButtonClicked( + self + ): + + self.__sort_order = Qt.SortOrder.AscendingOrder\ + if self.__sort_order is Qt.SortOrder.DescendingOrder\ + else Qt.SortOrder.DescendingOrder + self.TimerTaskSortOrderToggleButton.setText( + "↑" if self.__sort_order is Qt.SortOrder.AscendingOrder else "↓" + ) + self.updateTimerTaskList() @Slot() def onTimerTasksChanged( diff --git a/src/gui/ALTimerTaskWidget.ui b/src/gui/ALTimerTaskWidget.ui index 363ead3..5f39cdb 100644 --- a/src/gui/ALTimerTaskWidget.ui +++ b/src/gui/ALTimerTaskWidget.ui @@ -188,7 +188,7 @@ - 5 + 0 @@ -259,6 +259,25 @@ + + + + + 25 + 25 + + + + + 25 + 25 + + + + + + + diff --git a/src/gui/ALUserTreeWidget.py b/src/gui/ALUserTreeWidget.py index b07ed64..00048a1 100644 --- a/src/gui/ALUserTreeWidget.py +++ b/src/gui/ALUserTreeWidget.py @@ -60,6 +60,7 @@ class ALUserTreeWidget(QTreeWidget): self.setDefaultDropAction(Qt.DropAction.IgnoreAction) self.setAlternatingRowColors(True) self.setSortingEnabled(True) + self.sortByColumn(0, Qt.SortOrder.AscendingOrder) self.setAnimated(True) self.setAllColumnsShowFocus(False) self.setHeaderHidden(False)