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