PluginMetricsRadon.py

changeset 18
58ce8a433422
parent 13
22bc345844e7
child 21
fe094e33a295
--- a/PluginMetricsRadon.py	Sun Sep 20 12:17:19 2015 +0200
+++ b/PluginMetricsRadon.py	Sun Sep 20 13:49:22 2015 +0200
@@ -28,7 +28,7 @@
 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
 autoactivate = True
 deactivateable = True
-version = "0.1.0"
+version = "0.2.0"
 className = "RadonMetricsPlugin"
 packageName = "RadonMetrics"
 shortDescription = "Code metrics plugin using radon package"
@@ -620,6 +620,8 @@
         self.__editorMetricsActs.append(act)
         
         e5App().getObject("Project").showMenu.connect(self.__projectShowMenu)
+        e5App().getObject("Project").projectClosed.connect(
+            self.__projectClosed)
         e5App().getObject("ProjectBrowser").getProjectBrowser("sources")\
             .showMenu.connect(self.__projectBrowserShowMenu)
         e5App().getObject("ViewManager").editorOpenedEd.connect(
@@ -638,6 +640,8 @@
         """
         e5App().getObject("Project").showMenu.disconnect(
             self.__projectShowMenu)
+        e5App().getObject("Project").projectClosed.disconnect(
+            self.__projectClosed)
         e5App().getObject("ProjectBrowser").getProjectBrowser("sources")\
             .showMenu.disconnect(self.__projectBrowserShowMenu)
         e5App().getObject("ViewManager").editorOpenedEd.disconnect(
@@ -844,8 +848,9 @@
                      tuple(Preferences.getPython("Python3Extensions")) +
                      tuple(Preferences.getPython("PythonExtensions")))]
         
-        from RadonMetrics.RawMetricsDialog import RawMetricsDialog
-        self.__projectRawMetricsDialog = RawMetricsDialog(self)
+        if self.__projectRawMetricsDialog is None:
+            from RadonMetrics.RawMetricsDialog import RawMetricsDialog
+            self.__projectRawMetricsDialog = RawMetricsDialog(self)
         self.__projectRawMetricsDialog.show()
         self.__projectRawMetricsDialog.prepare(files, project)
     
@@ -867,8 +872,9 @@
             except AttributeError:
                 fn = itm.dirName()
         
-        from RadonMetrics.RawMetricsDialog import RawMetricsDialog
-        self.__projectBrowserRawMetricsDialog = RawMetricsDialog(self)
+        if self.__projectBrowserRawMetricsDialog is None:
+            from RadonMetrics.RawMetricsDialog import RawMetricsDialog
+            self.__projectBrowserRawMetricsDialog = RawMetricsDialog(self)
         self.__projectBrowserRawMetricsDialog.show()
         self.__projectBrowserRawMetricsDialog.start(fn)
     
@@ -880,8 +886,9 @@
         editor = e5App().getObject("ViewManager").activeWindow()
         if editor is not None:
             if editor.checkDirty() and editor.getFileName() is not None:
-                from RadonMetrics.RawMetricsDialog import RawMetricsDialog
-                self.__editorRawMetricsDialog = RawMetricsDialog(self)
+                if self.__editorRawMetricsDialog is None:
+                    from RadonMetrics.RawMetricsDialog import RawMetricsDialog
+                    self.__editorRawMetricsDialog = RawMetricsDialog(self)
                 self.__editorRawMetricsDialog.show()
                 self.__editorRawMetricsDialog.start(editor.getFileName())
     
@@ -903,9 +910,10 @@
                      tuple(Preferences.getPython("Python3Extensions")) +
                      tuple(Preferences.getPython("PythonExtensions")))]
         
-        from RadonMetrics.MaintainabilityIndexDialog import \
-            MaintainabilityIndexDialog
-        self.__projectMIDialog = MaintainabilityIndexDialog(self)
+        if self.__projectMIDialog is None:
+            from RadonMetrics.MaintainabilityIndexDialog import \
+                MaintainabilityIndexDialog
+            self.__projectMIDialog = MaintainabilityIndexDialog(self)
         self.__projectMIDialog.show()
         self.__projectMIDialog.prepare(files, project)
     
@@ -927,9 +935,10 @@
             except AttributeError:
                 fn = itm.dirName()
         
-        from RadonMetrics.MaintainabilityIndexDialog import \
-            MaintainabilityIndexDialog
-        self.__projectBrowserMIDialog = MaintainabilityIndexDialog(self)
+        if self.__projectBrowserMIDialog is None:
+            from RadonMetrics.MaintainabilityIndexDialog import \
+                MaintainabilityIndexDialog
+            self.__projectBrowserMIDialog = MaintainabilityIndexDialog(self)
         self.__projectBrowserMIDialog.show()
         self.__projectBrowserMIDialog.start(fn)
     
@@ -941,9 +950,10 @@
         editor = e5App().getObject("ViewManager").activeWindow()
         if editor is not None:
             if editor.checkDirty() and editor.getFileName() is not None:
-                from RadonMetrics.MaintainabilityIndexDialog import \
-                    MaintainabilityIndexDialog
-                self.__editorMIDialog = MaintainabilityIndexDialog(self)
+                if self.__editorMIDialog is None:
+                    from RadonMetrics.MaintainabilityIndexDialog import \
+                        MaintainabilityIndexDialog
+                    self.__editorMIDialog = MaintainabilityIndexDialog(self)
                 self.__editorMIDialog.show()
                 self.__editorMIDialog.start(editor.getFileName())
     
@@ -1037,3 +1047,16 @@
                 """ complexity</li>"""
                 """</ul></p>"""
             ).format(__version__))
+    
+    ##################################################################
+    ## Project handling methods
+    ##################################################################
+    
+    def __projectClosed(self):
+        """
+        Private slot to handle closing a project.
+        """
+        self.__projectCCDialog and self.__projectCCDialog.clear()
+        self.__projectMIDialog and self.__projectMIDialog.clear()
+        self.__projectRawMetricsDialog and \
+            self.__projectRawMetricsDialog.clear()

eric ide

mercurial