eric6/Tasks/TaskFilterConfigDialog.py

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

eric ide

mercurial