diff -r e9e7eca7efee -r bf71ee032bb4 src/eric7/EricXML/TasksReader.py --- a/src/eric7/EricXML/TasksReader.py Wed Jul 13 11:16:20 2022 +0200 +++ b/src/eric7/EricXML/TasksReader.py Wed Jul 13 14:55:47 2022 +0200 @@ -24,29 +24,30 @@ """ Class for reading an XML tasks file. """ + supportedVersions = ["4.2", "5.0", "5.1", "6.0"] - + def __init__(self, device, forProject=False, viewer=None): """ Constructor - + @param device reference to the I/O device to read from (QIODevice) @param forProject flag indicating project related mode (boolean) @param viewer reference to the task viewer (TaskViewer) """ XMLStreamReaderBase.__init__(self, device) - + self.viewer = viewer - + self.forProject = forProject if viewer: self.viewer = viewer else: self.viewer = ericApp().getObject("TaskViewer") - + self.version = "" self.tasks = [] - + def readXML(self): """ Public method to read and parse the XML document. @@ -57,11 +58,10 @@ for task, expanded in self.tasks: task.setExpanded(expanded) break - + if self.isStartElement(): if self.name() == "Tasks": - self.version = self.attribute( - "version", tasksFileFormatVersion) + self.version = self.attribute("version", tasksFileFormatVersion) if self.version not in self.supportedVersions: self.raiseUnsupportedFormatVersion(self.version) elif self.name() == "Task": @@ -72,23 +72,24 @@ self.viewer.setTasksScanFilter(scanFilter) else: self.raiseUnexpectedStartTag(self.name()) - + self.showErrorMessage() - + def __readTask(self): """ Private method to read the task info. """ - task = {"summary": "", - "priority": TaskPriority.NORMAL, - "completed": False, - "created": 0, - "filename": "", - "linenumber": 0, - "type": TaskType.TODO, - "description": "", - "uid": "", - } + task = { + "summary": "", + "priority": TaskPriority.NORMAL, + "completed": False, + "created": 0, + "filename": "", + "linenumber": 0, + "type": TaskType.TODO, + "description": "", + "uid": "", + } task["priority"] = TaskPriority( int(self.attribute("priority", str(TaskPriority.NORMAL.value))) ) @@ -107,35 +108,43 @@ else: # upgrade from pre 6.0 format from PyQt6.QtCore import QUuid + task["uid"] = QUuid.createUuid().toString() parentUid = self.attribute("parent_uid", "") expanded = self.toBool(self.attribute("expanded", "True")) - + while not self.atEnd(): self.readNext() if self.isEndElement() and self.name() == "Task": parentTask = self.viewer.findParentTask(parentUid) addedTask = self.viewer.addTask( - task["summary"], priority=task["priority"], - filename=task["filename"], lineno=task["linenumber"], - completed=task["completed"], _time=task["created"], - isProjectTask=self.forProject, taskType=task["type"], - description=task["description"], uid=task["uid"], - parentTask=parentTask) + task["summary"], + priority=task["priority"], + filename=task["filename"], + lineno=task["linenumber"], + completed=task["completed"], + _time=task["created"], + isProjectTask=self.forProject, + taskType=task["type"], + description=task["description"], + uid=task["uid"], + parentTask=parentTask, + ) if addedTask: self.tasks.append((addedTask, expanded)) break - + if self.isStartElement(): if self.name() == "Summary": task["summary"] = self.readElementText() elif self.name() == "Description": task["description"] = self.readElementText() elif self.name() == "Created": - task["created"] = time.mktime(time.strptime( - self.readElementText(), "%Y-%m-%d, %H:%M:%S")) + task["created"] = time.mktime( + time.strptime(self.readElementText(), "%Y-%m-%d, %H:%M:%S") + ) elif self.name() == "Resource": - continue # handle but ignore this tag + continue # handle but ignore this tag elif self.name() == "Filename": task["filename"] = Utilities.toNativeSeparators( self.readElementText()