QScintilla/Editor.py

changeset 3329
1ee38e29ed4f
parent 3327
1338767b5315
child 3341
7c015811fc4d
--- a/QScintilla/Editor.py	Wed Mar 05 18:40:12 2014 +0100
+++ b/QScintilla/Editor.py	Wed Mar 05 19:52:15 2014 +0100
@@ -19,9 +19,9 @@
 
 from E5Gui.E5Application import e5App
 from E5Gui import E5FileDialog, E5MessageBox
-from E5Gui.E5MapWidget import E5MapWidget
 
 from .QsciScintillaCompat import QsciScintillaCompat, QSCINTILLA_VERSION
+from .EditorMarkerMap import EditorMarkerMap
 
 import Preferences
 import Utilities
@@ -292,7 +292,7 @@
         self.changeMarkersMask = (1 << self.__changeMarkerSaved) | \
                                  (1 << self.__changeMarkerUnsaved)
         
-        self.__markerMap = E5MapWidget(self)
+        self.__markerMap = EditorMarkerMap(self)
         
         # configure the margins
         self.__setMarginsDisplay()
@@ -444,6 +444,9 @@
                 self.__projectPropertiesChanged)
         
         self.grabGesture(Qt.PinchGesture)
+        
+        self.SCN_ZOOM.connect(self.__markerMap.update)
+        self.__markerMap.update()
     
     def __registerImages(self):
         """
@@ -1654,6 +1657,9 @@
                 pos = self.positionFromLineIndex(self.lastLine, self.lastIndex)
                 self.spell.checkWord(pos)
         
+        if self.lastLine != line:
+            self.__markerMap.update()
+        
         self.lastLine = line
         self.lastIndex = index
         
@@ -1951,6 +1957,7 @@
             self.markerDeleteHandle(handle)
         self.__addBreakPoints(
             QModelIndex(), 0, self.breakpointModel.rowCount() - 1)
+        self.__markerMap.update()
         
     def __deleteBreakPoints(self, parentIndex, start, end):
         """
@@ -2027,6 +2034,7 @@
         
         del self.breaks[handle]
         self.markerDeleteHandle(handle)
+        self.__markerMap.update()
         
     def newBreakpointWithProperties(self, line, properties):
         """
@@ -2047,6 +2055,7 @@
             handle = self.markerAdd(line - 1, marker)
             self.breaks[handle] = (line,) + properties
             self.breakpointToggled.emit(self)
+            self.__markerMap.update()
         
     def __toggleBreakpoint(self, line, temporary=False):
         """
@@ -2270,17 +2279,15 @@
         """
         for handle in self.bookmarks:
             if self.markerLine(handle) == line - 1:
+                self.bookmarks.remove(handle)
+                self.markerDeleteHandle(handle)
                 break
         else:
             # set a new bookmark
             handle = self.markerAdd(line - 1, self.bookmark)
             self.bookmarks.append(handle)
-            self.bookmarkToggled.emit(self)
-            return
-        
-        self.bookmarks.remove(handle)
-        self.markerDeleteHandle(handle)
         self.bookmarkToggled.emit(self)
+        self.__markerMap.update()
         
     def getBookmarks(self):
         """
@@ -2373,6 +2380,7 @@
             self.markerDeleteHandle(handle)
         self.bookmarks = []
         self.bookmarkToggled.emit(self)
+        self.__markerMap.update()
     
     ###########################################################################
     ## Printing methods below
@@ -2545,6 +2553,7 @@
                 if shouldBreak:
                     break
         self.taskMarkersUpdated.emit(self)
+        self.__markerMap.update()
     
     ###########################################################################
     ## Change tracing methods below
@@ -2628,6 +2637,7 @@
         
         if self.__hasChangeMarkers:
             self.changeMarkersUpdated.emit(self)
+            self.__markerMap.update()
         
     def __resetOnlineChangeTraceInfo(self):
         """
@@ -2649,6 +2659,7 @@
         
         if self.__hasChangeMarkers:
             self.changeMarkersUpdated.emit(self)
+            self.__markerMap.update()
         
     def __deleteAllChangeMarkers(self):
         """
@@ -2658,6 +2669,7 @@
         self.markerDeleteAll(self.__changeMarkerSaved)
         self.__hasChangeMarkers = False
         self.changeMarkersUpdated.emit(self)
+        self.__markerMap.update()
         
     def getChangeLines(self):
         """
@@ -5248,7 +5260,8 @@
                 for line in missing:
                     handle = self.markerAdd(line - 1, self.notcovered)
                     self.notcoveredMarkers.append(handle)
-                    self.coverageMarkersShown.emit(True)
+                self.coverageMarkersShown.emit(True)
+                self.__markerMap.update()
             else:
                 if not silent:
                     E5MessageBox.information(
@@ -5273,6 +5286,7 @@
         self.notcoveredMarkers = []
         self.coverageMarkersShown.emit(False)
         self.showingNotcoveredMarkers = False
+        self.__markerMap.update()
         
     def getCoverageLines(self):
         """
@@ -5449,6 +5463,7 @@
                     self.syntaxerrorToggled.emit(self)
         
         self.__setAnnotation(line - 1)
+        self.__markerMap.update()
         
     def getSyntaxErrors(self):
         """
@@ -5576,6 +5591,7 @@
                     self.syntaxerrorToggled.emit(self)
         
         self.__setAnnotation(line - 1)
+        self.__markerMap.update()
     
     def getWarnings(self):
         """
@@ -5687,6 +5703,7 @@
                 self.__setAnnotation(self.markerLine(handle))
                 self.markerDeleteHandle(handle)
         self.syntaxerrorToggled.emit(self)
+        self.__markerMap.update()
     
     def clearWarnings(self):
         """
@@ -5698,6 +5715,7 @@
             self.markerDeleteHandle(handle)
         self.warnings = {}
         self.syntaxerrorToggled.emit(self)
+        self.__markerMap.update()
     
     def __showWarning(self, line=-1):
         """
@@ -6330,6 +6348,8 @@
         self.editorSaved.emit(self.fileName)
         self.__autoSyntaxCheck(useText=False)
         
+        self.__markerMap.update()
+        
         self.refreshed.emit()
         
     def setMonospaced(self, on):

eric ide

mercurial