14 from .Config import tasksFileFormatVersion |
14 from .Config import tasksFileFormatVersion |
15 from .XMLStreamReaderBase import XMLStreamReaderBase |
15 from .XMLStreamReaderBase import XMLStreamReaderBase |
16 |
16 |
17 import Utilities |
17 import Utilities |
18 |
18 |
|
19 |
19 class TasksReader(XMLStreamReaderBase): |
20 class TasksReader(XMLStreamReaderBase): |
20 """ |
21 """ |
21 Class for reading an XML tasks file. |
22 Class for reading an XML tasks file. |
22 """ |
23 """ |
23 supportedVersions = ["4.2"] |
24 supportedVersions = ["4.2"] |
24 |
25 |
25 def __init__(self, device, forProject = False, viewer = None): |
26 def __init__(self, device, forProject=False, viewer=None): |
26 """ |
27 """ |
27 Constructor |
28 Constructor |
28 |
29 |
29 @param device reference to the I/O device to read from (QIODevice) |
30 @param device reference to the I/O device to read from (QIODevice) |
30 @param forProject flag indicating project related mode (boolean) |
31 @param forProject flag indicating project related mode (boolean) |
62 |
63 |
63 def __readTask(self): |
64 def __readTask(self): |
64 """ |
65 """ |
65 Private method to read the task info. |
66 Private method to read the task info. |
66 """ |
67 """ |
67 task = {"summary" : "", |
68 task = {"summary": "", |
68 "priority" : 1, |
69 "priority": 1, |
69 "completed" : False, |
70 "completed": False, |
70 "created" : 0, |
71 "created": 0, |
71 "filename" : "", |
72 "filename": "", |
72 "linenumber" : 0, |
73 "linenumber": 0, |
73 "bugfix" : False, |
74 "bugfix": False, |
74 "description" : "", |
75 "description": "", |
75 } |
76 } |
76 task["priority"] = int(self.attribute("priority", "1")) |
77 task["priority"] = int(self.attribute("priority", "1")) |
77 task["completed"] = self.toBool(self.attribute("completed", "False")) |
78 task["completed"] = self.toBool(self.attribute("completed", "False")) |
78 task["bugfix"] = self.toBool(self.attribute("bugfix", "False")) |
79 task["bugfix"] = self.toBool(self.attribute("bugfix", "False")) |
79 |
80 |
80 while not self.atEnd(): |
81 while not self.atEnd(): |
81 self.readNext() |
82 self.readNext() |
82 if self.isEndElement() and self.name() == "Task": |
83 if self.isEndElement() and self.name() == "Task": |
83 self.viewer.addTask(task["summary"], priority = task["priority"], |
84 self.viewer.addTask(task["summary"], priority=task["priority"], |
84 filename = task["filename"], lineno = task["linenumber"], |
85 filename=task["filename"], lineno=task["linenumber"], |
85 completed = task["completed"], _time = task["created"], |
86 completed=task["completed"], _time=task["created"], |
86 isProjectTask = self.forProject, isBugfixTask = task["bugfix"], |
87 isProjectTask=self.forProject, isBugfixTask=task["bugfix"], |
87 longtext = task["description"]) |
88 longtext=task["description"]) |
88 break |
89 break |
89 |
90 |
90 if self.isStartElement(): |
91 if self.isStartElement(): |
91 if self.name() == "Summary": |
92 if self.name() == "Summary": |
92 task["summary"] = self.readElementText() |
93 task["summary"] = self.readElementText() |