Mon, 25 Mar 2013 03:11:06 +0100
Script changes: Future import added, super calls modified and unicode behavior for str.
# -*- coding: utf-8 -*- # Copyright (c) 2007 - 2013 Detlev Offenbach <detlev@die-offenbachs.de> # """ Module implementing the QRegExp wizard plugin. """ from __future__ import unicode_literals # __IGNORE_WARNING__ from PyQt4.QtCore import QObject from PyQt4.QtGui import QDialog from E5Gui.E5Application import e5App from E5Gui.E5Action import E5Action from E5Gui import E5MessageBox # Start-Of-Header name = "QRegExp Wizard Plugin" author = "Detlev Offenbach <detlev@die-offenbachs.de>" autoactivate = True deactivateable = True version = "5.1.0" className = "QRegExpWizard" packageName = "__core__" shortDescription = "Show the QRegExp wizard." longDescription = """This plugin shows the QRegExp wizard.""" pyqtApi = 2 # End-Of-Header error = "" class QRegExpWizard(QObject): """ Class implementing the QRegExp wizard plugin. """ def __init__(self, ui): """ Constructor @param ui reference to the user interface object (UI.UserInterface) """ super(QRegExpWizard, self).__init__(ui) self.__ui = ui def activate(self): """ Public method to activate this plugin. @return tuple of None and activation status (boolean) """ self.__initAction() self.__initMenu() return None, True def deactivate(self): """ Public method to deactivate this plugin. """ menu = self.__ui.getMenu("wizards") if menu: menu.removeAction(self.action) self.__ui.removeE5Actions([self.action], 'wizards') def __initAction(self): """ Private method to initialize the action. """ self.action = E5Action(self.trUtf8('QRegExp Wizard'), self.trUtf8('Q&RegExp Wizard...'), 0, 0, self, 'wizards_qregexp') self.action.setStatusTip(self.trUtf8('QRegExp Wizard')) self.action.setWhatsThis(self.trUtf8( """<b>QRegExp Wizard</b>""" """<p>This wizard opens a dialog for entering all the parameters""" """ needed to create a QRegExp. The generated code is inserted""" """ at the current cursor position.</p>""" )) self.action.triggered[()].connect(self.__handle) self.__ui.addE5Actions([self.action], 'wizards') def __initMenu(self): """ Private method to add the actions to the right menu. """ menu = self.__ui.getMenu("wizards") if menu: menu.addAction(self.action) def __callForm(self, editor): """ Private method to display a dialog and get the code. @param editor reference to the current editor @return the generated code (string) """ from WizardPlugins.QRegExpWizard.QRegExpWizardDialog import \ QRegExpWizardDialog dlg = QRegExpWizardDialog(None, True) if dlg.exec_() == QDialog.Accepted: line, index = editor.getCursorPosition() indLevel = editor.indentation(line) // editor.indentationWidth() if editor.indentationsUseTabs(): indString = '\t' else: indString = editor.indentationWidth() * ' ' return (dlg.getCode(indLevel, indString), 1) else: return (None, False) def __handle(self): """ Private method to handle the wizards action """ editor = e5App().getObject("ViewManager").activeWindow() if editor == None: E5MessageBox.critical(self.__ui, self.trUtf8('No current editor'), self.trUtf8('Please open or create a file first.')) else: code, ok = self.__callForm(editor) if ok: line, index = editor.getCursorPosition() # It should be done on this way to allow undo editor.beginUndoAction() editor.insertAt(code, line, index) editor.endUndoAction()