Sat, 02 Jan 2010 15:35:20 +0000
Changed copyright for 2010.
# -*- coding: utf-8 -*- # Copyright (c) 2004 - 2010 Detlev Offenbach <detlev@die-offenbachs.de> # """ Module implementing the writer class for writing an XML shortcuts file. """ import time from E4Gui.E4Application import e4App from .XMLWriterBase import XMLWriterBase from .Config import shortcutsFileFormatVersion import Preferences class ShortcutsWriter(XMLWriterBase): """ Class implementing the writer class for writing an XML shortcuts file. """ def __init__(self, file): """ Constructor @param file open file (like) object for writing """ XMLWriterBase.__init__(self, file) self.email = Preferences.getUser("Email") def writeXML(self): """ Public method to write the XML to the file. """ XMLWriterBase.writeXML(self) self._write('<!DOCTYPE Shortcuts SYSTEM "Shortcuts-%s.dtd">' % \ shortcutsFileFormatVersion) # add some generation comments self._write("<!-- Eric4 keyboard shortcuts -->") self._write("<!-- Saved: %s -->" % time.strftime('%Y-%m-%d, %H:%M:%S')) self._write("<!-- Author: %s -->" % self.escape("%s" % self.email)) # add the main tag self._write('<Shortcuts version="%s">' % shortcutsFileFormatVersion) for act in e4App().getObject("Project").getActions(): self._write(' <Shortcut category="Project">') self._write(' <Name>%s</Name>' % act.objectName()) self._write(' <Accel>%s</Accel>' % \ self.escape("%s" % act.shortcut().toString())) self._write(' <AltAccel>%s</AltAccel>' \ % self.escape("%s" % act.alternateShortcut().toString())) self._write(' </Shortcut>') for act in e4App().getObject("UserInterface").getActions('ui'): self._write(' <Shortcut category="General">') self._write(' <Name>%s</Name>' % act.objectName()) self._write(' <Accel>%s</Accel>' % \ self.escape("%s" % act.shortcut().toString())) self._write(' <AltAccel>%s</AltAccel>' % \ self.escape("%s" % act.alternateShortcut().toString())) self._write(' </Shortcut>') for act in e4App().getObject("UserInterface").getActions('wizards'): self._write(' <Shortcut category="Wizards">') self._write(' <Name>%s</Name>' % act.objectName()) self._write(' <Accel>%s</Accel>' % \ self.escape("%s" % act.shortcut().toString())) self._write(' <AltAccel>%s</AltAccel>' % \ self.escape("%s" % act.alternateShortcut().toString())) self._write(' </Shortcut>') for act in e4App().getObject("DebugUI").getActions(): self._write(' <Shortcut category="Debug">') self._write(' <Name>%s</Name>' % act.objectName()) self._write(' <Accel>%s</Accel>' % \ self.escape("%s" % act.shortcut().toString())) self._write(' <AltAccel>%s</AltAccel>' % \ self.escape("%s" % act.alternateShortcut().toString())) self._write(' </Shortcut>') for act in e4App().getObject("ViewManager").getActions('edit'): self._write(' <Shortcut category="Edit">') self._write(' <Name>%s</Name>' % act.objectName()) self._write(' <Accel>%s</Accel>' % \ self.escape("%s" % act.shortcut().toString())) self._write(' <AltAccel>%s</AltAccel>' % \ self.escape("%s" % act.alternateShortcut().toString())) self._write(' </Shortcut>') for act in e4App().getObject("ViewManager").getActions('file'): self._write(' <Shortcut category="File">') self._write(' <Name>%s</Name>' % act.objectName()) self._write(' <Accel>%s</Accel>' % \ self.escape("%s" % act.shortcut().toString())) self._write(' <AltAccel>%s</AltAccel>' % \ self.escape("%s" % act.alternateShortcut().toString())) self._write(' </Shortcut>') for act in e4App().getObject("ViewManager").getActions('search'): self._write(' <Shortcut category="Search">') self._write(' <Name>%s</Name>' % act.objectName()) self._write(' <Accel>%s</Accel>' % \ self.escape("%s" % act.shortcut().toString())) self._write(' <AltAccel>%s</AltAccel>' % \ self.escape("%s" % act.alternateShortcut().toString())) self._write(' </Shortcut>') for act in e4App().getObject("ViewManager").getActions('view'): self._write(' <Shortcut category="View">') self._write(' <Name>%s</Name>' % act.objectName()) self._write(' <Accel>%s</Accel>' % \ self.escape("%s" % act.shortcut().toString())) self._write(' <AltAccel>%s</AltAccel>' % \ self.escape("%s" % act.alternateShortcut().toString())) self._write(' </Shortcut>') for act in e4App().getObject("ViewManager").getActions('macro'): self._write(' <Shortcut category="Macro">') self._write(' <Name>%s</Name>' % act.objectName()) self._write(' <Accel>%s</Accel>' % \ self.escape("%s" % act.shortcut().toString())) self._write(' <AltAccel>%s</AltAccel>' % \ self.escape("%s" % act.alternateShortcut().toString())) self._write(' </Shortcut>') for act in e4App().getObject("ViewManager").getActions('bookmark'): self._write(' <Shortcut category="Bookmarks">') self._write(' <Name>%s</Name>' % act.objectName()) self._write(' <Accel>%s</Accel>' % \ self.escape("%s" % act.shortcut().toString())) self._write(' <AltAccel>%s</AltAccel>' % \ self.escape("%s" % act.alternateShortcut().toString())) self._write(' </Shortcut>') for act in e4App().getObject("ViewManager").getActions('spelling'): self._write(' <Shortcut category="Spelling">') self._write(' <Name>%s</Name>' % act.objectName()) self._write(' <Accel>%s</Accel>' % \ self.escape("%s" % act.shortcut().toString())) self._write(' <AltAccel>%s</AltAccel>' % \ self.escape("%s" % act.alternateShortcut().toString())) self._write(' </Shortcut>') actions = e4App().getObject("ViewManager").getActions('window') for act in actions: self._write(' <Shortcut category="Window">') self._write(' <Name>%s</Name>' % act.objectName()) self._write(' <Accel>%s</Accel>' % \ self.escape("%s" % act.shortcut().toString())) self._write(' <AltAccel>%s</AltAccel>' % \ self.escape("%s" % act.alternateShortcut().toString())) self._write(' </Shortcut>') for category, ref in e4App().getPluginObjects(): if hasattr(ref, "getActions"): actions = ref.getActions() for act in actions: if act.objectName(): # shortcuts are only exported, if their objectName is set self._write(' <Shortcut category="%s">' % category) self._write(' <Name>%s</Name>' % act.objectName()) self._write(' <Accel>%s</Accel>' % \ self.escape("%s" % act.shortcut().toString())) self._write(' <AltAccel>%s</AltAccel>' % \ self.escape("%s" % act.alternateShortcut().toString())) self._write(' </Shortcut>') for act in e4App().getObject("DummyHelpViewer").getActions(): self._write(' <Shortcut category="HelpViewer">') self._write(' <Name>%s</Name>' % act.objectName()) self._write(' <Accel>%s</Accel>' % \ self.escape("%s" % act.shortcut().toString())) self._write(' <AltAccel>%s</AltAccel>' \ % self.escape("%s" % act.alternateShortcut().toString())) self._write(' </Shortcut>') # add the main end tag self._write("</Shortcuts>", newline = False)