53 |
53 |
54 self.setRootIsDecorated(False) |
54 self.setRootIsDecorated(False) |
55 self.setItemsExpandable(False) |
55 self.setItemsExpandable(False) |
56 self.setSortingEnabled(True) |
56 self.setSortingEnabled(True) |
57 |
57 |
58 self.__headerItem = QTreeWidgetItem(["", "", self.trUtf8("Summary"), |
58 self.__headerItem = QTreeWidgetItem( |
59 self.trUtf8("Filename"), self.trUtf8("Line"), ""]) |
59 ["", "", self.trUtf8("Summary"), self.trUtf8("Filename"), |
|
60 self.trUtf8("Line"), ""]) |
60 self.__headerItem.setIcon( |
61 self.__headerItem.setIcon( |
61 0, UI.PixmapCache.getIcon("taskCompleted.png")) |
62 0, UI.PixmapCache.getIcon("taskCompleted.png")) |
62 self.__headerItem.setIcon( |
63 self.__headerItem.setIcon( |
63 1, UI.PixmapCache.getIcon("taskPriority.png")) |
64 1, UI.PixmapCache.getIcon("taskPriority.png")) |
64 self.setHeaderItem(self.__headerItem) |
65 self.setHeaderItem(self.__headerItem) |
265 @param taskType type of the task (one of Task.TypeFixme, Task.TypeTodo, |
266 @param taskType type of the task (one of Task.TypeFixme, Task.TypeTodo, |
266 Task.TypeWarning, Task.TypeNote) |
267 Task.TypeWarning, Task.TypeNote) |
267 @param description explanatory text of the task (string) |
268 @param description explanatory text of the task (string) |
268 """ |
269 """ |
269 task = Task(summary, priority, filename, lineno, completed, |
270 task = Task(summary, priority, filename, lineno, completed, |
270 _time, isProjectTask, taskType, |
271 _time, isProjectTask, taskType, |
271 self.project, description) |
272 self.project, description) |
272 self.tasks.append(task) |
273 self.tasks.append(task) |
273 if self.taskFilter.showTask(task): |
274 if self.taskFilter.showTask(task): |
274 self.addTopLevelItem(task) |
275 self.addTopLevelItem(task) |
275 self.__resort() |
276 self.__resort() |
276 self.__resizeColumns() |
277 self.__resizeColumns() |
474 Private slot to handle the "Filtered display" context menu entry. |
475 Private slot to handle the "Filtered display" context menu entry. |
475 |
476 |
476 @param on flag indicating the filter state (boolean) |
477 @param on flag indicating the filter state (boolean) |
477 """ |
478 """ |
478 if on and not self.taskFilter.hasActiveFilter(): |
479 if on and not self.taskFilter.hasActiveFilter(): |
479 res = E5MessageBox.yesNo(self, |
480 res = E5MessageBox.yesNo( |
|
481 self, |
480 self.trUtf8("Activate task filter"), |
482 self.trUtf8("Activate task filter"), |
481 self.trUtf8( |
483 self.trUtf8( |
482 """The task filter doesn't have any active filters.""" |
484 """The task filter doesn't have any active filters.""" |
483 """ Do you want to configure the filter settings?"""), |
485 """ Do you want to configure the filter settings?"""), |
484 yesDefault=True) |
486 yesDefault=True) |
540 |
542 |
541 # remove all project tasks |
543 # remove all project tasks |
542 self.clearProjectTasks(fileOnly=True) |
544 self.clearProjectTasks(fileOnly=True) |
543 |
545 |
544 # now process them |
546 # now process them |
545 progress = QProgressDialog(self.trUtf8("Extracting project tasks..."), |
547 progress = QProgressDialog( |
|
548 self.trUtf8("Extracting project tasks..."), |
546 self.trUtf8("Abort"), 0, len(files)) |
549 self.trUtf8("Abort"), 0, len(files)) |
547 progress.setMinimumDuration(0) |
550 progress.setMinimumDuration(0) |
548 count = 0 |
551 count = 0 |
549 |
552 |
550 for file in files: |
553 for file in files: |