QScintilla/Editor.py

changeset 2391
f9a6a512bc1e
parent 2302
f29e9405c851
child 2409
df3820f08247
child 2491
c6e2c7b1a52e
equal deleted inserted replaced
2390:dc5f6e398af4 2391:f9a6a512bc1e
177 self.syntaxerrors = {} # key: marker handle 177 self.syntaxerrors = {} # key: marker handle
178 # value: error message, error index 178 # value: error message, error index
179 self.warnings = {} # key: marker handle 179 self.warnings = {} # key: marker handle
180 # value: list of warning messages 180 # value: list of warning messages
181 self.notcoveredMarkers = [] # just a list of marker handles 181 self.notcoveredMarkers = [] # just a list of marker handles
182 self.showingNotcoveredMarkers = False
182 183
183 self.condHistory = [] 184 self.condHistory = []
184 self.lexer_ = None 185 self.lexer_ = None
185 self.__lexerReset = False 186 self.__lexerReset = False
186 self.completer = None 187 self.completer = None
326 self.setDocument(editor.document()) 327 self.setDocument(editor.document())
327 self.breaks = editor.breaks 328 self.breaks = editor.breaks
328 self.bookmarks = editor.bookmarks 329 self.bookmarks = editor.bookmarks
329 self.syntaxerrors = editor.syntaxerrors 330 self.syntaxerrors = editor.syntaxerrors
330 self.notcoveredMarkers = editor.notcoveredMarkers 331 self.notcoveredMarkers = editor.notcoveredMarkers
332 self.showingNotcoveredMarkers = editor.showingNotcoveredMarkers
331 self.isResourcesFile = editor.isResourcesFile 333 self.isResourcesFile = editor.isResourcesFile
332 self.lastModified = editor.lastModified 334 self.lastModified = editor.lastModified
333 335
334 self.addClone(editor) 336 self.addClone(editor)
335 editor.addClone(self) 337 editor.addClone(self)
391 self.__checkEncoding() 393 self.__checkEncoding()
392 else: 394 else:
393 # it's a clone 395 # it's a clone
394 self.__languageChanged(editor.apiLanguage, propagate=False) 396 self.__languageChanged(editor.apiLanguage, propagate=False)
395 self.__encodingChanged(editor.encoding, propagate=False) 397 self.__encodingChanged(editor.encoding, propagate=False)
396
397 self.__coverageMarkersShown = False # flag remembering the current status of the
398 # code coverage markers
399 398
400 self.setAcceptDrops(True) 399 self.setAcceptDrops(True)
401 400
402 # breakpoint handling 401 # breakpoint handling
403 self.breakpointModel = self.dbs.getBreakPointModel() 402 self.breakpointModel = self.dbs.getBreakPointModel()
4511 coEnable = False 4510 coEnable = False
4512 4511
4513 self.profileMenuAct.setEnabled(prEnable) 4512 self.profileMenuAct.setEnabled(prEnable)
4514 self.coverageMenuAct.setEnabled(coEnable) 4513 self.coverageMenuAct.setEnabled(coEnable)
4515 self.coverageShowAnnotationMenuAct.setEnabled( 4514 self.coverageShowAnnotationMenuAct.setEnabled(
4516 coEnable and not self.__coverageMarkersShown) 4515 coEnable and len(self.notcoveredMarkers) == 0)
4517 self.coverageHideAnnotationMenuAct.setEnabled( 4516 self.coverageHideAnnotationMenuAct.setEnabled(
4518 self.__coverageMarkersShown) 4517 len(self.notcoveredMarkers) > 0)
4519 4518
4520 self.showMenu.emit("Show", self.menuShow, self) 4519 self.showMenu.emit("Show", self.menuShow, self)
4521 4520
4522 def __showContextMenuGraphics(self): 4521 def __showContextMenuGraphics(self):
4523 """ 4522 """
4895 if fn: 4894 if fn:
4896 self.codecoverage = PyCoverageDialog() 4895 self.codecoverage = PyCoverageDialog()
4897 self.codecoverage.show() 4896 self.codecoverage.show()
4898 self.codecoverage.start(fn, self.fileName) 4897 self.codecoverage.start(fn, self.fileName)
4899 4898
4900 def codeCoverageShowAnnotations(self): 4899 def refreshCoverageAnnotations(self):
4900 """
4901 Public method to refresh the code coverage annotations.
4902 """
4903 if self.showingNotcoveredMarkers:
4904 self.codeCoverageShowAnnotations(silent=True)
4905
4906 def codeCoverageShowAnnotations(self, silent=False):
4901 """ 4907 """
4902 Public method to handle the show code coverage annotations context menu action. 4908 Public method to handle the show code coverage annotations context menu action.
4903 """ 4909
4910 @param silent flag indicating to not show any dialog (boolean)
4911 """
4912 self.__codeCoverageHideAnnotations()
4913
4904 fn = self.__getCodeCoverageFile() 4914 fn = self.__getCodeCoverageFile()
4905 if fn: 4915 if fn:
4906 cover = coverage(data_file=fn) 4916 cover = coverage(data_file=fn)
4907 cover.use_cache(True) 4917 cover.use_cache(True)
4908 cover.load() 4918 cover.load()
4910 if missing: 4920 if missing:
4911 for line in missing: 4921 for line in missing:
4912 handle = self.markerAdd(line - 1, self.notcovered) 4922 handle = self.markerAdd(line - 1, self.notcovered)
4913 self.notcoveredMarkers.append(handle) 4923 self.notcoveredMarkers.append(handle)
4914 self.coverageMarkersShown.emit(True) 4924 self.coverageMarkersShown.emit(True)
4915 self.__coverageMarkersShown = True
4916 else: 4925 else:
4917 E5MessageBox.information(self, 4926 if not silent:
4927 E5MessageBox.information(self,
4928 self.trUtf8("Show Code Coverage Annotations"),
4929 self.trUtf8("""All lines have been covered."""))
4930 self.showingNotcoveredMarkers = True
4931 else:
4932 if not silent:
4933 E5MessageBox.warning(self,
4918 self.trUtf8("Show Code Coverage Annotations"), 4934 self.trUtf8("Show Code Coverage Annotations"),
4919 self.trUtf8("""All lines have been covered.""")) 4935 self.trUtf8("""There is no coverage file available."""))
4920 else:
4921 E5MessageBox.warning(self,
4922 self.trUtf8("Show Code Coverage Annotations"),
4923 self.trUtf8("""There is no coverage file available."""))
4924 4936
4925 def __codeCoverageHideAnnotations(self): 4937 def __codeCoverageHideAnnotations(self):
4926 """ 4938 """
4927 Private method to handle the hide code coverage annotations context menu action. 4939 Private method to handle the hide code coverage annotations context menu action.
4928 """ 4940 """
4929 for handle in self.notcoveredMarkers: 4941 for handle in self.notcoveredMarkers:
4930 self.markerDeleteHandle(handle) 4942 self.markerDeleteHandle(handle)
4931 self.notcoveredMarkers = [] 4943 self.notcoveredMarkers = []
4932 self.coverageMarkersShown.emit(False) 4944 self.coverageMarkersShown.emit(False)
4933 self.__coverageMarkersShown = False 4945 self.showingNotcoveredMarkers = False
4934 4946
4935 def hasCoverageMarkers(self): 4947 def hasCoverageMarkers(self):
4936 """ 4948 """
4937 Public method to test, if there are coverage markers. 4949 Public method to test, if there are coverage markers.
4938 """ 4950 """

eric ide

mercurial