diff -r dba433b4f3d6 -r 85418cf03fdb PluginProjectDjangoTagsMenu.py --- a/PluginProjectDjangoTagsMenu.py Thu Dec 30 12:03:18 2021 +0100 +++ b/PluginProjectDjangoTagsMenu.py Wed Sep 21 16:38:40 2022 +0200 @@ -41,23 +41,24 @@ """ Class implementing the Django tags menu plugin. """ + def __init__(self, ui): """ Constructor - + @param ui reference to the user interface object @type UserInterface """ super().__init__(ui) self.__ui = ui - + self.__translator = None self.__loadTranslator() - + self.__handler = DjangoTagsMenuHandler(ui, self) - + self.__initMenu() - + def __initMenu(self): """ Private slot to initialize the tags menu. @@ -65,10 +66,10 @@ self.__menuAttached = False self.__menuAction = None self.__menuSeparator = None - + self.__menu = QMenu(self.tr("Template Tags")) self.__handler.initMenus(self.__menu) - + def __attachMenu(self): """ Private method to attach the menu to the Django menu. @@ -77,14 +78,15 @@ with contextlib.suppress(KeyError): pluginObject = ericApp().getPluginObject("ProjectDjango") djangoMenu = pluginObject.getMenu("main") - djangoDatabaseMenuAction = pluginObject.getMenu( - "database").menuAction() + djangoDatabaseMenuAction = pluginObject.getMenu("database").menuAction() self.__menuAction = djangoMenu.insertMenu( - djangoDatabaseMenuAction, self.__menu) + djangoDatabaseMenuAction, self.__menu + ) self.__menuSeparator = djangoMenu.insertSeparator( - djangoDatabaseMenuAction) + djangoDatabaseMenuAction + ) self.__menuAttached = True - + def __detachMenu(self): """ Private method to detach the menu from the Django menu. @@ -95,46 +97,46 @@ djangoMenu = pluginObject.getMenu("main") djangoMenu.removeAction(self.__menuAction) djangoMenu.removeAction(self.__menuSeparator) - + self.__menuAction = None self.__menuSeparator = None self.__menuAttached = False - + def activate(self): """ Public method to activate this plugin. - + @return tuple of None and activation status @rtype tuple of (None, bool) """ pluginManager = ericApp().getObject("PluginManager") pluginManager.pluginActivated.connect(self.__pluginActivated) pluginManager.pluginAboutToBeDeactivated.connect( - self.__pluginAboutToBeDeactivated) - + self.__pluginAboutToBeDeactivated + ) + if pluginManager.isPluginActive("PluginProjectDjango"): self.__attachMenu() - - ericApp().getObject("Project").projectClosed.connect( - self.__projectClosed) - + + ericApp().getObject("Project").projectClosed.connect(self.__projectClosed) + return None, True - + def deactivate(self): """ Public method to deactivate this plugin. """ - ericApp().getObject("Project").projectClosed.disconnect( - self.__projectClosed) - + ericApp().getObject("Project").projectClosed.disconnect(self.__projectClosed) + self.__handler.closeAllWindows() self.__detachMenu() - + pluginManager = ericApp().getObject("PluginManager") pluginManager.pluginActivated.disconnect(self.__pluginActivated) pluginManager.pluginAboutToBeDeactivated.disconnect( - self.__pluginAboutToBeDeactivated) - + self.__pluginAboutToBeDeactivated + ) + def __loadTranslator(self): """ Private method to load the translation file. @@ -143,7 +145,8 @@ loc = self.__ui.getLocale() if loc and loc != "C": locale_dir = os.path.join( - os.path.dirname(__file__), "ProjectDjangoTagsMenu", "i18n") + os.path.dirname(__file__), "ProjectDjangoTagsMenu", "i18n" + ) translation = "djangotagsmenu_{0}".format(loc) translator = QTranslator(None) loaded = translator.load(translation, locale_dir) @@ -151,20 +154,22 @@ self.__translator = translator ericApp().installTranslator(self.__translator) else: - print("Warning: translation file '{0}' could not be" - " loaded.".format(translation)) + print( + "Warning: translation file '{0}' could not be" + " loaded.".format(translation) + ) print("Using default.") - + def __projectClosed(self): """ Private slot to handle the projectClosed signal. """ self.__handler.closeAllWindows() - + def __pluginActivated(self, moduleName, pluginObject): """ Private slot to react on plugin activation of the Django plugin. - + @param moduleName name of the module activated @type str @param pluginObject reference to the activated plug-in object @@ -172,11 +177,11 @@ """ if moduleName == "PluginProjectDjango": self.__attachMenu() - + def __pluginAboutToBeDeactivated(self, moduleName, pluginObject): """ Private slot to react on the Django plugin about to be deactivated. - + @param moduleName name of the module about to be deactivated @type str @param pluginObject reference to the about to be deactivated @@ -187,5 +192,6 @@ self.__handler.closeAllWindows() self.__detachMenu() + # # eflag: noqa = M801