20 |
20 |
21 class TaskPropertiesDialog(QDialog, Ui_TaskPropertiesDialog): |
21 class TaskPropertiesDialog(QDialog, Ui_TaskPropertiesDialog): |
22 """ |
22 """ |
23 Class implementing the task properties dialog. |
23 Class implementing the task properties dialog. |
24 """ |
24 """ |
|
25 |
25 def __init__(self, task=None, parent=None, projectOpen=False): |
26 def __init__(self, task=None, parent=None, projectOpen=False): |
26 """ |
27 """ |
27 Constructor |
28 Constructor |
28 |
29 |
29 @param task the task object to be shown |
30 @param task the task object to be shown |
30 @type Task |
31 @type Task |
31 @param parent the parent widget |
32 @param parent the parent widget |
32 @type QWidget |
33 @type QWidget |
33 @param projectOpen flag indicating status of the project |
34 @param projectOpen flag indicating status of the project |
34 @type bool |
35 @type bool |
35 """ |
36 """ |
36 super().__init__(parent) |
37 super().__init__(parent) |
37 self.setupUi(self) |
38 self.setupUi(self) |
38 |
39 |
39 self.filenameCompleter = EricFileCompleter(self.filenameEdit) |
40 self.filenameCompleter = EricFileCompleter(self.filenameEdit) |
40 |
41 |
41 self.typeCombo.addItem(self.tr("Bugfix"), TaskType.FIXME) |
42 self.typeCombo.addItem(self.tr("Bugfix"), TaskType.FIXME) |
42 self.typeCombo.addItem(self.tr("Warning"), TaskType.WARNING) |
43 self.typeCombo.addItem(self.tr("Warning"), TaskType.WARNING) |
43 self.typeCombo.addItem(self.tr("ToDo"), TaskType.TODO) |
44 self.typeCombo.addItem(self.tr("ToDo"), TaskType.TODO) |
44 self.typeCombo.addItem(self.tr("Note"), TaskType.NOTE) |
45 self.typeCombo.addItem(self.tr("Note"), TaskType.NOTE) |
45 self.typeCombo.addItem(self.tr("Test"), TaskType.TEST) |
46 self.typeCombo.addItem(self.tr("Test"), TaskType.TEST) |
46 self.typeCombo.addItem(self.tr("Documentation"), TaskType.DOCU) |
47 self.typeCombo.addItem(self.tr("Documentation"), TaskType.DOCU) |
47 |
48 |
48 if task is not None: |
49 if task is not None: |
49 self.summaryEdit.setText(task.summary) |
50 self.summaryEdit.setText(task.summary) |
50 self.descriptionEdit.setText(task.description) |
51 self.descriptionEdit.setText(task.description) |
51 self.creationLabel.setText( |
52 self.creationLabel.setText( |
52 time.strftime("%Y-%m-%d, %H:%M:%S", |
53 time.strftime("%Y-%m-%d, %H:%M:%S", time.localtime(task.created)) |
53 time.localtime(task.created))) |
54 ) |
54 self.priorityCombo.setCurrentIndex(task.priority.value) |
55 self.priorityCombo.setCurrentIndex(task.priority.value) |
55 self.projectCheckBox.setChecked(task._isProjectTask) |
56 self.projectCheckBox.setChecked(task._isProjectTask) |
56 self.completedCheckBox.setChecked(task.completed) |
57 self.completedCheckBox.setChecked(task.completed) |
57 self.filenameEdit.setText(task.filename) |
58 self.filenameEdit.setText(task.filename) |
58 if task.lineno: |
59 if task.lineno: |
60 index = self.typeCombo.findData(task.taskType) |
61 index = self.typeCombo.findData(task.taskType) |
61 self.typeCombo.setCurrentIndex(index) |
62 self.typeCombo.setCurrentIndex(index) |
62 self.__setMode(bool(task.filename), projectOpen) |
63 self.__setMode(bool(task.filename), projectOpen) |
63 else: |
64 else: |
64 self.projectCheckBox.setChecked(projectOpen) |
65 self.projectCheckBox.setChecked(projectOpen) |
65 self.typeCombo.setCurrentIndex(2) # TaskType.TODO |
66 self.typeCombo.setCurrentIndex(2) # TaskType.TODO |
66 self.__setMode(False, projectOpen) |
67 self.__setMode(False, projectOpen) |
67 |
68 |
68 def __setMode(self, isFileTask, projectOpen): |
69 def __setMode(self, isFileTask, projectOpen): |
69 """ |
70 """ |
70 Private method to show or hide dialog elements depending on the task |
71 Private method to show or hide dialog elements depending on the task |
71 kind. |
72 kind. |
72 |
73 |
73 @param isFileTask flag indicating a file task (i.e. extracted task) |
74 @param isFileTask flag indicating a file task (i.e. extracted task) |
74 @type bool |
75 @type bool |
75 @param projectOpen flag indicating status of the project |
76 @param projectOpen flag indicating status of the project |
76 @type bool |
77 @type bool |
77 """ |
78 """ |
78 self.__isFileTaskMode = isFileTask |
79 self.__isFileTaskMode = isFileTask |
79 if self.__isFileTaskMode: |
80 if self.__isFileTaskMode: |
80 self.descriptionEdit.hide() |
81 self.descriptionEdit.hide() |
81 self.descriptionLabel.hide() |
82 self.descriptionLabel.hide() |
82 self.manualTaskFrame.hide() |
83 self.manualTaskFrame.hide() |
83 |
84 |
84 msh = self.minimumSizeHint() |
85 msh = self.minimumSizeHint() |
85 self.resize(max(self.width(), msh.width()), msh.height()) |
86 self.resize(max(self.width(), msh.width()), msh.height()) |
86 else: |
87 else: |
87 self.fileTaskFrame.hide() |
88 self.fileTaskFrame.hide() |
88 |
89 |
89 self.summaryEdit.setReadOnly(isFileTask) |
90 self.summaryEdit.setReadOnly(isFileTask) |
90 self.projectCheckBox.setEnabled(projectOpen and not isFileTask) |
91 self.projectCheckBox.setEnabled(projectOpen and not isFileTask) |
91 |
92 |
92 def isManualTaskMode(self): |
93 def isManualTaskMode(self): |
93 """ |
94 """ |
94 Public method to check, if the dialog is in manual task mode. |
95 Public method to check, if the dialog is in manual task mode. |
95 |
96 |
96 @return flag indicating manual task mode |
97 @return flag indicating manual task mode |
97 @rtype bool |
98 @rtype bool |
98 """ |
99 """ |
99 return not self.__isFileTaskMode |
100 return not self.__isFileTaskMode |
100 |
101 |
101 def setSubTaskMode(self, projectTask): |
102 def setSubTaskMode(self, projectTask): |
102 """ |
103 """ |
103 Public slot to set the sub-task mode. |
104 Public slot to set the sub-task mode. |
104 |
105 |
105 @param projectTask flag indicating a project related task (boolean) |
106 @param projectTask flag indicating a project related task (boolean) |
106 """ |
107 """ |
107 self.projectCheckBox.setChecked(projectTask) |
108 self.projectCheckBox.setChecked(projectTask) |
108 self.projectCheckBox.setEnabled(False) |
109 self.projectCheckBox.setEnabled(False) |
109 |
110 |
110 def getData(self): |
111 def getData(self): |
111 """ |
112 """ |
112 Public method to retrieve the dialogs data. |
113 Public method to retrieve the dialogs data. |
113 |
114 |
114 @return tuple of description, priority, type, completion flag, |
115 @return tuple of description, priority, type, completion flag, |
115 project flag and long text |
116 project flag and long text |
116 @rtype tuple of (str, TaskPriority, TaskType, bool, bool, str) |
117 @rtype tuple of (str, TaskPriority, TaskType, bool, bool, str) |
117 """ |
118 """ |
118 return (self.summaryEdit.text(), |
119 return ( |
119 TaskPriority(self.priorityCombo.currentIndex()), |
120 self.summaryEdit.text(), |
120 TaskType(self.typeCombo.currentData()), |
121 TaskPriority(self.priorityCombo.currentIndex()), |
121 self.completedCheckBox.isChecked(), |
122 TaskType(self.typeCombo.currentData()), |
122 self.projectCheckBox.isChecked(), |
123 self.completedCheckBox.isChecked(), |
123 self.descriptionEdit.toPlainText()) |
124 self.projectCheckBox.isChecked(), |
|
125 self.descriptionEdit.toPlainText(), |
|
126 ) |