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) |