E5XML/ShortcutsWriter.py

changeset 411
99409cddaaa9
parent 55
b5c84934de9c
child 595
7d2c8346021c
equal deleted inserted replaced
410:e5d1addeb90c 411:99409cddaaa9
34 """ 34 """
35 Public method to write the XML to the file. 35 Public method to write the XML to the file.
36 """ 36 """
37 XMLWriterBase.writeXML(self) 37 XMLWriterBase.writeXML(self)
38 38
39 self._write('<!DOCTYPE Shortcuts SYSTEM "Shortcuts-%s.dtd">' % \ 39 self._write('<!DOCTYPE Shortcuts SYSTEM "Shortcuts-{0}.dtd">'.format(
40 shortcutsFileFormatVersion) 40 shortcutsFileFormatVersion))
41 41
42 # add some generation comments 42 # add some generation comments
43 self._write("<!-- Eric5 keyboard shortcuts -->") 43 self._write("<!-- Eric5 keyboard shortcuts -->")
44 self._write("<!-- Saved: %s -->" % time.strftime('%Y-%m-%d, %H:%M:%S')) 44 self._write("<!-- Saved: {0} -->".format(time.strftime('%Y-%m-%d, %H:%M:%S')))
45 self._write("<!-- Author: %s -->" % self.escape("%s" % self.email)) 45 self._write("<!-- Author: {0} -->".format(self.escape("{0}".format(self.email))))
46 46
47 # add the main tag 47 # add the main tag
48 self._write('<Shortcuts version="%s">' % shortcutsFileFormatVersion) 48 self._write('<Shortcuts version="{0}">'.format(shortcutsFileFormatVersion))
49 49
50 for act in e5App().getObject("Project").getActions(): 50 for act in e5App().getObject("Project").getActions():
51 self._write(' <Shortcut category="Project">') 51 self._write(' <Shortcut category="Project">')
52 self._write(' <Name>%s</Name>' % act.objectName()) 52 self._write(' <Name>{0}</Name>'.format(act.objectName()))
53 self._write(' <Accel>%s</Accel>' % \ 53 self._write(' <Accel>{0}</Accel>'.format(
54 self.escape("%s" % act.shortcut().toString())) 54 self.escape("{0}".format(act.shortcut().toString()))))
55 self._write(' <AltAccel>%s</AltAccel>' \ 55 self._write(' <AltAccel>{0}</AltAccel>' \
56 % self.escape("%s" % act.alternateShortcut().toString())) 56 .format(self.escape("{0}".format(act.alternateShortcut().toString()))))
57 self._write(' </Shortcut>') 57 self._write(' </Shortcut>')
58 58
59 for act in e5App().getObject("UserInterface").getActions('ui'): 59 for act in e5App().getObject("UserInterface").getActions('ui'):
60 self._write(' <Shortcut category="General">') 60 self._write(' <Shortcut category="General">')
61 self._write(' <Name>%s</Name>' % act.objectName()) 61 self._write(' <Name>{0}</Name>'.format(act.objectName()))
62 self._write(' <Accel>%s</Accel>' % \ 62 self._write(' <Accel>{0}</Accel>'.format(
63 self.escape("%s" % act.shortcut().toString())) 63 self.escape("{0}".format(act.shortcut().toString()))))
64 self._write(' <AltAccel>%s</AltAccel>' % \ 64 self._write(' <AltAccel>{0}</AltAccel>'.format(
65 self.escape("%s" % act.alternateShortcut().toString())) 65 self.escape("{0}".format(act.alternateShortcut().toString()))))
66 self._write(' </Shortcut>') 66 self._write(' </Shortcut>')
67 67
68 for act in e5App().getObject("UserInterface").getActions('wizards'): 68 for act in e5App().getObject("UserInterface").getActions('wizards'):
69 self._write(' <Shortcut category="Wizards">') 69 self._write(' <Shortcut category="Wizards">')
70 self._write(' <Name>%s</Name>' % act.objectName()) 70 self._write(' <Name>{0}</Name>'.format(act.objectName()))
71 self._write(' <Accel>%s</Accel>' % \ 71 self._write(' <Accel>{0}</Accel>'.format(
72 self.escape("%s" % act.shortcut().toString())) 72 self.escape("{0}".format(act.shortcut().toString()))))
73 self._write(' <AltAccel>%s</AltAccel>' % \ 73 self._write(' <AltAccel>{0}</AltAccel>'.format(
74 self.escape("%s" % act.alternateShortcut().toString())) 74 self.escape("{0}".format(act.alternateShortcut().toString()))))
75 self._write(' </Shortcut>') 75 self._write(' </Shortcut>')
76 76
77 for act in e5App().getObject("DebugUI").getActions(): 77 for act in e5App().getObject("DebugUI").getActions():
78 self._write(' <Shortcut category="Debug">') 78 self._write(' <Shortcut category="Debug">')
79 self._write(' <Name>%s</Name>' % act.objectName()) 79 self._write(' <Name>{0}</Name>'.format(act.objectName()))
80 self._write(' <Accel>%s</Accel>' % \ 80 self._write(' <Accel>{0}</Accel>'.format(
81 self.escape("%s" % act.shortcut().toString())) 81 self.escape("{0}".format(act.shortcut().toString()))))
82 self._write(' <AltAccel>%s</AltAccel>' % \ 82 self._write(' <AltAccel>{0}</AltAccel>'.format(
83 self.escape("%s" % act.alternateShortcut().toString())) 83 self.escape("{0}".format(act.alternateShortcut().toString()))))
84 self._write(' </Shortcut>') 84 self._write(' </Shortcut>')
85 85
86 for act in e5App().getObject("ViewManager").getActions('edit'): 86 for act in e5App().getObject("ViewManager").getActions('edit'):
87 self._write(' <Shortcut category="Edit">') 87 self._write(' <Shortcut category="Edit">')
88 self._write(' <Name>%s</Name>' % act.objectName()) 88 self._write(' <Name>{0}</Name>'.format(act.objectName()))
89 self._write(' <Accel>%s</Accel>' % \ 89 self._write(' <Accel>{0}</Accel>'.format(
90 self.escape("%s" % act.shortcut().toString())) 90 self.escape("{0}".format(act.shortcut().toString()))))
91 self._write(' <AltAccel>%s</AltAccel>' % \ 91 self._write(' <AltAccel>{0}</AltAccel>'.format(
92 self.escape("%s" % act.alternateShortcut().toString())) 92 self.escape("{0}".format(act.alternateShortcut().toString()))))
93 self._write(' </Shortcut>') 93 self._write(' </Shortcut>')
94 94
95 for act in e5App().getObject("ViewManager").getActions('file'): 95 for act in e5App().getObject("ViewManager").getActions('file'):
96 self._write(' <Shortcut category="File">') 96 self._write(' <Shortcut category="File">')
97 self._write(' <Name>%s</Name>' % act.objectName()) 97 self._write(' <Name>{0}</Name>'.format(act.objectName()))
98 self._write(' <Accel>%s</Accel>' % \ 98 self._write(' <Accel>{0}</Accel>'.format(
99 self.escape("%s" % act.shortcut().toString())) 99 self.escape("{0}".format(act.shortcut().toString()))))
100 self._write(' <AltAccel>%s</AltAccel>' % \ 100 self._write(' <AltAccel>{0}</AltAccel>'.format(
101 self.escape("%s" % act.alternateShortcut().toString())) 101 self.escape("{0}".format(act.alternateShortcut().toString()))))
102 self._write(' </Shortcut>') 102 self._write(' </Shortcut>')
103 103
104 for act in e5App().getObject("ViewManager").getActions('search'): 104 for act in e5App().getObject("ViewManager").getActions('search'):
105 self._write(' <Shortcut category="Search">') 105 self._write(' <Shortcut category="Search">')
106 self._write(' <Name>%s</Name>' % act.objectName()) 106 self._write(' <Name>{0}</Name>'.format(act.objectName()))
107 self._write(' <Accel>%s</Accel>' % \ 107 self._write(' <Accel>{0}</Accel>'.format(
108 self.escape("%s" % act.shortcut().toString())) 108 self.escape("{0}".format(act.shortcut().toString()))))
109 self._write(' <AltAccel>%s</AltAccel>' % \ 109 self._write(' <AltAccel>{0}</AltAccel>'.format(
110 self.escape("%s" % act.alternateShortcut().toString())) 110 self.escape("{0}".format(act.alternateShortcut().toString()))))
111 self._write(' </Shortcut>') 111 self._write(' </Shortcut>')
112 112
113 for act in e5App().getObject("ViewManager").getActions('view'): 113 for act in e5App().getObject("ViewManager").getActions('view'):
114 self._write(' <Shortcut category="View">') 114 self._write(' <Shortcut category="View">')
115 self._write(' <Name>%s</Name>' % act.objectName()) 115 self._write(' <Name>{0}</Name>'.format(act.objectName()))
116 self._write(' <Accel>%s</Accel>' % \ 116 self._write(' <Accel>{0}</Accel>'.format(
117 self.escape("%s" % act.shortcut().toString())) 117 self.escape("{0}".format(act.shortcut().toString()))))
118 self._write(' <AltAccel>%s</AltAccel>' % \ 118 self._write(' <AltAccel>{0}</AltAccel>'.format(
119 self.escape("%s" % act.alternateShortcut().toString())) 119 self.escape("{0}".format(act.alternateShortcut().toString()))))
120 self._write(' </Shortcut>') 120 self._write(' </Shortcut>')
121 121
122 for act in e5App().getObject("ViewManager").getActions('macro'): 122 for act in e5App().getObject("ViewManager").getActions('macro'):
123 self._write(' <Shortcut category="Macro">') 123 self._write(' <Shortcut category="Macro">')
124 self._write(' <Name>%s</Name>' % act.objectName()) 124 self._write(' <Name>{0}</Name>'.format(act.objectName()))
125 self._write(' <Accel>%s</Accel>' % \ 125 self._write(' <Accel>{0}</Accel>'.format(
126 self.escape("%s" % act.shortcut().toString())) 126 self.escape("{0}".format(act.shortcut().toString()))))
127 self._write(' <AltAccel>%s</AltAccel>' % \ 127 self._write(' <AltAccel>{0}</AltAccel>'.format(
128 self.escape("%s" % act.alternateShortcut().toString())) 128 self.escape("{0}".format(act.alternateShortcut().toString()))))
129 self._write(' </Shortcut>') 129 self._write(' </Shortcut>')
130 130
131 for act in e5App().getObject("ViewManager").getActions('bookmark'): 131 for act in e5App().getObject("ViewManager").getActions('bookmark'):
132 self._write(' <Shortcut category="Bookmarks">') 132 self._write(' <Shortcut category="Bookmarks">')
133 self._write(' <Name>%s</Name>' % act.objectName()) 133 self._write(' <Name>{0}</Name>'.format(act.objectName()))
134 self._write(' <Accel>%s</Accel>' % \ 134 self._write(' <Accel>{0}</Accel>'.format(
135 self.escape("%s" % act.shortcut().toString())) 135 self.escape("{0}".format(act.shortcut().toString()))))
136 self._write(' <AltAccel>%s</AltAccel>' % \ 136 self._write(' <AltAccel>{0}</AltAccel>'.format(
137 self.escape("%s" % act.alternateShortcut().toString())) 137 self.escape("{0}".format(act.alternateShortcut().toString()))))
138 self._write(' </Shortcut>') 138 self._write(' </Shortcut>')
139 139
140 for act in e5App().getObject("ViewManager").getActions('spelling'): 140 for act in e5App().getObject("ViewManager").getActions('spelling'):
141 self._write(' <Shortcut category="Spelling">') 141 self._write(' <Shortcut category="Spelling">')
142 self._write(' <Name>%s</Name>' % act.objectName()) 142 self._write(' <Name>{0}</Name>'.format(act.objectName()))
143 self._write(' <Accel>%s</Accel>' % \ 143 self._write(' <Accel>{0}</Accel>'.format(
144 self.escape("%s" % act.shortcut().toString())) 144 self.escape("{0}".format(act.shortcut().toString()))))
145 self._write(' <AltAccel>%s</AltAccel>' % \ 145 self._write(' <AltAccel>{0}</AltAccel>'.format(
146 self.escape("%s" % act.alternateShortcut().toString())) 146 self.escape("{0}".format(act.alternateShortcut().toString()))))
147 self._write(' </Shortcut>') 147 self._write(' </Shortcut>')
148 148
149 actions = e5App().getObject("ViewManager").getActions('window') 149 actions = e5App().getObject("ViewManager").getActions('window')
150 for act in actions: 150 for act in actions:
151 self._write(' <Shortcut category="Window">') 151 self._write(' <Shortcut category="Window">')
152 self._write(' <Name>%s</Name>' % act.objectName()) 152 self._write(' <Name>{0}</Name>'.format(act.objectName()))
153 self._write(' <Accel>%s</Accel>' % \ 153 self._write(' <Accel>{0}</Accel>'.format(
154 self.escape("%s" % act.shortcut().toString())) 154 self.escape("{0}".format(act.shortcut().toString()))))
155 self._write(' <AltAccel>%s</AltAccel>' % \ 155 self._write(' <AltAccel>{0}</AltAccel>'.format(
156 self.escape("%s" % act.alternateShortcut().toString())) 156 self.escape("{0}".format(act.alternateShortcut().toString()))))
157 self._write(' </Shortcut>') 157 self._write(' </Shortcut>')
158 158
159 for category, ref in e5App().getPluginObjects(): 159 for category, ref in e5App().getPluginObjects():
160 if hasattr(ref, "getActions"): 160 if hasattr(ref, "getActions"):
161 actions = ref.getActions() 161 actions = ref.getActions()
162 for act in actions: 162 for act in actions:
163 if act.objectName(): 163 if act.objectName():
164 # shortcuts are only exported, if their objectName is set 164 # shortcuts are only exported, if their objectName is set
165 self._write(' <Shortcut category="%s">' % category) 165 self._write(' <Shortcut category="{0}">'.format(category))
166 self._write(' <Name>%s</Name>' % act.objectName()) 166 self._write(' <Name>{0}</Name>'.format(act.objectName()))
167 self._write(' <Accel>%s</Accel>' % \ 167 self._write(' <Accel>{0}</Accel>'.format(
168 self.escape("%s" % act.shortcut().toString())) 168 self.escape("{0}".format(act.shortcut().toString()))))
169 self._write(' <AltAccel>%s</AltAccel>' % \ 169 self._write(' <AltAccel>{0}</AltAccel>'\
170 self.escape("%s" % act.alternateShortcut().toString())) 170 .format(self.escape("{0}".format(
171 act.alternateShortcut().toString()))))
171 self._write(' </Shortcut>') 172 self._write(' </Shortcut>')
172 173
173 for act in e5App().getObject("DummyHelpViewer").getActions(): 174 for act in e5App().getObject("DummyHelpViewer").getActions():
174 self._write(' <Shortcut category="HelpViewer">') 175 self._write(' <Shortcut category="HelpViewer">')
175 self._write(' <Name>%s</Name>' % act.objectName()) 176 self._write(' <Name>{0}</Name>'.format(act.objectName()))
176 self._write(' <Accel>%s</Accel>' % \ 177 self._write(' <Accel>{0}</Accel>'.format(
177 self.escape("%s" % act.shortcut().toString())) 178 self.escape("{0}".format(act.shortcut().toString()))))
178 self._write(' <AltAccel>%s</AltAccel>' \ 179 self._write(' <AltAccel>{0}</AltAccel>' \
179 % self.escape("%s" % act.alternateShortcut().toString())) 180 .format(self.escape("{0}".format(act.alternateShortcut().toString()))))
180 self._write(' </Shortcut>') 181 self._write(' </Shortcut>')
181 182
182 # add the main end tag 183 # add the main end tag
183 self._write("</Shortcuts>", newline = False) 184 self._write("</Shortcuts>", newline = False)

eric ide

mercurial