mirror of
https://github.com/KenanZhu/AutoLibrary.git
synced 2026-06-18 15:33:03 +08:00
optimize(ALTimerTaskWidget, ALConfigWidget): 优化定时器和用户设置的任务列表排序
This commit is contained in:
@@ -154,6 +154,7 @@ class ALTimerTaskWidget(QWidget, Ui_ALTimerTaskWidget):
|
|||||||
self.__timer_tasks = []
|
self.__timer_tasks = []
|
||||||
self.__check_timer = None
|
self.__check_timer = None
|
||||||
self.__sort_policy = SortPolicy.BY_EXECUTE_TIME
|
self.__sort_policy = SortPolicy.BY_EXECUTE_TIME
|
||||||
|
self.__sort_order = Qt.SortOrder.AscendingOrder
|
||||||
self.__timer_tasks_config_path = timer_tasks_config_path
|
self.__timer_tasks_config_path = timer_tasks_config_path
|
||||||
|
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
@@ -170,6 +171,7 @@ class ALTimerTaskWidget(QWidget, Ui_ALTimerTaskWidget):
|
|||||||
self.AddTimerTaskButton.clicked.connect(self.addTask)
|
self.AddTimerTaskButton.clicked.connect(self.addTask)
|
||||||
self.ClearAllTimerTasksButton.clicked.connect(self.clearAllTasks)
|
self.ClearAllTimerTasksButton.clicked.connect(self.clearAllTasks)
|
||||||
self.TimerTaskSortTypeComboBox.currentIndexChanged.connect(self.onSortPolicyComboBoxChanged)
|
self.TimerTaskSortTypeComboBox.currentIndexChanged.connect(self.onSortPolicyComboBoxChanged)
|
||||||
|
self.TimerTaskSortOrderToggleButton.clicked.connect(self.onSortOrderToggleButtonClicked)
|
||||||
self.timerTasksChanged.connect(self.onTimerTasksChanged)
|
self.timerTasksChanged.connect(self.onTimerTasksChanged)
|
||||||
|
|
||||||
|
|
||||||
@@ -294,20 +296,24 @@ class ALTimerTaskWidget(QWidget, Ui_ALTimerTaskWidget):
|
|||||||
|
|
||||||
def sortTimerTasks(
|
def sortTimerTasks(
|
||||||
self,
|
self,
|
||||||
policy: SortPolicy = SortPolicy.BY_EXECUTE_TIME
|
policy: SortPolicy = SortPolicy.BY_EXECUTE_TIME,
|
||||||
|
order: Qt.SortOrder = Qt.SortOrder.AscendingOrder
|
||||||
):
|
):
|
||||||
|
|
||||||
if policy == SortPolicy.BY_NAME:
|
if policy == SortPolicy.BY_NAME:
|
||||||
self.__timer_tasks.sort(
|
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:
|
elif policy == SortPolicy.BY_ADD_TIME:
|
||||||
self.__timer_tasks.sort(
|
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:
|
elif policy == SortPolicy.BY_EXECUTE_TIME:
|
||||||
self.__timer_tasks.sort(
|
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.TimerTasksListWidget.clear()
|
||||||
self.sortTimerTasks(self.__sort_policy)
|
self.sortTimerTasks(self.__sort_policy, self.__sort_order)
|
||||||
for timer_task in self.__timer_tasks:
|
for timer_task in self.__timer_tasks:
|
||||||
item = QListWidgetItem()
|
item = QListWidgetItem()
|
||||||
item.setData(Qt.UserRole, timer_task)
|
item.setData(Qt.UserRole, timer_task)
|
||||||
@@ -445,6 +451,18 @@ class ALTimerTaskWidget(QWidget, Ui_ALTimerTaskWidget):
|
|||||||
self.__sort_policy = mapping[policy]
|
self.__sort_policy = mapping[policy]
|
||||||
self.updateTimerTaskList()
|
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()
|
@Slot()
|
||||||
def onTimerTasksChanged(
|
def onTimerTasksChanged(
|
||||||
|
|||||||
@@ -188,7 +188,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="TimerTaskSortLayout">
|
<layout class="QHBoxLayout" name="TimerTaskSortLayout">
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>5</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QFrame" name="TimerTaskSortSpaceFrame">
|
<widget class="QFrame" name="TimerTaskSortSpaceFrame">
|
||||||
@@ -259,6 +259,25 @@
|
|||||||
</item>
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="TimerTaskSortOrderToggleButton">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>25</width>
|
||||||
|
<height>25</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>25</width>
|
||||||
|
<height>25</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>↑</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ class ALUserTreeWidget(QTreeWidget):
|
|||||||
self.setDefaultDropAction(Qt.DropAction.IgnoreAction)
|
self.setDefaultDropAction(Qt.DropAction.IgnoreAction)
|
||||||
self.setAlternatingRowColors(True)
|
self.setAlternatingRowColors(True)
|
||||||
self.setSortingEnabled(True)
|
self.setSortingEnabled(True)
|
||||||
|
self.sortByColumn(0, Qt.SortOrder.AscendingOrder)
|
||||||
self.setAnimated(True)
|
self.setAnimated(True)
|
||||||
self.setAllColumnsShowFocus(False)
|
self.setAllColumnsShowFocus(False)
|
||||||
self.setHeaderHidden(False)
|
self.setHeaderHidden(False)
|
||||||
|
|||||||
Reference in New Issue
Block a user