Sat, 09 Feb 2013 13:00:50 +0100
Added functionality to refresh the coverage markers of an editor if such are shown.
QScintilla/Editor.py | file | annotate | diff | comparison | revisions | |
ViewManager/ViewManager.py | file | annotate | diff | comparison | revisions |
--- a/QScintilla/Editor.py Sun Feb 03 18:21:49 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 18:21:49 2013 +0100 +++ b/ViewManager/ViewManager.py Sat Feb 09 13:00:50 2013 +0100 @@ -3815,7 +3815,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="",