Added support for find indicators to the editor (QScintilla >= 2.8).

Sat, 09 Nov 2013 17:46:01 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 09 Nov 2013 17:46:01 +0100
changeset 3069
8a9579bbf583
parent 3068
e2650fb5db4e
child 3070
04e342ebf697

Added support for find indicators to the editor (QScintilla >= 2.8).

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric5.QScintilla.QsciScintillaCompat.html file | annotate | diff | comparison | revisions
QScintilla/Editor.py file | annotate | diff | comparison | revisions
QScintilla/QsciScintillaCompat.py file | annotate | diff | comparison | revisions
QScintilla/SearchReplaceWidget.py file | annotate | diff | comparison | revisions
ViewManager/ViewManager.py file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric5.api	Sat Nov 09 15:23:52 2013 +0100
+++ b/APIs/Python3/eric5.api	Sat Nov 09 17:46:01 2013 +0100
@@ -7193,6 +7193,7 @@
 eric5.QScintilla.QsciScintillaCompat.QSCINTILLA_VERSION?4()
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.ArrowFoldStyle?7
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.ArrowTreeFoldStyle?7
+eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.IndicatorStyleMax?7
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.UserSeparator?7
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat._encodeString?5(string)
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.byteAt?4(pos)
@@ -7223,6 +7224,7 @@
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.extendSelectionWordRight?4()
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.findFirstTarget?4(expr_, re_, cs_, wo_, begline=-1, begindex=-1, endline=-1, endindex=-1, ws_=False)
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.findNextTarget?4()
+eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.flashFindIndicator?4(sline, sindex, eline, eindex)
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.focusOutEvent?4(event)
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.foldExpandedAt?4(line)
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.foldFlagsAt?4(line)
@@ -7242,6 +7244,7 @@
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.getZoom?4()
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.hasIndicator?4(indicator, pos)
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.hasSelection?4()
+eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.hideFindIndicator?4()
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.indentationGuideView?4()
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.indicatorDefine?4(indicator, style, color)
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.lineAt?4(pos)
@@ -7277,6 +7280,7 @@
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.setStyleBits?4(bits)
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.setStyling?4(length, style)
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.setVirtualSpaceOptions?4(options)
+eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.showFindIndicator?4(sline, sindex, eline, eindex)
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.showUserList?4(id, lst)
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.startStyling?4(pos, mask)
 eric5.QScintilla.QsciScintillaCompat.QsciScintillaCompat.styleAt?4(pos)
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Sat Nov 09 15:23:52 2013 +0100
+++ b/Documentation/Help/source.qhp	Sat Nov 09 17:46:01 2013 +0100
@@ -9370,6 +9370,7 @@
       <keyword name="QsciScintillaCompat.extendSelectionWordRight" id="QsciScintillaCompat.extendSelectionWordRight" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.extendSelectionWordRight" />
       <keyword name="QsciScintillaCompat.findFirstTarget" id="QsciScintillaCompat.findFirstTarget" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.findFirstTarget" />
       <keyword name="QsciScintillaCompat.findNextTarget" id="QsciScintillaCompat.findNextTarget" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.findNextTarget" />
+      <keyword name="QsciScintillaCompat.flashFindIndicator" id="QsciScintillaCompat.flashFindIndicator" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.flashFindIndicator" />
       <keyword name="QsciScintillaCompat.focusOutEvent" id="QsciScintillaCompat.focusOutEvent" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.focusOutEvent" />
       <keyword name="QsciScintillaCompat.foldExpandedAt" id="QsciScintillaCompat.foldExpandedAt" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.foldExpandedAt" />
       <keyword name="QsciScintillaCompat.foldFlagsAt" id="QsciScintillaCompat.foldFlagsAt" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.foldFlagsAt" />
@@ -9389,6 +9390,7 @@
       <keyword name="QsciScintillaCompat.getZoom" id="QsciScintillaCompat.getZoom" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.getZoom" />
       <keyword name="QsciScintillaCompat.hasIndicator" id="QsciScintillaCompat.hasIndicator" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.hasIndicator" />
       <keyword name="QsciScintillaCompat.hasSelection" id="QsciScintillaCompat.hasSelection" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.hasSelection" />
+      <keyword name="QsciScintillaCompat.hideFindIndicator" id="QsciScintillaCompat.hideFindIndicator" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.hideFindIndicator" />
       <keyword name="QsciScintillaCompat.indentationGuideView" id="QsciScintillaCompat.indentationGuideView" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.indentationGuideView" />
       <keyword name="QsciScintillaCompat.indicatorDefine" id="QsciScintillaCompat.indicatorDefine" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.indicatorDefine" />
       <keyword name="QsciScintillaCompat.lineAt" id="QsciScintillaCompat.lineAt" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.lineAt" />
@@ -9424,6 +9426,7 @@
       <keyword name="QsciScintillaCompat.setStyleBits" id="QsciScintillaCompat.setStyleBits" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.setStyleBits" />
       <keyword name="QsciScintillaCompat.setStyling" id="QsciScintillaCompat.setStyling" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.setStyling" />
       <keyword name="QsciScintillaCompat.setVirtualSpaceOptions" id="QsciScintillaCompat.setVirtualSpaceOptions" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.setVirtualSpaceOptions" />
+      <keyword name="QsciScintillaCompat.showFindIndicator" id="QsciScintillaCompat.showFindIndicator" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.showFindIndicator" />
       <keyword name="QsciScintillaCompat.showUserList" id="QsciScintillaCompat.showUserList" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.showUserList" />
       <keyword name="QsciScintillaCompat.startStyling" id="QsciScintillaCompat.startStyling" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.startStyling" />
       <keyword name="QsciScintillaCompat.styleAt" id="QsciScintillaCompat.styleAt" ref="eric5.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.styleAt" />
--- a/Documentation/Source/eric5.QScintilla.QsciScintillaCompat.html	Sat Nov 09 15:23:52 2013 +0100
+++ b/Documentation/Source/eric5.QScintilla.QsciScintillaCompat.html	Sat Nov 09 17:46:01 2013 +0100
@@ -61,7 +61,7 @@
 QsciScintilla
 <h3>Class Attributes</h3>
 <table>
-<tr><td>ArrowFoldStyle</td></tr><tr><td>ArrowTreeFoldStyle</td></tr><tr><td>UserSeparator</td></tr>
+<tr><td>ArrowFoldStyle</td></tr><tr><td>ArrowTreeFoldStyle</td></tr><tr><td>IndicatorStyleMax</td></tr><tr><td>UserSeparator</td></tr>
 </table>
 <h3>Class Methods</h3>
 <table>
@@ -166,6 +166,9 @@
 <td><a href="#QsciScintillaCompat.findNextTarget">findNextTarget</a></td>
 <td>Public method to find the next occurrence in the target range.</td>
 </tr><tr>
+<td><a href="#QsciScintillaCompat.flashFindIndicator">flashFindIndicator</a></td>
+<td>Public method to flash the find indicator for the given range.</td>
+</tr><tr>
 <td><a href="#QsciScintillaCompat.focusOutEvent">focusOutEvent</a></td>
 <td>Public method called when the editor loses focus.</td>
 </tr><tr>
@@ -223,6 +226,9 @@
 <td><a href="#QsciScintillaCompat.hasSelection">hasSelection</a></td>
 <td>Public method to check for a selection.</td>
 </tr><tr>
+<td><a href="#QsciScintillaCompat.hideFindIndicator">hideFindIndicator</a></td>
+<td>Public method to hide the find indicator.</td>
+</tr><tr>
 <td><a href="#QsciScintillaCompat.indentationGuideView">indentationGuideView</a></td>
 <td>Public method to get the indentation guide view.</td>
 </tr><tr>
@@ -328,6 +334,9 @@
 <td><a href="#QsciScintillaCompat.setVirtualSpaceOptions">setVirtualSpaceOptions</a></td>
 <td>Public method to set the virtual space usage options.</td>
 </tr><tr>
+<td><a href="#QsciScintillaCompat.showFindIndicator">showFindIndicator</a></td>
+<td>Public method to show the find indicator for the given range.</td>
+</tr><tr>
 <td><a href="#QsciScintillaCompat.showUserList">showUserList</a></td>
 <td>Public method to show a user supplied list.</td>
 </tr><tr>
@@ -686,6 +695,25 @@
 <dd>
 flag indicating a successful search (boolean)
 </dd>
+</dl><a NAME="QsciScintillaCompat.flashFindIndicator" ID="QsciScintillaCompat.flashFindIndicator"></a>
+<h4>QsciScintillaCompat.flashFindIndicator</h4>
+<b>flashFindIndicator</b>(<i>sline, sindex, eline, eindex</i>)
+<p>
+        Public method to flash the find indicator for the given range.
+</p><dl>
+<dt><i>sline</i></dt>
+<dd>
+line number of the indicator start (integer)
+</dd><dt><i>sindex</i></dt>
+<dd>
+index of the indicator start (integer)
+</dd><dt><i>eline</i></dt>
+<dd>
+line number of the indicator end (integer)
+</dd><dt><i>eindex</i></dt>
+<dd>
+index of the indicator end (integer)
+</dd>
 </dl><a NAME="QsciScintillaCompat.focusOutEvent" ID="QsciScintillaCompat.focusOutEvent"></a>
 <h4>QsciScintillaCompat.focusOutEvent</h4>
 <b>focusOutEvent</b>(<i>event</i>)
@@ -918,7 +946,12 @@
 <dd>
 flag indicating the presence of a selection (boolean)
 </dd>
-</dl><a NAME="QsciScintillaCompat.indentationGuideView" ID="QsciScintillaCompat.indentationGuideView"></a>
+</dl><a NAME="QsciScintillaCompat.hideFindIndicator" ID="QsciScintillaCompat.hideFindIndicator"></a>
+<h4>QsciScintillaCompat.hideFindIndicator</h4>
+<b>hideFindIndicator</b>(<i></i>)
+<p>
+        Public method to hide the find indicator.
+</p><a NAME="QsciScintillaCompat.indentationGuideView" ID="QsciScintillaCompat.indentationGuideView"></a>
 <h4>QsciScintillaCompat.indentationGuideView</h4>
 <b>indentationGuideView</b>(<i></i>)
 <p>
@@ -945,7 +978,12 @@
             (QsciScintilla.INDIC_PLAIN, QsciScintilla.INDIC_SQUIGGLE,
             QsciScintilla.INDIC_TT, QsciScintilla.INDIC_DIAGONAL,
             QsciScintilla.INDIC_STRIKE, QsciScintilla.INDIC_HIDDEN,
-            QsciScintilla.INDIC_BOX, QsciScintilla.INDIC_ROUNDBOX)
+            QsciScintilla.INDIC_BOX, QsciScintilla.INDIC_ROUNDBOX,
+            QsciScintilla.INDIC_STRAIGHTBOX, QsciScintilla.INDIC_DASH,
+            QsciScintilla.INDIC_DOTS, QsciScintilla.INDIC_SQUIGGLELOW, 
+            QsciScintilla.INDIC_DOTBOX, QsciScintilla.INDIC_SQUIGGLEPIXMAP,
+            QsciScintilla.INDIC_COMPOSITIONTHICK depending upon QScintilla
+            version)
 </dd><dt><i>color</i></dt>
 <dd>
 color to be used by the indicator (QColor)
@@ -1356,6 +1394,25 @@
 <dd>
 usage options to set (integer, 0 to 3)
 </dd>
+</dl><a NAME="QsciScintillaCompat.showFindIndicator" ID="QsciScintillaCompat.showFindIndicator"></a>
+<h4>QsciScintillaCompat.showFindIndicator</h4>
+<b>showFindIndicator</b>(<i>sline, sindex, eline, eindex</i>)
+<p>
+        Public method to show the find indicator for the given range.
+</p><dl>
+<dt><i>sline</i></dt>
+<dd>
+line number of the indicator start (integer)
+</dd><dt><i>sindex</i></dt>
+<dd>
+index of the indicator start (integer)
+</dd><dt><i>eline</i></dt>
+<dd>
+line number of the indicator end (integer)
+</dd><dt><i>eindex</i></dt>
+<dd>
+index of the indicator end (integer)
+</dd>
 </dl><a NAME="QsciScintillaCompat.showUserList" ID="QsciScintillaCompat.showUserList"></a>
 <h4>QsciScintillaCompat.showUserList</h4>
 <b>showUserList</b>(<i>id, lst</i>)
--- a/QScintilla/Editor.py	Sat Nov 09 15:23:52 2013 +0100
+++ b/QScintilla/Editor.py	Sat Nov 09 17:46:01 2013 +0100
@@ -7027,6 +7027,7 @@
         
         @param forward flag indicating the search direction (boolean)
         """
+        self.hideFindIndicator()
         line, index = self.getCursorPosition()
         word = self.getCurrentWord()
         wordStart, wordEnd = self.getCurrentWordBoundaries()
@@ -7057,6 +7058,8 @@
                     match = matches[-1]
             line, index = self.lineIndexFromPosition(match.start())
             self.setSelection(line, index + len(match.group(0)), line, index)
+            self.showFindIndicator(line, index,
+                                   line, index + len(match.group(0)))
     
     #######################################################################
     ## Sort related methods
--- a/QScintilla/QsciScintillaCompat.py	Sat Nov 09 15:23:52 2013 +0100
+++ b/QScintilla/QsciScintillaCompat.py	Sat Nov 09 17:46:01 2013 +0100
@@ -50,6 +50,15 @@
     
     UserSeparator = '\x04'
     
+    if QSCINTILLA_VERSION() < 0x020600:
+        IndicatorStyleMax = QsciScintilla.INDIC_ROUNDBOX
+    elif QSCINTILLA_VERSION() < 0x020700:
+        IndicatorStyleMax = QsciScintilla.INDIC_DOTBOX
+    elif QSCINTILLA_VERSION() < 0x020800:
+        IndicatorStyleMax = QsciScintilla.INDIC_SQUIGGLEPIXMAP
+    else:
+        IndicatorStyleMax = QsciScintilla.INDIC_COMPOSITIONTHICK
+    
     def __init__(self, parent=None):
         """
         Constructor
@@ -884,7 +893,12 @@
             (QsciScintilla.INDIC_PLAIN, QsciScintilla.INDIC_SQUIGGLE,
             QsciScintilla.INDIC_TT, QsciScintilla.INDIC_DIAGONAL,
             QsciScintilla.INDIC_STRIKE, QsciScintilla.INDIC_HIDDEN,
-            QsciScintilla.INDIC_BOX, QsciScintilla.INDIC_ROUNDBOX)
+            QsciScintilla.INDIC_BOX, QsciScintilla.INDIC_ROUNDBOX,
+            QsciScintilla.INDIC_STRAIGHTBOX, QsciScintilla.INDIC_DASH,
+            QsciScintilla.INDIC_DOTS, QsciScintilla.INDIC_SQUIGGLELOW, 
+            QsciScintilla.INDIC_DOTBOX, QsciScintilla.INDIC_SQUIGGLEPIXMAP,
+            QsciScintilla.INDIC_COMPOSITIONTHICK depending upon QScintilla
+            version)
         @param color color to be used by the indicator (QColor)
         @exception ValueError the indicator or style are not valid
         """
@@ -893,7 +907,7 @@
             raise ValueError("indicator number out of range")
         
         if style < QsciScintilla.INDIC_PLAIN or \
-           style > QsciScintilla.INDIC_ROUNDBOX:
+           style > self.IndicatorStyleMax:
             raise ValueError("style out of range")
         
         self.SendScintilla(QsciScintilla.SCI_INDICSETSTYLE, indicator, style)
@@ -994,6 +1008,42 @@
                                  indicator, pos)
         return res
     
+    def showFindIndicator(self, sline, sindex, eline, eindex):
+        """
+        Public method to show the find indicator for the given range.
+        
+        @param sline line number of the indicator start (integer)
+        @param sindex index of the indicator start (integer)
+        @param eline line number of the indicator end (integer)
+        @param eindex index of the indicator end (integer)
+        """
+        if hasattr(QsciScintilla, "SCI_FINDINDICATORSHOW"):
+            spos = self.positionFromLineIndex(sline, sindex)
+            epos = self.positionFromLineIndex(eline, eindex)
+            self.SendScintilla(QsciScintilla.SCI_FINDINDICATORSHOW, spos, epos)
+    
+    def flashFindIndicator(self, sline, sindex, eline, eindex):
+        """
+        Public method to flash the find indicator for the given range.
+        
+        @param sline line number of the indicator start (integer)
+        @param sindex index of the indicator start (integer)
+        @param eline line number of the indicator end (integer)
+        @param eindex index of the indicator end (integer)
+        """
+        if hasattr(QsciScintilla, "SCI_FINDINDICATORFLASH"):
+            spos = self.positionFromLineIndex(sline, sindex)
+            epos = self.positionFromLineIndex(eline, eindex)
+            self.SendScintilla(QsciScintilla.SCI_FINDINDICATORFLASH,
+                               spos, epos)
+    
+    def hideFindIndicator(self):
+        """
+        Public method to hide the find indicator.
+        """
+        if hasattr(QsciScintilla, "SCI_FINDINDICATORHIDE"):
+            self.SendScintilla(QsciScintilla.SCI_FINDINDICATORHIDE)
+    
     ###########################################################################
     # methods to perform folding related stuff
     ###########################################################################
--- a/QScintilla/SearchReplaceWidget.py	Sat Nov 09 15:23:52 2013 +0100
+++ b/QScintilla/SearchReplaceWidget.py	Sat Nov 09 17:46:01 2013 +0100
@@ -350,6 +350,7 @@
             self.__markOccurrences(txt)
         
         aw = self.viewmanager.activeWindow()
+        aw.hideFindIndicator()
         cline, cindex = aw.getCursorPosition()
         
         ok = True
@@ -517,6 +518,10 @@
                 aw.setCursorPosition(cline, cindex)
                 aw.ensureCursorVisible()
         
+        if ok:
+            sline, sindex, eline, eindex = aw.getSelection()
+            aw.showFindIndicator(sline, sindex, eline, eindex)
+        
         self.__finding = False
         
         return ok
@@ -626,6 +631,7 @@
         self.ui.replacetextCombo.addItems(self.replaceHistory)
         
         aw = self.viewmanager.activeWindow()
+        aw.hideFindIndicator()
         aw.replace(rtxt)
         
         if searchNext:
@@ -669,6 +675,7 @@
         self.ui.replacetextCombo.addItems(self.replaceHistory)
         
         aw = self.viewmanager.activeWindow()
+        aw.hideFindIndicator()
         cline, cindex = aw.getCursorPosition()
         boundary = self.__selectionBoundary()
         if self.ui.selectionCheckBox.isChecked():
@@ -830,6 +837,10 @@
         """
         Private slot to close the widget.
         """
+        aw = self.viewmanager.activeWindow()
+        if aw:
+            aw.hideFindIndicator()
+        
         if self.__sliding:
             self.__topWidget.close()
         else:
@@ -845,6 +856,7 @@
             aw = self.viewmanager.activeWindow()
             if aw:
                 aw.setFocus(Qt.ActiveWindowFocusReason)
+                aw.hideFindIndicator()
             event.accept()
             if self.__sliding:
                 self.__topWidget.close()
--- a/ViewManager/ViewManager.py	Sat Nov 09 15:23:52 2013 +0100
+++ b/ViewManager/ViewManager.py	Sat Nov 09 17:46:01 2013 +0100
@@ -5180,9 +5180,13 @@
         if self.quickFindtextCombo.lastActive:
             self.quickFindtextCombo.lastActive.setFocus()
             aw = self.activeWindow()
-            if aw and self.quickFindtextCombo.lastCursorPos:
-                aw.setCursorPosition(self.quickFindtextCombo.lastCursorPos[0],
-                                     self.quickFindtextCombo.lastCursorPos[1])
+            if aw:
+                aw.hideFindIndicator()
+                if self.quickFindtextCombo.lastCursorPos:
+                    aw.setCursorPosition(
+                        self.quickFindtextCombo.lastCursorPos[0],
+                        self.quickFindtextCombo.lastCursorPos[1])
+                
         if self.__quickSearchToolbarVisibility is not None:
             self.__quickSearchToolbar.setVisible(
                 self.__quickSearchToolbarVisibility)
@@ -5253,6 +5257,8 @@
         if not aw:
             return
         
+        aw.hideFindIndicator()
+        
         text = self.quickFindtextCombo.lineEdit().text()
         if not text and again:
                 text = self.quickFindtextCombo.lastSearchText
@@ -5286,6 +5292,9 @@
         else:
             ok = aw.findFirst(text, False, False, False, True, not back,
                               lineFrom, indexFrom)
+        if ok:
+            sline, sindex, eline, eindex = aw.getSelection()
+            aw.showFindIndicator(sline, sindex, eline, eindex)
         self.__quickSearchSetEditColors(not ok)
     
     def __quickSearchSetEditColors(self, error):

eric ide

mercurial