Sat, 26 Oct 2024 16:37:50 +0200
- changed header to new style
- included compiled form files
- ensure proper parent relationship of modal dialogs
# -*- coding: utf-8 -*- # Copyright (c) 2013 - 2024 Detlev Offenbach <detlev@die-offenbachs.de> # """ Module implementing the base64 data URI encoder wizard plug-in. """ import os from PyQt6.QtCore import QObject, QTranslator from PyQt6.QtWidgets import QDialog from eric7.EricGui.EricAction import EricAction from eric7.EricWidgets import EricMessageBox from eric7.EricWidgets.EricApplication import ericApp # Start-of-Header __header__ = { "name": "Base64 Data URI Encoder Wizard Plug-in", "author": "Detlev Offenbach <detlev@die-offenbachs.de>", "autoactivate": True, "deactivateable": True, "version": "10.2.1", "className": "WizardDataUriEncoderPlugin", "packageName": "WizardDataUriEncoder", "shortDescription": "Wizard for the creation of code for a base64 data URI.", "longDescription": ( """This plug-in implements a wizard to generate code for""" """ base64 encoded data URIs.""" ), "needsRestart": False, "hasCompiledForms": True, "pyqtApi": 2, } # End-of-Header error = "" class WizardDataUriEncoderPlugin(QObject): """ Class implementing the base64 data URI encoder wizard plug-in. """ def __init__(self, ui): """ Constructor @param ui reference to the user interface object @type UserInterface """ QObject.__init__(self, ui) self.__ui = ui self.__action = None self.__translator = None self.__loadTranslator() def activate(self): """ Public method to activate this plug-in. @return tuple of None and activation status @rtype (None, bool) """ self.__initAction() self.__initMenu() return None, True def deactivate(self): """ Public method to deactivate this plug-in. """ menu = self.__ui.getMenu("wizards") if menu: menu.removeAction(self.__action) self.__ui.removeEricActions([self.__action], "wizards") def __loadTranslator(self): """ Private method to load the translation file. """ if self.__ui is not None: loc = self.__ui.getLocale() if loc and loc != "C": locale_dir = os.path.join( os.path.dirname(__file__), "WizardDataUriEncoder", "i18n" ) translation = "datauriencoder_{0}".format(loc) translator = QTranslator(None) loaded = translator.load(translation, locale_dir) if loaded: self.__translator = translator ericApp().installTranslator(self.__translator) else: print( "Warning: translation file '{0}' could not be" " loaded.".format(translation) ) print("Using default.") def __initAction(self): """ Private method to initialize the action. """ self.__action = EricAction( self.tr("Base64 Data Uri Encoder Wizard"), self.tr("Base&64 Data Uri Encoder Wizard..."), 0, 0, self, "wizards_datauriencoder", ) self.__action.setStatusTip(self.tr("Base64 Data Uri Encoder Wizard")) self.__action.setWhatsThis( self.tr( """<b>Base64 Data Uri Encoder Wizard</b>""" """<p>This wizard opens a dialog for entering all the parameters""" """ needed to create code for a base64 encoded data URI.</p>""" ) ) self.__action.triggered.connect(self.__handle) self.__ui.addEricActions([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 __handle(self): """ Private method to handle the wizards action. """ from WizardDataUriEncoder.DataUriEncoderWizardDialog import ( DataUriEncoderWizardDialog, ) editor = ericApp().getObject("ViewManager").activeWindow() if editor is None: EricMessageBox.critical( self.__ui, self.tr("No current editor"), self.tr("Please open or create a file first."), ) else: dlg = DataUriEncoderWizardDialog(parent=self.__ui) if dlg.exec() == QDialog.DialogCode.Accepted: code = dlg.getCode() if code: line, index = editor.getCursorPosition() # It should be done on this way to allow undo editor.beginUndoAction() editor.insertAt(code, line, index) editor.endUndoAction() # # eflag: noqa = M801, U200