Added functionality to refresh the coverage markers of an editor if such are shown. 5_3_x

Sat, 09 Feb 2013 13:00:50 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 09 Feb 2013 13:00:50 +0100
branch
5_3_x
changeset 2393
0944855208d9
parent 2388
b0373f732704
child 2394
8a1f7d598cb7

Added functionality to refresh the coverage markers of an editor if such are shown.
(grafted from f9a6a512bc1e38615f31a000372246f19ccf76bd)

QScintilla/Editor.py file | annotate | diff | comparison | revisions
ViewManager/ViewManager.py file | annotate | diff | comparison | revisions
--- a/QScintilla/Editor.py	Sun Feb 03 14:49:54 2013 +0100
+++ b/QScintilla/Editor.py	Sat Feb 09 13:00:50 2013 +0100
@@ -179,6 +179,7 @@
         self.warnings = {}          # key:   marker handle
                                     # value: list of warning messages
         self.notcoveredMarkers = []  # just a list of marker handles
+        self.showingNotcoveredMarkers = False
         
         self.condHistory = []
         self.lexer_ = None
@@ -328,6 +329,7 @@
             self.bookmarks = editor.bookmarks
             self.syntaxerrors = editor.syntaxerrors
             self.notcoveredMarkers = editor.notcoveredMarkers
+            self.showingNotcoveredMarkers = editor.showingNotcoveredMarkers
             self.isResourcesFile = editor.isResourcesFile
             self.lastModified = editor.lastModified
             
@@ -394,9 +396,6 @@
             self.__languageChanged(editor.apiLanguage, propagate=False)
             self.__encodingChanged(editor.encoding, propagate=False)
         
-        self.__coverageMarkersShown = False   # flag remembering the current status of the
-                                              # code coverage markers
-        
         self.setAcceptDrops(True)
         
         # breakpoint handling
@@ -4513,9 +4512,9 @@
         self.profileMenuAct.setEnabled(prEnable)
         self.coverageMenuAct.setEnabled(coEnable)
         self.coverageShowAnnotationMenuAct.setEnabled(
-            coEnable and not self.__coverageMarkersShown)
+            coEnable and len(self.notcoveredMarkers) == 0)
         self.coverageHideAnnotationMenuAct.setEnabled(
-            self.__coverageMarkersShown)
+            len(self.notcoveredMarkers) > 0)
         
         self.showMenu.emit("Show", self.menuShow,  self)
         
@@ -4897,10 +4896,21 @@
             self.codecoverage.show()
             self.codecoverage.start(fn, self.fileName)
         
-    def codeCoverageShowAnnotations(self):
+    def refreshCoverageAnnotations(self):
+        """
+        Public method to refresh the code coverage annotations.
+        """
+        if self.showingNotcoveredMarkers:
+            self.codeCoverageShowAnnotations(silent=True)
+        
+    def codeCoverageShowAnnotations(self, silent=False):
         """
         Public method to handle the show code coverage annotations context menu action.
-        """
+        
+        @param silent flag indicating to not show any dialog (boolean)
+        """
+        self.__codeCoverageHideAnnotations()
+        
         fn = self.__getCodeCoverageFile()
         if fn:
             cover = coverage(data_file=fn)
@@ -4912,15 +4922,17 @@
                     handle = self.markerAdd(line - 1, self.notcovered)
                     self.notcoveredMarkers.append(handle)
                     self.coverageMarkersShown.emit(True)
-                    self.__coverageMarkersShown = True
             else:
-                E5MessageBox.information(self,
+                if not silent:
+                    E5MessageBox.information(self,
+                        self.trUtf8("Show Code Coverage Annotations"),
+                        self.trUtf8("""All lines have been covered."""))
+            self.showingNotcoveredMarkers = True
+        else:
+            if not silent:
+                E5MessageBox.warning(self,
                     self.trUtf8("Show Code Coverage Annotations"),
-                    self.trUtf8("""All lines have been covered."""))
-        else:
-            E5MessageBox.warning(self,
-                self.trUtf8("Show Code Coverage Annotations"),
-                self.trUtf8("""There is no coverage file available."""))
+                    self.trUtf8("""There is no coverage file available."""))
         
     def __codeCoverageHideAnnotations(self):
         """
@@ -4930,7 +4942,7 @@
             self.markerDeleteHandle(handle)
         self.notcoveredMarkers = []
         self.coverageMarkersShown.emit(False)
-        self.__coverageMarkersShown = False
+        self.showingNotcoveredMarkers = False
         
     def hasCoverageMarkers(self):
         """
--- a/ViewManager/ViewManager.py	Sun Feb 03 14:49:54 2013 +0100
+++ b/ViewManager/ViewManager.py	Sat Feb 09 13:00:50 2013 +0100
@@ -3796,7 +3796,10 @@
         if self.currentEditor is not None:
             self.currentEditor.highlight()
             self.currentEditor = None
-            
+        
+        for editor in self.editors:
+            editor.refreshCoverageAnnotations()
+        
         self.__setSbFile()
         
     def openSourceFile(self, fn, lineno=-1, filetype="",

eric ide

mercurial