QScintilla/Editor.py

changeset 500
c3abc7895a01
parent 486
e4711a55e482
child 501
5c615a85241a
--- a/QScintilla/Editor.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/QScintilla/Editor.py	Thu Aug 12 16:11:13 2010 +0200
@@ -63,7 +63,7 @@
     @signal breakpointToggled(editor) emitted when a breakpoint is toggled
     @signal bookmarkToggled(editor) emitted when a bookmark is toggled
     @signal syntaxerrorToggled(editor) emitted when a syntax error was discovered
-    @signal autoCompletionAPIsAvailable(avail) emitted after the autocompletion
+    @signal autoCompletionAPIsAvailable(bool) emitted after the autocompletion
             function has been configured
     @signal coverageMarkersShown(boolean) emitted after the coverage markers have been 
             shown or cleared
@@ -71,15 +71,31 @@
     @signal showMenu(string, QMenu, editor) emitted when a menu is about to be shown.
             The name of the menu, a reference to the menu and a reference to the
             editor are given.
-    @signal languageChanged(language) emitted when the editors language was set. The
+    @signal languageChanged(string) emitted when the editors language was set. The
             language is passed as a parameter.
-    @signal eolChanged(eol) emitted when the editors eol type was set. The eol string
+    @signal eolChanged(string) emitted when the editors eol type was set. The eol string
             is passed as a parameter.
-    @signal encodingChanged(encoding) emitted when the editors encoding was set. The 
+    @signal encodingChanged(string) emitted when the editors encoding was set. The 
             encoding name is passed as a parameter.
     """
+    modificationStatusChanged = pyqtSignal(bool, QsciScintillaCompat)
+    undoAvailable = pyqtSignal(bool)
+    redoAvailable = pyqtSignal(bool)
     cursorChanged = pyqtSignal(str, int, int)
+    editorAboutToBeSaved = pyqtSignal(str)
+    editorSaved = pyqtSignal(str)
+    editorRenamed = pyqtSignal(str)
+    captionChanged = pyqtSignal(str, QsciScintillaCompat)
     breakpointToggled = pyqtSignal(QsciScintillaCompat)
+    bookmarkToggled = pyqtSignal(QsciScintillaCompat)
+    syntaxerrorToggled = pyqtSignal(QsciScintillaCompat)
+    autoCompletionAPIsAvailable = pyqtSignal(bool)
+    coverageMarkersShown = pyqtSignal(bool)
+    taskMarkersUpdated = pyqtSignal(QsciScintillaCompat)
+    showMenu = pyqtSignal(str, QMenu, QsciScintillaCompat)
+    languageChanged = pyqtSignal(str)
+    eolChanged = pyqtSignal(str)
+    encodingChanged = pyqtSignal(str)
     
     # Autocompletion icon definitions
     ClassID              = 1
@@ -188,8 +204,7 @@
         self.__markOccurrencesTimer.setSingleShot(True)
         self.__markOccurrencesTimer.setInterval(
             Preferences.getEditor("MarkOccurrencesTimeout"))
-        self.connect(self.__markOccurrencesTimer, SIGNAL("timeout()"), 
-                     self.__markOccurrences)
+        self.__markOccurrencesTimer.timeout.connect(self.__markOccurrences)
         self.__markedText = ""
         
         # initialize some spellchecking stuff
@@ -205,14 +220,10 @@
         self.__isShared = False
         self.__inRemoteSharedEdit = False
         
-        self.connect(self, SIGNAL('modificationChanged(bool)'), 
-                     self.__modificationChanged)
-        self.connect(self, SIGNAL('cursorPositionChanged(int,int)'),
-                     self.__cursorPositionChanged)
-        self.connect(self, SIGNAL('modificationAttempted()'),
-                     self.__modificationReadOnly)
-        self.connect(self, SIGNAL('userListActivated(int, const QString)'),
-                     self.__completionListSelected)
+        self.modificationChanged.connect(self.__modificationChanged)
+        self.cursorPositionChanged.connect(self.__cursorPositionChanged)
+        self.modificationAttempted.connect(self.__modificationReadOnly)
+        self.userListActivated.connect(self.__completionListSelected)
         
         # margins layout
         if QSCINTILLA_VERSION() >= 0x020301:
@@ -256,8 +267,7 @@
         # configure the margins
         self.__setMarginsDisplay()
         
-        self.connect(self, SIGNAL('marginClicked(int, int, Qt::KeyboardModifiers)'),
-                    self.__marginClicked)
+        self.marginClicked.connect(self.__marginClicked)
         
         # set the eol mode
         self.__setEolMode()
@@ -358,11 +368,11 @@
             self.__checkEncoding()
         else:
             # it's a clone
-            self.languageChanged(editor.apiLanguage, propagate = False)
+            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.__coverageMarkersShown = False   # flag remembering the current status of the
+                                              # code coverage markers
         
         self.setAcceptDrops(True)
         
@@ -377,7 +387,7 @@
             self.__changeBreakPoints)
         self.breakpointModel.rowsInserted.connect(
             self.__addBreakPoints)
-        self.connect(self, SIGNAL("linesChanged()"), self.__linesChanged)
+        self.linesChanged.connect(self.__linesChanged)
         
         # establish connection to some ViewManager action groups
         self.addActions(self.vm.editorActGrp.actions())
@@ -427,10 +437,10 @@
         """
         self.__clones.append(editor)
         
-        self.connect(editor, SIGNAL('editorRenamed'), self.fileRenamed)
-        self.connect(editor, SIGNAL('languageChanged'), self.languageChanged)
-        self.connect(editor, SIGNAL('eolChanged'), self.__eolChanged)
-        self.connect(editor, SIGNAL('encodingChanged'), self.__encodingChanged)
+        editor.editorRenamed.connect(self.fileRenamed)
+        editor.languageChanged.connect(self.languageChanged)
+        editor.eolChanged.connect(self.__eolChanged)
+        editor.encodingChanged.connect(self.__encodingChanged)
         
     def removeClone(self, editor):
         """
@@ -439,10 +449,10 @@
         @param clone reference to the cloned editor (Editor)
         """
         if editor in self.__clones:
-            self.disconnect(editor, SIGNAL('editorRenamed'), self.fileRenamed)
-            self.disconnect(editor, SIGNAL('languageChanged'), self.languageChanged)
-            self.disconnect(editor, SIGNAL('eolChanged'), self.__eolChanged)
-            self.disconnect(editor, SIGNAL('encodingChanged'), self.__encodingChanged)
+            editor.editorRenamed.disconnect(self.fileRenamed)
+            editor.languageChanged.disconnect(self.languageChanged)
+            editor.eolChanged.disconnect(self.__eolChanged)
+            editor.encodingChanged.disconnect(self.__encodingChanged)
             self.__clones.remove(editor)
         
     def __bindName(self, line0):
@@ -531,11 +541,11 @@
             self.__menus["Resources"] = self.resourcesMenu
         else:
             self.checksMenu = self.__initContextMenuChecks()
-            self.showMenu = self.__initContextMenuShow()
+            self.menuShow = self.__initContextMenuShow()
             self.graphicsMenu = self.__initContextMenuGraphics()
             self.autocompletionMenu = self.__initContextMenuAutocompletion()
             self.__menus["Checks"] = self.checksMenu
-            self.__menus["Show"] = self.showMenu
+            self.__menus["Show"] = self.menuShow
             self.__menus["Graphics"] = self.graphicsMenu
             self.__menus["Autocompletion"] = self.autocompletionMenu
         self.exportersMenu = self.__initContextMenuExporters()
@@ -636,7 +646,7 @@
         else:
             self.menuActs["Check"] = self.menu.addMenu(self.checksMenu)
             self.menu.addSeparator()
-            self.menuActs["Show"] = self.menu.addMenu(self.showMenu)
+            self.menuActs["Show"] = self.menu.addMenu(self.menuShow)
             self.menu.addSeparator()
             self.menuActs["Diagrams"] = self.menu.addMenu(self.graphicsMenu)
         self.menu.addSeparator()
@@ -667,8 +677,7 @@
         self.__menus["Spelling"] = self.spellingMenu
         
         self.spellingMenu.aboutToShow.connect(self.__showContextMenuSpelling)
-        self.connect(self.spellingMenu, SIGNAL('triggered(QAction *)'), 
-                     self.__contextMenuSpellingTriggered)
+        self.spellingMenu.triggered.connect(self.__contextMenuSpellingTriggered)
 
     def __initContextMenuAutocompletion(self):
         """
@@ -779,7 +788,7 @@
         self.pygmentsSelAct = menu.addAction(self.trUtf8("Alternatives"))
         self.pygmentsSelAct.setData("Alternatives")
         
-        self.connect(menu, SIGNAL('triggered(QAction *)'), self.__languageMenuTriggered)
+        menu.triggered.connect(self.__languageMenuTriggered)
         menu.aboutToShow.connect(self.__showContextMenuLanguages)
         
         return menu
@@ -801,7 +810,7 @@
             self.supportedEncodings[encoding] = act
             self.encodingsActGrp.addAction(act)
         
-        self.connect(menu, SIGNAL('triggered(QAction *)'), self.__encodingsMenuTriggered)
+        menu.triggered.connect(self.__encodingsMenuTriggered)
         menu.aboutToShow.connect(self.__showContextMenuEncodings)
         
         return menu
@@ -834,7 +843,7 @@
         self.supportedEols['\r'] = act
         self.eolActGrp.addAction(act)
         
-        self.connect(menu, SIGNAL('triggered(QAction *)'), self.__eolMenuTriggered)
+        menu.triggered.connect(self.__eolMenuTriggered)
         menu.aboutToShow.connect(self.__showContextMenuEol)
         
         return menu
@@ -851,7 +860,7 @@
             act = menu.addAction(supportedExporters[exporter])
             act.setData(exporter)
         
-        self.connect(menu, SIGNAL('triggered(QAction *)'), self.__exportMenuTriggered)
+        menu.triggered.connect(self.__exportMenuTriggered)
         
         return menu
         
@@ -1089,7 +1098,7 @@
                 self.trUtf8("Alternatives ({0})").format(self.getLanguage()))
         else:
             self.pygmentsSelAct.setText(self.trUtf8("Alternatives"))
-        self.emit(SIGNAL("showMenu"), "Languages", self.languagesMenu,  self)
+        self.showMenu.emit("Languages", self.languagesMenu,  self)
         
     def __selectPygmentsLexer(self):
         """
@@ -1134,9 +1143,9 @@
             if language:
                 self.setLanguage(self.supportedLanguages[language][1])
         
-    def languageChanged(self, language, propagate = True):
-        """
-        Public slot handling a change of a connected editor's language.
+    def __languageChanged(self, language, propagate = True):
+        """
+        Private slot handling a change of a connected editor's language.
         
         @param language language to be set (string)
         @keyparam propagate flag indicating to propagate the change (boolean)
@@ -1159,7 +1168,7 @@
         """
         if self.lexer_ is not None and \
            (self.lexer_.lexer() == "container" or self.lexer_.lexer() is None):
-            self.disconnect(self, SIGNAL("SCN_STYLENEEDED(int)"), self.__styleNeeded)
+            self.SCN_STYLENEEDED.disconnect(self.__styleNeeded)
         
         self.apiLanguage = ""
         self.lexer_ = None
@@ -1173,7 +1182,7 @@
         
         if not self.inLanguageChanged and propagate:
             self.inLanguageChanged = True
-            self.emit(SIGNAL('languageChanged'), self.apiLanguage)
+            self.languageChanged.emit(self.apiLanguage)
             self.inLanguageChanged = False
         
     def setLanguage(self, filename, initTextDisplay = True, propagate = True, 
@@ -1203,7 +1212,7 @@
         
         if not self.inLanguageChanged and propagate:
             self.inLanguageChanged = True
-            self.emit(SIGNAL('languageChanged'), self.apiLanguage)
+            self.languageChanged.emit(self.apiLanguage)
             self.inLanguageChanged = False
     
     def __checkLanguage(self):
@@ -1231,7 +1240,7 @@
         """
         Private slot handling the aboutToShow signal of the encodings context menu.
         """
-        self.emit(SIGNAL("showMenu"), "Encodings", self.encodingsMenu,  self)
+        self.showMenu.emit("Encodings", self.encodingsMenu,  self)
         
     def __encodingsMenuTriggered(self, act):
         """
@@ -1262,7 +1271,7 @@
         
         if not self.inEncodingChanged and propagate:
             self.inEncodingChanged = True
-            self.emit(SIGNAL("encodingChanged"), self.encoding)
+            self.encodingChanged.emit(self.encoding)
             self.inEncodingChanged = False
         
     def __normalizedEncoding(self):
@@ -1279,7 +1288,7 @@
         """
         Private slot handling the aboutToShow signal of the eol context menu.
         """
-        self.emit(SIGNAL("showMenu"), "Eol", self.eolMenu,  self)
+        self.showMenu.emit("Eol", self.eolMenu,  self)
         
     def __eolMenuTriggered(self, act):
         """
@@ -1309,7 +1318,7 @@
         if not self.inEolChanged:
             self.inEolChanged = True
             eol = self.getLineSeparator()
-            self.emit(SIGNAL("eolChanged"), eol)
+            self.eolChanged.emit(eol)
             self.inEolChanged = False
         
     def __bindLexer(self, filename, pyname = ""):
@@ -1321,7 +1330,7 @@
         """
         if self.lexer_ is not None and \
            (self.lexer_.lexer() == "container" or self.lexer_.lexer() is None):
-            self.disconnect(self, SIGNAL("SCN_STYLENEEDED(int)"), self.__styleNeeded)
+            self.SCN_STYLENEEDED.disconnect(self.__styleNeeded)
         
         language = ""
         if self.project.isOpen() and self.project.isProjectFile(filename):
@@ -1349,7 +1358,7 @@
         self.__setMarginsDisplay()
         if self.lexer_.lexer() == "container" or self.lexer_.lexer() is None:
             self.setStyleBits(self.lexer_.styleBitsNeeded())
-            self.connect(self, SIGNAL("SCN_STYLENEEDED(int)"), self.__styleNeeded)
+            self.SCN_STYLENEEDED.connect(self.__styleNeeded)
         
         # get the font for style 0 and set it as the default font
         key = 'Scintilla/{0}/style0/font'.format(self.lexer_.language())
@@ -1369,7 +1378,7 @@
             self.acAPI = True
         else:
             self.acAPI = False
-        self.emit(SIGNAL("autoCompletionAPIsAvailable"), self.acAPI)
+        self.autoCompletionAPIsAvailable.emit(self.acAPI)
         
     def __styleNeeded(self, position):
         """
@@ -1435,9 +1444,9 @@
             self.lastModified = QFileInfo(self.fileName).lastModified()
         if Preferences.getEditor("AutoCheckSyntax"):
             self.clearSyntaxError()
-        self.emit(SIGNAL('modificationStatusChanged'), m, self)
-        self.emit(SIGNAL('undoAvailable'), self.isUndoAvailable())
-        self.emit(SIGNAL('redoAvailable'), self.isRedoAvailable())
+        self.modificationStatusChanged.emit(m, self)
+        self.undoAvailable.emit(self.isUndoAvailable())
+        self.redoAvailable.emit(self.isRedoAvailable())
         
     def __cursorPositionChanged(self, line, index):
         """
@@ -1924,12 +1933,12 @@
             # set a new bookmark
             handle = self.markerAdd(line - 1, self.bookmark)
             self.bookmarks.append(handle)
-            self.emit(SIGNAL('bookmarkToggled'), self)
+            self.bookmarkToggled.emit(self)
             return
         
         self.bookmarks.remove(handle)
         self.markerDeleteHandle(handle)
-        self.emit(SIGNAL('bookmarkToggled'), self)
+        self.bookmarkToggled.emit(self)
         
     def getBookmarks(self):
         """
@@ -2004,7 +2013,7 @@
         for handle in self.bookmarks:
             self.markerDeleteHandle(handle)
         self.bookmarks = []
-        self.emit(SIGNAL('bookmarkToggled'), self)
+        self.bookmarkToggled.emit(self)
     
     ############################################################################
     ## Printing methods below
@@ -2058,7 +2067,7 @@
         else:
             printer.setDocName(self.noName)
         preview = QPrintPreviewDialog(printer, self)
-        self.connect(preview, SIGNAL("paintRequested(QPrinter*)"), self.__printPreview)
+        preview.paintRequested.connect(self.__printPreview)
         preview.exec_()
     
     def __printPreview(self, printer):
@@ -2155,7 +2164,7 @@
                     self.taskViewer.addFileTask(task, self.fileName, lineIndex+1, True)
                     self.__hasTaskMarkers = True
                     break
-        self.emit(SIGNAL('taskMarkersUpdated'), self)
+        self.taskMarkersUpdated.emit(self)
     
     ############################################################################
     ## File handling methods below
@@ -2383,7 +2392,7 @@
         else:
             fn = self.fileName
         
-        self.emit(SIGNAL('editorAboutToBeSaved'), self.fileName)
+        self.editorAboutToBeSaved.emit(self.fileName)
         if self.writeFile(fn):
             if saveas:
                 self.__clearBreakpoints(self.fileName)
@@ -2397,11 +2406,11 @@
             if saveas:
                 self.isResourcesFile = self.fileName.endswith(".qrc")
                 self.__initContextMenu()
-                self.emit(SIGNAL('editorRenamed'), self.fileName)
+                self.editorRenamed.emit(self.fileName)
             self.lastModified = QFileInfo(self.fileName).lastModified()
             if newName is not None:
                 self.vm.addToRecentList(newName)
-            self.emit(SIGNAL('editorSaved'), self.fileName)
+            self.editorSaved.emit(self.fileName)
             self.__autoSyntaxCheck()
             self.extractTasks()
             return (True, self.fileName)
@@ -2450,7 +2459,7 @@
         self.handleRenamed(fn)
         if not self.inFileRenamed:
             self.inFileRenamed = True
-            self.emit(SIGNAL('editorRenamed'), self.fileName)
+            self.editorRenamed.emit(self.fileName)
             self.inFileRenamed = False
     
     ############################################################################
@@ -3520,13 +3529,13 @@
         if self.autoCompletionThreshold() > 0:
             self.setAutoCompletionThreshold(0)
         self.__acHookFunction = func
-        self.connect(self, SIGNAL("SCN_CHARADDED(int)"), self.__charAdded)
+        self.SCN_CHARADDED.connect(self.__charAdded)
     
     def unsetAutoCompletionHook(self):
         """
         Public method to unset a previously installed autocompletion hook.
         """
-        self.disconnect(self, SIGNAL("SCN_CHARADDED(int)"), self.__charAdded)
+        self.SCN_CHARADDED.disconnect(self.__charAdded)
         self.__acHookFunction = None
         if self.autoCompletionThreshold() == 0:
             self.setAutoCompletionThreshold(
@@ -3799,7 +3808,7 @@
         self.menuActs["SpellCheckRemove"].setEnabled(
             spellingAvailable and self.spellingMenuPos >= 0)
         
-        self.emit(SIGNAL("showMenu"), "Main", self.menu,  self)
+        self.showMenu.emit("Main", self.menu,  self)
         
     def __showContextMenuAutocompletion(self):
         """
@@ -3811,7 +3820,7 @@
         self.menuActs["acAPIDocument"].setEnabled(self.acAPI)
         self.menuActs["calltip"].setEnabled(self.acAPI)
         
-        self.emit(SIGNAL("showMenu"), "Autocompletion", self.autocompletionMenu,  self)
+        self.showMenu.emit("Autocompletion", self.autocompletionMenu,  self)
         
     def __showContextMenuShow(self):
         """
@@ -3854,11 +3863,11 @@
         self.profileMenuAct.setEnabled(prEnable)
         self.coverageMenuAct.setEnabled(coEnable)
         self.coverageShowAnnotationMenuAct.setEnabled(\
-            coEnable and not self.coverageMarkersShown)
+            coEnable and not self.__coverageMarkersShown)
         self.coverageHideAnnotationMenuAct.setEnabled(\
-            self.coverageMarkersShown)
-        
-        self.emit(SIGNAL("showMenu"), "Show", self.showMenu,  self)
+            self.__coverageMarkersShown)
+        
+        self.showMenu.emit("Show", self.menuShow,  self)
         
     def __showContextMenuGraphics(self):
         """
@@ -3869,7 +3878,7 @@
         else:
             self.applicationDiagramMenuAct.setEnabled(False)
         
-        self.emit(SIGNAL("showMenu"), "Graphics", self.graphicsMenu,  self)
+        self.showMenu.emit("Graphics", self.graphicsMenu,  self)
         
     def __showContextMenuMargin(self):
         """
@@ -3957,13 +3966,13 @@
             self.marginMenuActs["PreviousTaskMarker"].setEnabled(False)
             self.marginMenuActs["NextTaskMarker"].setEnabled(False)
         
-        self.emit(SIGNAL("showMenu"), "Margin", self.sender(),  self)
+        self.showMenu.emit("Margin", self.sender(),  self)
         
     def __showContextMenuChecks(self):
         """
         Private slot handling the aboutToShow signal of the checks context menu.
         """
-        self.emit(SIGNAL("showMenu"), "Checks", self.checksMenu,  self)
+        self.showMenu.emit("Checks", self.checksMenu,  self)
         
     def __contextSave(self):
         """
@@ -4199,8 +4208,8 @@
                 for line in missing:
                     handle = self.markerAdd(line - 1, self.notcovered)
                     self.notcoveredMarkers.append(handle)
-                    self.emit(SIGNAL('coverageMarkersShown'), True)
-                    self.coverageMarkersShown = True
+                    self.coverageMarkersShown.emit(True)
+                    self.__coverageMarkersShown = True
             else:
                 QMessageBox.information(None,
                     self.trUtf8("Show Code Coverage Annotations"),
@@ -4217,8 +4226,8 @@
         for handle in self.notcoveredMarkers:
             self.markerDeleteHandle(handle)
         self.notcoveredMarkers = []
-        self.emit(SIGNAL('coverageMarkersShown'), False)
-        self.coverageMarkersShown = False
+        self.coverageMarkersShown.emit(False)
+        self.__coverageMarkersShown = False
         
     def hasCoverageMarkers(self):
         """
@@ -4351,13 +4360,13 @@
             if not (markers & (1 << self.syntaxerror)):
                 handle = self.markerAdd(line - 1, self.syntaxerror)
                 self.syntaxerrors[handle] = msg
-                self.emit(SIGNAL('syntaxerrorToggled'), self)
+                self.syntaxerrorToggled.emit(self)
         else:
             for handle in list(self.syntaxerrors.keys()):
                 if self.markerLine(handle) == line - 1:
                     del self.syntaxerrors[handle]
                     self.markerDeleteHandle(handle)
-                    self.emit(SIGNAL('syntaxerrorToggled'), self)
+                    self.syntaxerrorToggled.emit(self)
         
     def getSyntaxErrors(self):
         """
@@ -4440,7 +4449,7 @@
             if not (markers & (1 << self.warning)):
                 handle = self.markerAdd(line - 1, self.warning)
                 self.warnings[handle] = [msg]
-                self.emit(SIGNAL('syntaxerrorToggled'), self)
+                self.syntaxerrorToggled.emit(self)
             else:
                 for handle in list(self.warnings.keys()):
                     if self.markerLine(handle) == line - 1 and \
@@ -4451,7 +4460,7 @@
                 if self.markerLine(handle) == line - 1:
                     del self.warnings[handle]
                     self.markerDeleteHandle(handle)
-                    self.emit(SIGNAL('syntaxerrorToggled'), self)
+                    self.syntaxerrorToggled.emit(self)
     
     def getFlakesWarnings(self):
         """
@@ -4516,7 +4525,7 @@
         for handle in self.warnings:
             self.markerDeleteHandle(handle)
         self.warnings = {}
-        self.emit(SIGNAL('syntaxerrorToggled'), self)
+        self.syntaxerrorToggled.emit(self)
     
     def __showFlakesWarning(self, line = -1):
         """
@@ -4714,16 +4723,16 @@
         Public method to undo the last recorded change.
         """
         QsciScintillaCompat.undo(self)
-        self.emit(SIGNAL('undoAvailable'), self.isUndoAvailable())
-        self.emit(SIGNAL('redoAvailable'), self.isRedoAvailable())
+        self.undoAvailable.emit(self.isUndoAvailable())
+        self.redoAvailable.emit(self.isRedoAvailable())
         
     def redo(self):
         """
         Public method to redo the last recorded change.
         """
         QsciScintillaCompat.redo(self)
-        self.emit(SIGNAL('undoAvailable'), self.isUndoAvailable())
-        self.emit(SIGNAL('redoAvailable'), self.isRedoAvailable())
+        self.undoAvailable.emit(self.isUndoAvailable())
+        self.redoAvailable.emit(self.isRedoAvailable())
         
     def close(self, alsoDelete = False):
         """
@@ -4757,8 +4766,7 @@
         self.breakpointModel.rowsInserted.disconnect(
             self.__addBreakPoints)
         
-        self.disconnect(self.project, SIGNAL("projectPropertiesChanged"), 
-                        self.__projectPropertiesChanged)
+        self.project.projectPropertiesChanged.disconnect(self.__projectPropertiesChanged)
         
         if self.spell:
             self.spell.stopIncrementalCheck()
@@ -4901,7 +4909,7 @@
             cap = self.trUtf8("{0} (ro)".format(cap))
         self.setReadOnly(readOnly)
         self.setWindowTitle(cap)
-        self.emit(SIGNAL('captionChanged'), cap, self)
+        self.captionChanged.emit(cap, self)
         
     def refresh(self):
         """
@@ -4943,7 +4951,7 @@
                 self.toggleBookmark(bm)
         self.__restoreBreakpoints()
         
-        self.emit(SIGNAL('editorSaved'), self.fileName)
+        self.editorSaved.emit(self.fileName)
         self.__autoSyntaxCheck()
         
     def setMonospaced(self, on):
@@ -5055,7 +5063,7 @@
         """
         Private slot handling the aboutToShow signal of the resources context menu.
         """
-        self.emit(SIGNAL("showMenu"), "Resources", self.resourcesMenu,  self)
+        self.showMenu.emit("Resources", self.resourcesMenu,  self)
         
     def __addFileResource(self):
         """
@@ -5302,8 +5310,7 @@
             pwl, pel = self.project.getProjectDictionaries()
             self.__setSpellingLanguage(self.project.getProjectSpellLanguage(), 
                                        pwl = pwl, pel = pel)
-            self.connect(self.project, SIGNAL("projectPropertiesChanged"), 
-                         self.__projectPropertiesChanged)
+            self.project.projectPropertiesChanged.connect(self.__projectPropertiesChanged)
     
     #######################################################################
     ## Spellchecking related methods
@@ -5331,8 +5338,7 @@
                 self.spell = SpellChecker(self, self.spellingIndicator, 
                                           checkRegion = self.isSpellCheckRegion)
             self.setSpellingForProject()
-            self.connect(self.project, SIGNAL("projectPropertiesChanged"),
-                         self.__projectPropertiesChanged)
+            self.project.projectPropertiesChanged.connect(self.__projectPropertiesChanged)
             self.spell.setMinimumWordSize(
                 Preferences.getEditor("SpellCheckingMinWordSize"))
             
@@ -5358,10 +5364,10 @@
         Public method to set the automatic spell checking.
         """
         if Preferences.getEditor("AutoSpellCheckingEnabled"):
-            self.connect(self, SIGNAL("SCN_CHARADDED(int)"), self.__spellCharAdded)
+            self.SCN_CHARADDED.connect(self.__spellCharAdded)
             self.spell.checkDocumentIncrementally()
         else:
-            self.disconnect(self, SIGNAL("SCN_CHARADDED(int)"), self.__spellCharAdded)
+            self.SCN_CHARADDED.disconnect(self.__spellCharAdded)
             self.clearAllIndicators(self.spellingIndicator)
     
     def isSpellCheckRegion(self, pos):
@@ -5444,7 +5450,7 @@
         self.spellingMenu.addAction(self.trUtf8("Ignore All"), 
             self.__ignoreSpellingAlways)
         
-        self.emit(SIGNAL("showMenu"), "Spelling", self.spellingMenu,  self)
+        self.showMenu.emit("Spelling", self.spellingMenu,  self)
     
     def __contextMenuSpellingTriggered(self, action):
         """

eric ide

mercurial