13 |
13 |
14 class TemplatesReader(XMLStreamReaderBase): |
14 class TemplatesReader(XMLStreamReaderBase): |
15 """ |
15 """ |
16 Class for reading an XML tasks file. |
16 Class for reading an XML tasks file. |
17 """ |
17 """ |
|
18 |
18 supportedVersions = ["4.0"] |
19 supportedVersions = ["4.0"] |
19 |
20 |
20 def __init__(self, device, viewer): |
21 def __init__(self, device, viewer): |
21 """ |
22 """ |
22 Constructor |
23 Constructor |
23 |
24 |
24 @param device reference to the I/O device to read from (QIODevice) |
25 @param device reference to the I/O device to read from (QIODevice) |
25 @param viewer reference to the template viewer object (TemplateViewer) |
26 @param viewer reference to the template viewer object (TemplateViewer) |
26 """ |
27 """ |
27 XMLStreamReaderBase.__init__(self, device) |
28 XMLStreamReaderBase.__init__(self, device) |
28 |
29 |
29 self.__viewer = viewer |
30 self.__viewer = viewer |
30 |
31 |
31 self.version = "" |
32 self.version = "" |
32 self.groupName = "DEFAULT" |
33 self.groupName = "DEFAULT" |
33 |
34 |
34 def readXML(self): |
35 def readXML(self): |
35 """ |
36 """ |
36 Public method to read and parse the XML document. |
37 Public method to read and parse the XML document. |
37 """ |
38 """ |
38 while not self.atEnd(): |
39 while not self.atEnd(): |
39 self.readNext() |
40 self.readNext() |
40 if self.isStartElement(): |
41 if self.isStartElement(): |
41 if self.name() == "Templates": |
42 if self.name() == "Templates": |
42 self.version = self.attribute( |
43 self.version = self.attribute("version", templatesFileFormatVersion) |
43 "version", templatesFileFormatVersion) |
|
44 if self.version not in self.supportedVersions: |
44 if self.version not in self.supportedVersions: |
45 self.raiseUnsupportedFormatVersion(self.version) |
45 self.raiseUnsupportedFormatVersion(self.version) |
46 elif self.name() == "TemplateGroup": |
46 elif self.name() == "TemplateGroup": |
47 self.__readTemplateGroup() |
47 self.__readTemplateGroup() |
48 else: |
48 else: |
49 self.raiseUnexpectedStartTag(self.name()) |
49 self.raiseUnexpectedStartTag(self.name()) |
50 |
50 |
51 self.showErrorMessage() |
51 self.showErrorMessage() |
52 |
52 |
53 def __readTemplateGroup(self): |
53 def __readTemplateGroup(self): |
54 """ |
54 """ |
55 Private method to read a template group. |
55 Private method to read a template group. |
56 """ |
56 """ |
57 self.groupName = self.attribute('name', "DEFAULT") |
57 self.groupName = self.attribute("name", "DEFAULT") |
58 language = self.attribute('language', "All") |
58 language = self.attribute("language", "All") |
59 self.__viewer.addGroup(self.groupName, language) |
59 self.__viewer.addGroup(self.groupName, language) |
60 |
60 |
61 while not self.atEnd(): |
61 while not self.atEnd(): |
62 self.readNext() |
62 self.readNext() |
63 if self.isEndElement() and self.name() == "TemplateGroup": |
63 if self.isEndElement() and self.name() == "TemplateGroup": |
64 break |
64 break |
65 |
65 |
66 if self.isStartElement(): |
66 if self.isStartElement(): |
67 if self.name() == "Template": |
67 if self.name() == "Template": |
68 self.__readTemplate() |
68 self.__readTemplate() |
69 else: |
69 else: |
70 self.raiseUnexpectedStartTag(self.name()) |
70 self.raiseUnexpectedStartTag(self.name()) |
71 |
71 |
72 def __readTemplate(self): |
72 def __readTemplate(self): |
73 """ |
73 """ |
74 Private method to read the template definition. |
74 Private method to read the template definition. |
75 """ |
75 """ |
76 templateName = self.attribute('name', '') |
76 templateName = self.attribute("name", "") |
77 templateDescription = "" |
77 templateDescription = "" |
78 templateText = "" |
78 templateText = "" |
79 |
79 |
80 while not self.atEnd(): |
80 while not self.atEnd(): |
81 self.readNext() |
81 self.readNext() |
82 if ( |
82 if self.isEndElement() and self.name() == "Template" and templateName: |
83 self.isEndElement() and |
83 self.__viewer.addEntry( |
84 self.name() == "Template" and |
84 self.groupName, |
85 templateName |
85 templateName, |
86 ): |
86 templateDescription, |
87 self.__viewer.addEntry(self.groupName, templateName, |
87 templateText, |
88 templateDescription, templateText, |
88 quiet=True, |
89 quiet=True) |
89 ) |
90 break |
90 break |
91 |
91 |
92 if self.isStartElement(): |
92 if self.isStartElement(): |
93 if self.name() == "TemplateDescription": |
93 if self.name() == "TemplateDescription": |
94 templateDescription = self.readElementText() |
94 templateDescription = self.readElementText() |
95 elif self.name() == "TemplateText": |
95 elif self.name() == "TemplateText": |
96 templateText = self.readElementText() |
96 templateText = self.readElementText() |