src/eric7/Tasks/TaskFilterConfigDialog.py

branch
eric7
changeset 9209
b99e7fd55fd3
parent 8881
54e42bc2437a
child 9221
bf71ee032bb4
equal deleted inserted replaced
9208:3fc8dfeb6ebe 9209:b99e7fd55fd3
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2006 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing the task filter configuration dialog.
8 """
9
10 from PyQt6.QtWidgets import QDialog
11
12 from .Task import TaskType, TaskPriority
13
14 from .Ui_TaskFilterConfigDialog import Ui_TaskFilterConfigDialog
15
16
17 class TaskFilterConfigDialog(QDialog, Ui_TaskFilterConfigDialog):
18 """
19 Class implementing the task filter configuration dialog.
20 """
21 def __init__(self, taskFilter, parent=None):
22 """
23 Constructor
24
25 @param taskFilter the task filter object to be configured
26 @param parent the parent widget (QWidget)
27 """
28 super().__init__(parent)
29 self.setupUi(self)
30
31 self.typeCombo.addItem("", TaskType.NONE)
32 self.typeCombo.addItem(self.tr("Bugfix"), TaskType.FIXME)
33 self.typeCombo.addItem(self.tr("Warning"), TaskType.WARNING)
34 self.typeCombo.addItem(self.tr("ToDo"), TaskType.TODO)
35 self.typeCombo.addItem(self.tr("Note"), TaskType.NOTE)
36 self.typeCombo.addItem(self.tr("Test"), TaskType.TEST)
37 self.typeCombo.addItem(self.tr("Documentation"), TaskType.DOCU)
38
39 if (
40 taskFilter.summaryFilter is None or
41 not taskFilter.summaryFilter.pattern
42 ):
43 self.summaryGroup.setChecked(False)
44 self.summaryEdit.clear()
45 else:
46 self.summaryGroup.setChecked(True)
47 self.summaryEdit.setText(taskFilter.summaryFilter.pattern)
48
49 if not taskFilter.filenameFilter:
50 self.filenameGroup.setChecked(False)
51 self.filenameEdit.clear()
52 else:
53 self.filenameGroup.setChecked(True)
54 self.filenameEdit.setText(taskFilter.filenameFilter)
55
56 if taskFilter.typeFilter == TaskType.NONE:
57 self.typeGroup.setChecked(False)
58 self.typeCombo.setCurrentIndex(0)
59 else:
60 self.typeGroup.setChecked(True)
61 self.typeCombo.setCurrentIndex(
62 self.typeCombo.findData(taskFilter.typeFilter))
63
64 if taskFilter.scopeFilter is None:
65 self.scopeGroup.setChecked(False)
66 self.globalRadioButton.setChecked(True)
67 else:
68 self.scopeGroup.setChecked(True)
69 if taskFilter.scopeFilter:
70 self.projectRadioButton.setChecked(True)
71 else:
72 self.globalRadioButton.setChecked(True)
73
74 if taskFilter.statusFilter is None:
75 self.statusGroup.setChecked(False)
76 self.uncompletedRadioButton.setChecked(True)
77 else:
78 self.statusGroup.setChecked(True)
79 if taskFilter.statusFilter:
80 self.completedRadioButton.setChecked(True)
81 else:
82 self.uncompletedRadioButton.setChecked(True)
83
84 if taskFilter.prioritiesFilter is None:
85 self.priorityGroup.setChecked(False)
86 self.priorityHighCheckBox.setChecked(False)
87 self.priorityNormalCheckBox.setChecked(False)
88 self.priorityLowCheckBox.setChecked(False)
89 else:
90 self.priorityGroup.setChecked(True)
91 self.priorityHighCheckBox.setChecked(
92 TaskPriority.HIGH in taskFilter.prioritiesFilter)
93 self.priorityNormalCheckBox.setChecked(
94 TaskPriority.NORMAL in taskFilter.prioritiesFilter)
95 self.priorityLowCheckBox.setChecked(
96 TaskPriority.LOW in taskFilter.prioritiesFilter)
97
98 msh = self.minimumSizeHint()
99 self.resize(max(self.width(), msh.width()), msh.height())
100
101 def configureTaskFilter(self, taskFilter):
102 """
103 Public method to set the parameters of the task filter object.
104
105 @param taskFilter the task filter object to be configured
106 """
107 if self.summaryGroup.isChecked():
108 taskFilter.setSummaryFilter(self.summaryEdit.text())
109 else:
110 taskFilter.setSummaryFilter(None)
111
112 if self.filenameGroup.isChecked():
113 taskFilter.setFileNameFilter(self.filenameEdit.text())
114 else:
115 taskFilter.setFileNameFilter("")
116
117 if self.typeGroup.isChecked():
118 taskFilter.setTypeFilter(
119 TaskType(
120 self.typeCombo.itemData(self.typeCombo.currentIndex())
121 )
122 )
123 else:
124 taskFilter.setTypeFilter(TaskType.NONE)
125
126 if self.scopeGroup.isChecked():
127 if self.projectRadioButton.isChecked():
128 taskFilter.setScopeFilter(True)
129 else:
130 taskFilter.setScopeFilter(False)
131 else:
132 taskFilter.setScopeFilter(None)
133
134 if self.statusGroup.isChecked():
135 if self.completedRadioButton.isChecked():
136 taskFilter.setStatusFilter(True)
137 else:
138 taskFilter.setStatusFilter(False)
139 else:
140 taskFilter.setStatusFilter(None)
141
142 if self.priorityGroup.isChecked():
143 priorities = []
144 if self.priorityHighCheckBox.isChecked():
145 priorities.append(TaskPriority.HIGH)
146 if self.priorityNormalCheckBox.isChecked():
147 priorities.append(TaskPriority.NORMAL)
148 if self.priorityLowCheckBox.isChecked():
149 priorities.append(TaskPriority.LOW)
150 taskFilter.setPrioritiesFilter(priorities)
151 else:
152 taskFilter.setPrioritiesFilter(None)

eric ide

mercurial