--- a/Tasks/TaskViewer.py Wed Feb 22 12:02:12 2012 +0100 +++ b/Tasks/TaskViewer.py Wed Feb 22 17:03:57 2012 +0100 @@ -30,6 +30,8 @@ import Preferences import Utilities +from Utilities.AutoSaver import AutoSaver + class Task(QTreeWidgetItem): """ @@ -387,6 +389,8 @@ self.taskFilter = TaskFilter() self.taskFilter.setActive(False) + self.__projectTasksSaveTimer = AutoSaver(self, self.saveProjectTasks) + self.__projectTasksMenu = QMenu( self.trUtf8("P&roject Tasks"), self) self.__projectTasksMenu.addAction( @@ -565,6 +569,9 @@ self.addTopLevelItem(task) self.__resort() self.__resizeColumns() + + if isProjectTask: + self.__projectTasksSaveTimer.changeOccurred() def addFileTask(self, description, filename, lineno, isBugfixTask=False, longtext=""): @@ -641,6 +648,8 @@ index = self.indexOfTopLevelItem(task) self.takeTopLevelItem(index) self.tasks.remove(task) + if task.isProjectTask: + self.__projectTasksSaveTimer.changeOccurred() del task def __editTaskProperties(self): @@ -659,6 +668,7 @@ task.setCompleted(data[2]) task.setProjectTask(data[3]) task.setLongText(data[4]) + self.__projectTasksSaveTimer.changeOccurred() def __newTask(self): """ @@ -688,6 +698,8 @@ index = self.indexOfTopLevelItem(task) self.takeTopLevelItem(index) self.tasks.remove(task) + if task.isProjectTask: + self.__projectTasksSaveTimer.changeOccurred() del task ci = self.currentItem() if ci: @@ -722,6 +734,8 @@ index = self.indexOfTopLevelItem(task) self.takeTopLevelItem(index) self.tasks.remove(task) + if task.isProjectTask: + self.__projectTasksSaveTimer.changeOccurred() del task ci = self.currentItem() if ci: @@ -864,3 +878,10 @@ Private method to open the configuration dialog. """ e5App().getObject("UserInterface").showPreferences("tasksPage") + + def saveProjectTasks(self): + """ + Public method to write the project tasks. + """ + if self.projectOpen and Preferences.getTasks("TasksProjectAutoSave"): + self.project.writeTasks()