7 Module implementing a class for reading an XML templates file. |
7 Module implementing a class for reading an XML templates file. |
8 """ |
8 """ |
9 |
9 |
10 from __future__ import unicode_literals |
10 from __future__ import unicode_literals |
11 |
11 |
12 from E5Gui.E5Application import e5App |
|
13 |
|
14 from .Config import templatesFileFormatVersion |
12 from .Config import templatesFileFormatVersion |
15 from .XMLStreamReaderBase import XMLStreamReaderBase |
13 from .XMLStreamReaderBase import XMLStreamReaderBase |
16 |
14 |
17 |
15 |
18 class TemplatesReader(XMLStreamReaderBase): |
16 class TemplatesReader(XMLStreamReaderBase): |
19 """ |
17 """ |
20 Class for reading an XML tasks file. |
18 Class for reading an XML tasks file. |
21 """ |
19 """ |
22 supportedVersions = ["4.0"] |
20 supportedVersions = ["4.0"] |
23 |
21 |
24 def __init__(self, device, viewer=None): |
22 def __init__(self, device, viewer): |
25 """ |
23 """ |
26 Constructor |
24 Constructor |
27 |
25 |
28 @param device reference to the I/O device to read from (QIODevice) |
26 @param device reference to the I/O device to read from (QIODevice) |
29 @param viewer reference to the template viewer object (TemplateViewer) |
27 @param viewer reference to the template viewer object (TemplateViewer) |
30 """ |
28 """ |
31 XMLStreamReaderBase.__init__(self, device) |
29 XMLStreamReaderBase.__init__(self, device) |
32 |
30 |
33 if viewer: |
31 self.__viewer = viewer |
34 self.viewer = viewer |
|
35 else: |
|
36 self.viewer = e5App().getObject("TemplateViewer") |
|
37 |
32 |
38 self.version = "" |
33 self.version = "" |
39 self.groupName = "DEFAULT" |
34 self.groupName = "DEFAULT" |
40 |
35 |
41 def readXML(self): |
36 def readXML(self): |
61 """ |
56 """ |
62 Private method to read a template group. |
57 Private method to read a template group. |
63 """ |
58 """ |
64 self.groupName = self.attribute('name', "DEFAULT") |
59 self.groupName = self.attribute('name', "DEFAULT") |
65 language = self.attribute('language', "All") |
60 language = self.attribute('language', "All") |
66 self.viewer.addGroup(self.groupName, language) |
61 self.__viewer.addGroup(self.groupName, language) |
67 |
62 |
68 while not self.atEnd(): |
63 while not self.atEnd(): |
69 self.readNext() |
64 self.readNext() |
70 if self.isEndElement() and self.name() == "TemplateGroup": |
65 if self.isEndElement() and self.name() == "TemplateGroup": |
71 break |
66 break |
87 while not self.atEnd(): |
82 while not self.atEnd(): |
88 self.readNext() |
83 self.readNext() |
89 if self.isEndElement() and \ |
84 if self.isEndElement() and \ |
90 self.name() == "Template" and \ |
85 self.name() == "Template" and \ |
91 templateName: |
86 templateName: |
92 self.viewer.addEntry(self.groupName, templateName, |
87 self.__viewer.addEntry(self.groupName, templateName, |
93 templateDescription, templateText, |
88 templateDescription, templateText, |
94 quiet=True) |
89 quiet=True) |
95 break |
90 break |
96 |
91 |
97 if self.isStartElement(): |
92 if self.isStartElement(): |
98 if self.name() == "TemplateDescription": |
93 if self.name() == "TemplateDescription": |
99 templateDescription = self.readElementText() |
94 templateDescription = self.readElementText() |