PluginProjectFlask.py

branch
eric7
changeset 64
0ee58185b8df
parent 61
fe1e8783a95f
child 66
0d3168d0e310
--- a/PluginProjectFlask.py	Sat May 29 15:04:41 2021 +0200
+++ b/PluginProjectFlask.py	Sun May 30 17:33:37 2021 +0200
@@ -11,9 +11,9 @@
 import glob
 import fnmatch
 
-from PyQt5.QtCore import QCoreApplication, QObject, QTranslator
+from PyQt6.QtCore import QCoreApplication, QObject, QTranslator
 
-from E5Gui.E5Application import e5App
+from EricWidgets.EricApplication import ericApp
 
 import Preferences
 
@@ -26,7 +26,7 @@
 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
 autoactivate = True
 deactivateable = True
-version = "1.3.0"
+version = "1.0.0"
 className = "ProjectFlaskPlugin"
 packageName = "ProjectFlask"
 shortDescription = "Project support for Flask projects."
@@ -46,8 +46,10 @@
     """
     Module function to return the API files made available by this plugin.
     
-    @param language language to get APIs for (string)
-    @return list of API filenames (list of string)
+    @param language language to get APIs for
+    @type str
+    @return list of API filenames
+    @rtype list of str
     """
     if language in ["Python3"]:
         apisDir = os.path.join(os.path.dirname(__file__),
@@ -63,7 +65,9 @@
     Module function to create the Flask configuration page.
     
     @param configDlg reference to the configuration dialog
+    @type ConfigurationWidget
     @return reference to the configuration page
+    @rtype FlaskPage
     """
     global flaskPluginObject
     from ProjectFlask.ConfigurationPage.FlaskPage import FlaskPage
@@ -78,13 +82,7 @@
     @return dictionary containing the relevant data
     @rtype dict
     """
-    try:
-        usesDarkPalette = e5App().usesDarkPalette()
-    except AttributeError:
-        from PyQt5.QtGui import QPalette
-        palette = e5App().palette()
-        lightness = palette.color(QPalette.Window).lightness()
-        usesDarkPalette = lightness <= 128
+    usesDarkPalette = ericApp().usesDarkPalette()
     iconSuffix = "dark" if usesDarkPalette else "light"
     
     return {
@@ -121,7 +119,7 @@
         Constructor
         
         @param ui reference to the user interface object
-        @type UI.UserInterface
+        @type UserInterface
         """
         QObject.__init__(self, ui)
         self.__ui = ui
@@ -159,7 +157,7 @@
         self.__mainAct = None
         self.__separatorAct = None
         
-        self.__e5project = e5App().getObject("Project")
+        self.__ericProject = ericApp().getObject("Project")
         
         self.__supportedVariants = []
     
@@ -168,30 +166,24 @@
         Public method to activate this plugin.
         
         @return tuple of None and activation status
-        @rtype bool
+        @rtype tuple of (None, bool)
         """
         global flaskPluginObject
         flaskPluginObject = self
         
-        try:
-            usesDarkPalette = e5App().usesDarkPalette()
-        except AttributeError:
-            from PyQt5.QtGui import QPalette
-            palette = e5App().palette()
-            lightness = palette.color(QPalette.Window).lightness()
-            usesDarkPalette = lightness <= 128
+        usesDarkPalette = ericApp().usesDarkPalette()
         iconSuffix = "dark" if usesDarkPalette else "light"
         
         self.__object = Project(self, iconSuffix, self.__ui)
         self.__object.initActions()
-        e5App().registerPluginObject("ProjectFlask", self.__object)
+        ericApp().registerPluginObject("ProjectFlask", self.__object)
         
         self.__mainMenu = self.__object.initMenu()
         
         self.__supportedVariants = self.__object.supportedPythonVariants()
         
         if self.__supportedVariants:
-            self.__e5project.registerProjectType(
+            self.__ericProject.registerProjectType(
                 "Flask", self.tr("Flask"),
                 self.fileTypesCallback,
                 lexerAssociationCallback=self.lexerAssociationCallback,
@@ -208,22 +200,22 @@
             TranslationsBrowserFlag | OthersBrowserFlag,
         )
         
-        if self.__e5project.isOpen():
+        if self.__ericProject.isOpen():
             self.__projectOpened()
             self.__object.projectOpenedHooks()
         
-        e5App().getObject("Project").projectOpened.connect(
+        ericApp().getObject("Project").projectOpened.connect(
             self.__projectOpened)
-        e5App().getObject("Project").projectClosed.connect(
+        ericApp().getObject("Project").projectClosed.connect(
             self.__projectClosed)
-        e5App().getObject("Project").newProject.connect(
+        ericApp().getObject("Project").newProject.connect(
             self.__projectOpened)
         
-        e5App().getObject("Project").projectOpenedHooks.connect(
+        ericApp().getObject("Project").projectOpenedHooks.connect(
             self.__object.projectOpenedHooks)
-        e5App().getObject("Project").projectClosedHooks.connect(
+        ericApp().getObject("Project").projectClosedHooks.connect(
             self.__object.projectClosedHooks)
-        e5App().getObject("Project").newProjectHooks.connect(
+        ericApp().getObject("Project").newProjectHooks.connect(
             self.__object.projectOpenedHooks)
         
         return None, True
@@ -232,23 +224,23 @@
         """
         Public method to deactivate this plugin.
         """
-        e5App().unregisterPluginObject("ProjectFlask")
+        ericApp().unregisterPluginObject("ProjectFlask")
         
-        e5App().getObject("Project").projectOpened.disconnect(
+        ericApp().getObject("Project").projectOpened.disconnect(
             self.__projectOpened)
-        e5App().getObject("Project").projectClosed.disconnect(
+        ericApp().getObject("Project").projectClosed.disconnect(
             self.__projectClosed)
-        e5App().getObject("Project").newProject.disconnect(
+        ericApp().getObject("Project").newProject.disconnect(
             self.__projectOpened)
         
-        e5App().getObject("Project").projectOpenedHooks.disconnect(
+        ericApp().getObject("Project").projectOpenedHooks.disconnect(
             self.__object.projectOpenedHooks)
-        e5App().getObject("Project").projectClosedHooks.disconnect(
+        ericApp().getObject("Project").projectClosedHooks.disconnect(
             self.__object.projectClosedHooks)
-        e5App().getObject("Project").newProjectHooks.disconnect(
+        ericApp().getObject("Project").newProjectHooks.disconnect(
             self.__object.projectOpenedHooks)
         
-        self.__e5project.unregisterProjectType("Flask")
+        self.__ericProject.unregisterProjectType("Flask")
         
         self.__object.projectClosedHooks()
         self.__projectClosed()
@@ -269,7 +261,7 @@
                 loaded = translator.load(translation, locale_dir)
                 if loaded:
                     self.__translator = translator
-                    e5App().installTranslator(self.__translator)
+                    ericApp().installTranslator(self.__translator)
                 else:
                     print("Warning: translation file '{0}' could not be"
                           " loaded.".format(translation))
@@ -279,20 +271,13 @@
         """
         Private slot to handle the projectOpened signal.
         """
-        if self.__e5project.getProjectType() == "Flask":
+        if self.__ericProject.getProjectType() == "Flask":
             projectToolsMenu = self.__ui.getMenu("project_tools")
-            if projectToolsMenu is not None:
-                insertBeforeAct = projectToolsMenu.actions()[0]
-                self.__mainAct = projectToolsMenu.insertMenu(
-                    insertBeforeAct, self.__mainMenu)
-                self.__separatorAct = projectToolsMenu.insertSeparator(
-                    insertBeforeAct)
-            else:
-                projectAct = self.__ui.getMenuBarAction("project")
-                actions = self.__ui.menuBar().actions()
-                insertBeforeAct = actions[actions.index(projectAct) + 1]
-                self.__mainAct = self.__ui.menuBar().insertMenu(
-                    insertBeforeAct, self.__mainMenu)
+            insertBeforeAct = projectToolsMenu.actions()[0]
+            self.__mainAct = projectToolsMenu.insertMenu(
+                insertBeforeAct, self.__mainMenu)
+            self.__separatorAct = projectToolsMenu.insertSeparator(
+                insertBeforeAct)
     
     def __projectClosed(self):
         """
@@ -300,14 +285,10 @@
         """
         if self.__mainAct is not None:
             projectToolsMenu = self.__ui.getMenu("project_tools")
-            if projectToolsMenu is not None:
-                projectToolsMenu.removeAction(self.__separatorAct)
-                projectToolsMenu.removeAction(self.__mainAct)
-                self.__mainAct = None
-                self.__separatorAct = None
-            else:
-                self.__ui.menuBar().removeAction(self.__mainAct)
-                self.__mainAct = None
+            projectToolsMenu.removeAction(self.__separatorAct)
+            projectToolsMenu.removeAction(self.__mainAct)
+            self.__mainAct = None
+            self.__separatorAct = None
             self.__object.projectClosed()
     
     def fileTypesCallback(self):
@@ -325,7 +306,7 @@
              "*.pot": "TRANSLATIONS",
              "*.po": "TRANSLATIONS",
              "*.mo": "TRANSLATIONS", }
-            if self.__e5project.getProjectType() == "Flask" else
+            if self.__ericProject.getProjectType() == "Flask" else
             {}
         )
         return fileTypes
@@ -411,12 +392,12 @@
         supportedVariants = self.__object.supportedPythonVariants()
         if supportedVariants != self.__supportedVariants:
             # step 1: unregister
-            self.__e5project.unregisterProjectType("Flask")
+            self.__ericProject.unregisterProjectType("Flask")
             
             # step 2: register again with new language settings
             self.__supportedVariants = supportedVariants
             if self.__supportedVariants:
-                self.__e5project.registerProjectType(
+                self.__ericProject.registerProjectType(
                     "Flask",
                     self.tr("Flask"), self.fileTypesCallback,
                     lexerAssociationCallback=self.lexerAssociationCallback,

eric ide

mercurial