384 self.project = project |
386 self.project = project |
385 self.projectTasksScanFilter = "" |
387 self.projectTasksScanFilter = "" |
386 |
388 |
387 self.taskFilter = TaskFilter() |
389 self.taskFilter = TaskFilter() |
388 self.taskFilter.setActive(False) |
390 self.taskFilter.setActive(False) |
|
391 |
|
392 self.__projectTasksSaveTimer = AutoSaver(self, self.saveProjectTasks) |
389 |
393 |
390 self.__projectTasksMenu = QMenu( |
394 self.__projectTasksMenu = QMenu( |
391 self.trUtf8("P&roject Tasks"), self) |
395 self.trUtf8("P&roject Tasks"), self) |
392 self.__projectTasksMenu.addAction( |
396 self.__projectTasksMenu.addAction( |
393 self.trUtf8("&Regenerate project tasks"), |
397 self.trUtf8("&Regenerate project tasks"), |
563 self.tasks.append(task) |
567 self.tasks.append(task) |
564 if self.taskFilter.showTask(task): |
568 if self.taskFilter.showTask(task): |
565 self.addTopLevelItem(task) |
569 self.addTopLevelItem(task) |
566 self.__resort() |
570 self.__resort() |
567 self.__resizeColumns() |
571 self.__resizeColumns() |
|
572 |
|
573 if isProjectTask: |
|
574 self.__projectTasksSaveTimer.changeOccurred() |
568 |
575 |
569 def addFileTask(self, description, filename, lineno, isBugfixTask=False, |
576 def addFileTask(self, description, filename, lineno, isBugfixTask=False, |
570 longtext=""): |
577 longtext=""): |
571 """ |
578 """ |
572 Public slot to add a file related task. |
579 Public slot to add a file related task. |
639 if self.copyTask == task: |
646 if self.copyTask == task: |
640 self.copyTask = None |
647 self.copyTask = None |
641 index = self.indexOfTopLevelItem(task) |
648 index = self.indexOfTopLevelItem(task) |
642 self.takeTopLevelItem(index) |
649 self.takeTopLevelItem(index) |
643 self.tasks.remove(task) |
650 self.tasks.remove(task) |
|
651 if task.isProjectTask: |
|
652 self.__projectTasksSaveTimer.changeOccurred() |
644 del task |
653 del task |
645 |
654 |
646 def __editTaskProperties(self): |
655 def __editTaskProperties(self): |
647 """ |
656 """ |
648 Private slot to handle the "Properties" context menu entry |
657 Private slot to handle the "Properties" context menu entry |
657 task.setDescription(data[0]) |
666 task.setDescription(data[0]) |
658 task.setPriority(data[1]) |
667 task.setPriority(data[1]) |
659 task.setCompleted(data[2]) |
668 task.setCompleted(data[2]) |
660 task.setProjectTask(data[3]) |
669 task.setProjectTask(data[3]) |
661 task.setLongText(data[4]) |
670 task.setLongText(data[4]) |
|
671 self.__projectTasksSaveTimer.changeOccurred() |
662 |
672 |
663 def __newTask(self): |
673 def __newTask(self): |
664 """ |
674 """ |
665 Private slot to handle the "New Task" context menu entry. |
675 Private slot to handle the "New Task" context menu entry. |
666 """ |
676 """ |
686 if self.copyTask == task: |
696 if self.copyTask == task: |
687 self.copyTask = None |
697 self.copyTask = None |
688 index = self.indexOfTopLevelItem(task) |
698 index = self.indexOfTopLevelItem(task) |
689 self.takeTopLevelItem(index) |
699 self.takeTopLevelItem(index) |
690 self.tasks.remove(task) |
700 self.tasks.remove(task) |
|
701 if task.isProjectTask: |
|
702 self.__projectTasksSaveTimer.changeOccurred() |
691 del task |
703 del task |
692 ci = self.currentItem() |
704 ci = self.currentItem() |
693 if ci: |
705 if ci: |
694 ind = self.indexFromItem(ci, self.currentColumn()) |
706 ind = self.indexFromItem(ci, self.currentColumn()) |
695 self.scrollTo(ind, QAbstractItemView.PositionAtCenter) |
707 self.scrollTo(ind, QAbstractItemView.PositionAtCenter) |
720 if self.copyTask == task: |
732 if self.copyTask == task: |
721 self.copyTask = None |
733 self.copyTask = None |
722 index = self.indexOfTopLevelItem(task) |
734 index = self.indexOfTopLevelItem(task) |
723 self.takeTopLevelItem(index) |
735 self.takeTopLevelItem(index) |
724 self.tasks.remove(task) |
736 self.tasks.remove(task) |
|
737 if task.isProjectTask: |
|
738 self.__projectTasksSaveTimer.changeOccurred() |
725 del task |
739 del task |
726 ci = self.currentItem() |
740 ci = self.currentItem() |
727 if ci: |
741 if ci: |
728 ind = self.indexFromItem(ci, self.currentColumn()) |
742 ind = self.indexFromItem(ci, self.currentColumn()) |
729 self.scrollTo(ind, QAbstractItemView.PositionAtCenter) |
743 self.scrollTo(ind, QAbstractItemView.PositionAtCenter) |
862 def __configure(self): |
876 def __configure(self): |
863 """ |
877 """ |
864 Private method to open the configuration dialog. |
878 Private method to open the configuration dialog. |
865 """ |
879 """ |
866 e5App().getObject("UserInterface").showPreferences("tasksPage") |
880 e5App().getObject("UserInterface").showPreferences("tasksPage") |
|
881 |
|
882 def saveProjectTasks(self): |
|
883 """ |
|
884 Public method to write the project tasks. |
|
885 """ |
|
886 if self.projectOpen and Preferences.getTasks("TasksProjectAutoSave"): |
|
887 self.project.writeTasks() |