Continued porting signal/slot usage to the new API.

Thu, 12 Aug 2010 16:11:13 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 12 Aug 2010 16:11:13 +0200
changeset 500
c3abc7895a01
parent 499
622ab17a68d5
child 501
5c615a85241a

Continued porting signal/slot usage to the new API.

Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py file | annotate | diff | comparison | revisions
Plugins/DocumentationPlugins/Ericapi/EricapiExecDialog.py file | annotate | diff | comparison | revisions
Plugins/DocumentationPlugins/Ericdoc/EricdocExecDialog.py file | annotate | diff | comparison | revisions
Plugins/PluginSyntaxChecker.py file | annotate | diff | comparison | revisions
Plugins/PluginTabnanny.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnBlameDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnLogBrowserDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnLogDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnPropListDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnRepoBrowserDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnStatusDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnTagBranchListDialog.py file | annotate | diff | comparison | revisions
Plugins/ViewManagerPlugins/Listspace/Listspace.py file | annotate | diff | comparison | revisions
Plugins/ViewManagerPlugins/MdiArea/MdiArea.py file | annotate | diff | comparison | revisions
Plugins/ViewManagerPlugins/Tabview/Tabview.py file | annotate | diff | comparison | revisions
Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py file | annotate | diff | comparison | revisions
Plugins/WizardPlugins/PyRegExpWizard/PyRegExpWizardCharactersDialog.py file | annotate | diff | comparison | revisions
Plugins/WizardPlugins/QRegExpWizard/QRegExpWizardCharactersDialog.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationDialog.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorAPIsPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorHighlightingStylesPage.py file | annotate | diff | comparison | revisions
Preferences/PreferencesLexer.py file | annotate | diff | comparison | revisions
Preferences/ShortcutDialog.py file | annotate | diff | comparison | revisions
Preferences/ShortcutsDialog.py file | annotate | diff | comparison | revisions
Project/Project.py file | annotate | diff | comparison | revisions
Project/ProjectBaseBrowser.py file | annotate | diff | comparison | revisions
Project/ProjectBrowser.py file | annotate | diff | comparison | revisions
Project/ProjectBrowserModel.py file | annotate | diff | comparison | revisions
Project/ProjectFormsBrowser.py file | annotate | diff | comparison | revisions
Project/ProjectInterfacesBrowser.py file | annotate | diff | comparison | revisions
Project/ProjectOthersBrowser.py file | annotate | diff | comparison | revisions
Project/ProjectResourcesBrowser.py file | annotate | diff | comparison | revisions
Project/ProjectSourcesBrowser.py file | annotate | diff | comparison | revisions
Project/ProjectTranslationsBrowser.py file | annotate | diff | comparison | revisions
PyUnit/UnittestDialog.py file | annotate | diff | comparison | revisions
QScintilla/APIsManager.py file | annotate | diff | comparison | revisions
QScintilla/Editor.py file | annotate | diff | comparison | revisions
QScintilla/MiniEditor.py file | annotate | diff | comparison | revisions
QScintilla/SearchReplaceWidget.py file | annotate | diff | comparison | revisions
QScintilla/Shell.py file | annotate | diff | comparison | revisions
QScintilla/Terminal.py file | annotate | diff | comparison | revisions
QScintilla/TypingCompleters/CompleterBase.py file | annotate | diff | comparison | revisions
SqlBrowser/SqlBrowser.py file | annotate | diff | comparison | revisions
SqlBrowser/SqlBrowserWidget.py file | annotate | diff | comparison | revisions
SqlBrowser/SqlConnectionWidget.py file | annotate | diff | comparison | revisions
Tasks/TaskViewer.py file | annotate | diff | comparison | revisions
Templates/TemplateViewer.py file | annotate | diff | comparison | revisions
Tools/TRPreviewer.py file | annotate | diff | comparison | revisions
Tools/TRSingleApplication.py file | annotate | diff | comparison | revisions
Tools/TrayStarter.py file | annotate | diff | comparison | revisions
Tools/UIPreviewer.py file | annotate | diff | comparison | revisions
UI/Browser.py file | annotate | diff | comparison | revisions
UI/CompareDialog.py file | annotate | diff | comparison | revisions
UI/DiffDialog.py file | annotate | diff | comparison | revisions
UI/FindFileDialog.py file | annotate | diff | comparison | revisions
UI/FindFileNameDialog.py file | annotate | diff | comparison | revisions
UI/UserInterface.py file | annotate | diff | comparison | revisions
Utilities/SingleApplication.py file | annotate | diff | comparison | revisions
Utilities/Startup.py file | annotate | diff | comparison | revisions
VCS/StatusMonitorLed.py file | annotate | diff | comparison | revisions
VCS/StatusMonitorThread.py file | annotate | diff | comparison | revisions
VCS/VersionControl.py file | annotate | diff | comparison | revisions
ViewManager/ViewManager.py file | annotate | diff | comparison | revisions
--- a/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -86,7 +86,7 @@
             itm.setIcon(0, UI.PixmapCache.getIcon("syntaxError.png"))
 ##        itm.setToolTip(0, file)
         itm.setData(0, self.filenameRole, file)
-        itm.setData(0, self.lineRole, line)
+        itm.setData(0, self.lineRole, int(line))
         itm.setData(0, self.errorRole, error)
         itm.setData(0, self.warningRole, isWarning)
         
--- a/Plugins/DocumentationPlugins/Ericapi/EricapiExecDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/DocumentationPlugins/Ericapi/EricapiExecDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -108,7 +108,7 @@
         if self.process is not None and \
            self.process.state() != QProcess.NotRunning:
             self.process.terminate()
-            QTimer.singleShot(2000, self.process, SLOT('kill()'))
+            QTimer.singleShot(2000, self.process.kill)
             self.process.waitForFinished(3000)
         
         self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
--- a/Plugins/DocumentationPlugins/Ericdoc/EricdocExecDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/DocumentationPlugins/Ericdoc/EricdocExecDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -108,7 +108,7 @@
         if self.process is not None and \
            self.process.state() != QProcess.NotRunning:
             self.process.terminate()
-            QTimer.singleShot(2000, self.process, SLOT('kill()'))
+            QTimer.singleShot(2000, self.process.kill)
             self.process.waitForFinished(3000)
         
         self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
--- a/Plugins/PluginSyntaxChecker.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/PluginSyntaxChecker.py	Thu Aug 12 16:11:13 2010 +0200
@@ -162,7 +162,8 @@
                     """<b>Check Syntax...</b>"""
                     """<p>This checks Python files for syntax errors.</p>"""
                 ))
-                self.__projectBrowserAct.triggered[()].connect(self.__projectBrowserSyntaxCheck)
+                self.__projectBrowserAct.triggered[()].connect(
+                    self.__projectBrowserSyntaxCheck)
             if not self.__projectBrowserAct in menu.actions():
                 menu.addAction(self.__projectBrowserAct)
     
--- a/Plugins/PluginTabnanny.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/PluginTabnanny.py	Thu Aug 12 16:11:13 2010 +0200
@@ -165,7 +165,8 @@
                     """<p>This checks Python files"""
                     """ for bad indentations using tabnanny.</p>"""
                 ))
-                self.__projectBrowserAct.triggered[()].connect(self.__projectBrowserTabnanny)
+                self.__projectBrowserAct.triggered[()].connect(
+                    self.__projectBrowserTabnanny)
             if not self.__projectBrowserAct in menu.actions():
                 menu.addAction(self.__projectBrowserAct)
     
--- a/Plugins/VcsPlugins/vcsSubversion/SvnBlameDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnBlameDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -58,7 +58,7 @@
         if self.process is not None and \
            self.process.state() != QProcess.NotRunning:
             self.process.terminate()
-            QTimer.singleShot(2000, self.process, SLOT('kill()'))
+            QTimer.singleShot(2000, self.process.kill)
             self.process.waitForFinished(3000)
         
         e.accept()
@@ -106,7 +106,7 @@
         if self.process is not None and \
            self.process.state() != QProcess.NotRunning:
             self.process.terminate()
-            QTimer.singleShot(2000, self.process, SLOT('kill()'))
+            QTimer.singleShot(2000, self.process.kill)
             self.process.waitForFinished(3000)
         
         self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
--- a/Plugins/VcsPlugins/vcsSubversion/SvnDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -50,7 +50,7 @@
         if self.proc is not None and \
            self.proc.state() != QProcess.NotRunning:
             self.proc.terminate()
-            QTimer.singleShot(2000, self.proc, SLOT('kill()'))
+            QTimer.singleShot(2000, self.proc.kill)
             self.proc.waitForFinished(3000)
         
         self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
--- a/Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -65,7 +65,7 @@
         if self.process is not None and \
            self.process.state() != QProcess.NotRunning:
             self.process.terminate()
-            QTimer.singleShot(2000, self.process, SLOT('kill()'))
+            QTimer.singleShot(2000, self.process.kill)
             self.process.waitForFinished(3000)
         
         e.accept()
--- a/Plugins/VcsPlugins/vcsSubversion/SvnLogBrowserDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnLogBrowserDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -99,7 +99,7 @@
         if self.process is not None and \
            self.process.state() != QProcess.NotRunning:
             self.process.terminate()
-            QTimer.singleShot(2000, self.process, SLOT('kill()'))
+            QTimer.singleShot(2000, self.process.kill)
             self.process.waitForFinished(3000)
         
         e.accept()
@@ -279,7 +279,7 @@
         if self.process is not None and \
            self.process.state() != QProcess.NotRunning:
             self.process.terminate()
-            QTimer.singleShot(2000, self.process, SLOT('kill()'))
+            QTimer.singleShot(2000, self.process.kill)
             self.process.waitForFinished(3000)
         
         QApplication.restoreOverrideCursor()
--- a/Plugins/VcsPlugins/vcsSubversion/SvnLogDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnLogDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -84,7 +84,7 @@
         if self.process is not None and \
            self.process.state() != QProcess.NotRunning:
             self.process.terminate()
-            QTimer.singleShot(2000, self.process, SLOT('kill()'))
+            QTimer.singleShot(2000, self.process.kill)
             self.process.waitForFinished(3000)
         
         e.accept()
--- a/Plugins/VcsPlugins/vcsSubversion/SvnPropListDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnPropListDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -80,7 +80,7 @@
         if self.process is not None and \
            self.process.state() != QProcess.NotRunning:
             self.process.terminate()
-            QTimer.singleShot(2000, self.process, SLOT('kill()'))
+            QTimer.singleShot(2000, self.process.kill)
             self.process.waitForFinished(3000)
         
         e.accept()
@@ -128,7 +128,7 @@
         if self.process is not None and \
            self.process.state() != QProcess.NotRunning:
             self.process.terminate()
-            QTimer.singleShot(2000, self.process, SLOT('kill()'))
+            QTimer.singleShot(2000, self.process.kill)
             self.process.waitForFinished(3000)
         
         self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
--- a/Plugins/VcsPlugins/vcsSubversion/SvnRepoBrowserDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnRepoBrowserDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -68,7 +68,7 @@
         if self.process is not None and \
            self.process.state() != QProcess.NotRunning:
             self.process.terminate()
-            QTimer.singleShot(2000, self.process, SLOT('kill()'))
+            QTimer.singleShot(2000, self.process.kill)
             self.process.waitForFinished(3000)
         
         e.accept()
@@ -335,7 +335,7 @@
         if self.process is not None and \
            self.process.state() != QProcess.NotRunning:
             self.process.terminate()
-            QTimer.singleShot(2000, self.process, SLOT('kill()'))
+            QTimer.singleShot(2000, self.process.kill)
             self.process.waitForFinished(3000)
         
         self.inputGroup.setEnabled(False)
--- a/Plugins/VcsPlugins/vcsSubversion/SvnStatusDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnStatusDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -246,7 +246,7 @@
         if self.process is not None and \
            self.process.state() != QProcess.NotRunning:
             self.process.terminate()
-            QTimer.singleShot(2000, self.process, SLOT('kill()'))
+            QTimer.singleShot(2000, self.process.kill)
             self.process.waitForFinished(3000)
         
         e.accept()
@@ -317,7 +317,7 @@
         if self.process is not None and \
            self.process.state() != QProcess.NotRunning:
             self.process.terminate()
-            QTimer.singleShot(2000, self.process, SLOT('kill()'))
+            QTimer.singleShot(2000, self.process.kill)
             self.process.waitForFinished(3000)
         
         self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
--- a/Plugins/VcsPlugins/vcsSubversion/SvnTagBranchListDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnTagBranchListDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -55,7 +55,7 @@
         if self.process is not None and \
            self.process.state() != QProcess.NotRunning:
             self.process.terminate()
-            QTimer.singleShot(2000, self.process, SLOT('kill()'))
+            QTimer.singleShot(2000, self.process.kill)
             self.process.waitForFinished(3000)
         
         e.accept()
@@ -157,7 +157,7 @@
         if self.process is not None and \
            self.process.state() != QProcess.NotRunning:
             self.process.terminate()
-            QTimer.singleShot(2000, self.process, SLOT('kill()'))
+            QTimer.singleShot(2000, self.process.kill)
             self.process.waitForFinished(3000)
         
         self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
--- a/Plugins/ViewManagerPlugins/Listspace/Listspace.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/ViewManagerPlugins/Listspace/Listspace.py	Thu Aug 12 16:11:13 2010 +0200
@@ -122,14 +122,33 @@
     
     @signal changeCaption(string) emitted if a change of the caption is necessary
     @signal editorChanged(string) emitted when the current editor has changed
+    @signal lastEditorClosed() emitted after the last editor window was closed
+    @signal editorOpened(string) emitted after an editor window was opened
+    @signal editorOpenedEd(editor) emitted after an editor window was opened
+    @signal editorClosed(string) emitted just before an editor window gets closed
+    @signal editorClosedEd(editor) emitted just before an editor window gets closed
+    @signal editorSaved(string) emitted after an editor window was saved
+    @signal checkActions(editor) emitted when some actions should be checked
+            for their status
+    @signal cursorChanged(editor) emitted after the cursor position of the active
+            window has changed
+    @signal breakpointToggled(editor) emitted when a breakpoint is toggled.
+    @signal bookmarkToggled(editor) emitted when a bookmark is toggled.
     """
     changeCaption = pyqtSignal(str)
     editorChanged = pyqtSignal(str)
+    
+    lastEditorClosed = pyqtSignal()
     editorOpened = pyqtSignal(str)
-    lastEditorClosed = pyqtSignal()
+    editorOpenedEd = pyqtSignal(Editor)
+    editorClosed = pyqtSignal(str)
+    editorClosedEd = pyqtSignal(Editor)
+    editorSaved = pyqtSignal(str)
     checkActions = pyqtSignal(Editor)
     cursorChanged = pyqtSignal(Editor)
     breakpointToggled = pyqtSignal(Editor)
+    bookmarkToggled = pyqtSignal(Editor)
+    syntaxerrorToggled = pyqtSignal(Editor)
     
     def __init__(self, parent):
         """
--- a/Plugins/ViewManagerPlugins/MdiArea/MdiArea.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/ViewManagerPlugins/MdiArea/MdiArea.py	Thu Aug 12 16:11:13 2010 +0200
@@ -25,13 +25,32 @@
     Class implementing the mdi area viewmanager class.
     
     @signal editorChanged(string) emitted when the current editor has changed
+    @signal lastEditorClosed() emitted after the last editor window was closed
+    @signal editorOpened(string) emitted after an editor window was opened
+    @signal editorOpenedEd(editor) emitted after an editor window was opened
+    @signal editorClosed(string) emitted just before an editor window gets closed
+    @signal editorClosedEd(editor) emitted just before an editor window gets closed
+    @signal editorSaved(string) emitted after an editor window was saved
+    @signal checkActions(editor) emitted when some actions should be checked
+            for their status
+    @signal cursorChanged(editor) emitted after the cursor position of the active
+            window has changed
+    @signal breakpointToggled(editor) emitted when a breakpoint is toggled.
+    @signal bookmarkToggled(editor) emitted when a bookmark is toggled.
     """
     editorChanged = pyqtSignal(str)
+    
+    lastEditorClosed = pyqtSignal()
     editorOpened = pyqtSignal(str)
-    lastEditorClosed = pyqtSignal()
+    editorOpenedEd = pyqtSignal(Editor)
+    editorClosed = pyqtSignal(str)
+    editorClosedEd = pyqtSignal(Editor)
+    editorSaved = pyqtSignal(str)
     checkActions = pyqtSignal(Editor)
     cursorChanged = pyqtSignal(Editor)
     breakpointToggled = pyqtSignal(Editor)
+    bookmarkToggled = pyqtSignal(Editor)
+    syntaxerrorToggled = pyqtSignal(Editor)
     
     def __init__(self, parent):
         """
--- a/Plugins/ViewManagerPlugins/Tabview/Tabview.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/ViewManagerPlugins/Tabview/Tabview.py	Thu Aug 12 16:11:13 2010 +0200
@@ -43,6 +43,11 @@
     @signal tabCopyRequested(int, int) emitted to signal a clone request giving
         the old and new index position
     """
+    tabMoveRequested = pyqtSignal(int, int)
+    tabRelocateRequested = pyqtSignal(int, int, int)
+    tabCopyRequested = pyqtSignal(int, int, int)
+    tabCopyRequested = pyqtSignal(int, int)
+    
     def __init__(self, parent = None):
         """
         Constructor
@@ -118,20 +123,18 @@
         if oldID != id(self):
             parentID = mimeData.data("tabwidget-id").toLong()[0]
             if event.proposedAction() == Qt.MoveAction:
-                self.emit(SIGNAL("tabRelocateRequested(long, int, int)"), 
-                          parentID, fromIndex, toIndex)
+                self.tabRelocateRequested.emit(parentID, fromIndex, toIndex)
                 event.acceptProposedAction()
             elif event.proposedAction() == Qt.CopyAction:
-                self.emit(SIGNAL("tabCopyRequested(long, int, int)"), 
-                          parentID, fromIndex, toIndex)
+                self.tabCopyRequested.emit(parentID, fromIndex, toIndex)
                 event.acceptProposedAction()
         else:
             if fromIndex != toIndex:
                 if event.proposedAction() == Qt.MoveAction:
-                    self.emit(SIGNAL("tabMoveRequested(int, int)"), fromIndex, toIndex)
+                    self.tabMoveRequested.emit(fromIndex, toIndex)
                     event.acceptProposedAction()
                 elif event.proposedAction() == Qt.CopyAction:
-                    self.emit(SIGNAL("tabCopyRequested(int, int)"), fromIndex, toIndex)
+                    self.tabCopyRequested.emit(fromIndex, toIndex)
                     event.acceptProposedAction()
         E5WheelTabBar.dropEvent(self, event)
 
@@ -151,14 +154,10 @@
         self.__tabBar = TabBar(self)
         self.setTabBar(self.__tabBar)
         
-        self.connect(self.__tabBar, SIGNAL("tabMoveRequested(int, int)"), 
-                     self.moveTab)
-        self.connect(self.__tabBar, SIGNAL("tabRelocateRequested(long, int, int)"), 
-                     self.relocateTab)
-        self.connect(self.__tabBar, SIGNAL("tabCopyRequested(long, int, int)"), 
-                     self.copyTabOther)
-        self.connect(self.__tabBar, SIGNAL("tabCopyRequested(int, int)"), 
-                     self.copyTab)
+        self.__tabBar.tabMoveRequested.connect(self.moveTab)
+        self.__tabBar.tabRelocateRequested.connect(self.relocateTab)
+        self.__tabBar.tabCopyRequested.connect(self.copyTabOther)
+        self.__tabBar.tabCopyRequested.connect(self.copyTab)
         
         self.vm = vm
         self.editors = []
@@ -173,8 +172,7 @@
         
         self.__navigationMenu = QMenu(self)
         self.__navigationMenu.aboutToShow.connect(self.__showNavigationMenu)
-        self.connect(self.__navigationMenu, SIGNAL("triggered(QAction*)"), 
-                     self.__navigationMenuTriggered)
+        self.__navigationMenu.triggered.connect(self.__navigationMenuTriggered)
         
         self.navigationButton = QToolButton(self)
         self.navigationButton.setIcon(UI.PixmapCache.getIcon("1downarrow.png"))
@@ -193,8 +191,7 @@
             self.closeButton.clicked[bool].connect(self.__closeButtonClicked)
             self.rightCornerWidgetLayout.addWidget(self.closeButton)
         else:
-            self.connect(self, SIGNAL("tabCloseRequested(int)"), 
-                self.__closeRequested)
+            self.tabCloseRequested.connect(self.__closeRequested)
             self.closeButton = None
         
         self.setCornerWidget(self.rightCornerWidget, Qt.TopRightCorner)
@@ -325,8 +322,7 @@
         
         if not editor in self.editors:
             self.editors.append(editor)
-            self.connect(editor, SIGNAL('captionChanged'),
-                self.__captionChange)
+            editor.captionChanged.connect(self.__captionChange)
         
         emptyIndex = self.indexOf(self.emptyLabel)
         if emptyIndex > -1:
@@ -352,8 +348,7 @@
         
         if not editor in self.editors:
             self.editors.append(editor)
-            self.connect(editor, SIGNAL('captionChanged'),
-                self.__captionChange)
+            editor.captionChanged.connect(self.__captionChange)
         
         emptyIndex = self.indexOf(self.emptyLabel)
         if emptyIndex > -1:
@@ -399,8 +394,7 @@
             self.removeTab(index)
         
         if isinstance(object, QScintilla.Editor.Editor):
-            self.disconnect(object, SIGNAL('captionChanged'),
-                self.__captionChange)
+            object.captionChanged.disconnect(self.__captionChange)
             self.editors.remove(object)
         
         if not self.editors:
@@ -621,12 +615,33 @@
     
     @signal changeCaption(string) emitted if a change of the caption is necessary
     @signal editorChanged(string) emitted when the current editor has changed
+    @signal lastEditorClosed() emitted after the last editor window was closed
+    @signal editorOpened(string) emitted after an editor window was opened
+    @signal editorOpenedEd(editor) emitted after an editor window was opened
+    @signal editorClosed(string) emitted just before an editor window gets closed
+    @signal editorClosedEd(editor) emitted just before an editor window gets closed
+    @signal editorSaved(string) emitted after an editor window was saved
+    @signal checkActions(editor) emitted when some actions should be checked
+            for their status
+    @signal cursorChanged(editor) emitted after the cursor position of the active
+            window has changed
+    @signal breakpointToggled(editor) emitted when a breakpoint is toggled.
+    @signal bookmarkToggled(editor) emitted when a bookmark is toggled.
     """
+    changeCaption = pyqtSignal(str)
+    editorChanged = pyqtSignal(str)
+    
+    lastEditorClosed = pyqtSignal()
     editorOpened = pyqtSignal(str)
-    lastEditorClosed = pyqtSignal()
+    editorOpenedEd = pyqtSignal(Editor)
+    editorClosed = pyqtSignal(str)
+    editorClosedEd = pyqtSignal(Editor)
+    editorSaved = pyqtSignal(str)
     checkActions = pyqtSignal(Editor)
     cursorChanged = pyqtSignal(Editor)
     breakpointToggled = pyqtSignal(Editor)
+    bookmarkToggled = pyqtSignal(Editor)
+    syntaxerrorToggled = pyqtSignal(Editor)
     
     def __init__(self, parent):
         """
@@ -645,8 +660,7 @@
         self.tabWidgets.append(tw)
         self.currentTabWidget = tw
         self.currentTabWidget.showIndicator(True)
-        self.connect(tw, SIGNAL('currentChanged(int)'),
-            self.__currentChanged)
+        tw.currentChanged.connect(self.__currentChanged)
         tw.installEventFilter(self)
         tw.tabBar().installEventFilter(self)
         self.setOrientation(Qt.Vertical)
@@ -726,10 +740,10 @@
         aw = self.activeWindow()
         fn = aw and aw.getFileName() or None
         if fn:
-            self.emit(SIGNAL('changeCaption'), fn)
-            self.emit(SIGNAL('editorChanged'), fn)
+            self.changeCaption.emit(fn)
+            self.editorChanged.emit(fn)
         else:
-            self.emit(SIGNAL('changeCaption'), "")
+            self.changeCaption.emit("")
         
     def _addView(self, win, fn = None, noName = ""):
         """
@@ -761,10 +775,10 @@
         win.show()
         win.setFocus()
         if fn:
-            self.emit(SIGNAL('changeCaption'), fn)
-            self.emit(SIGNAL('editorChanged'), fn)
+            self.changeCaption.emit(fn)
+            self.editorChanged.emit(fn)
         else:
-            self.emit(SIGNAL('changeCaption'), "")
+            self.changeCaption.emit("")
         
     def insertView(self, win, tabWidget, index, fn = None, noName = ""):
         """
@@ -797,10 +811,10 @@
         win.show()
         win.setFocus()
         if fn:
-            self.emit(SIGNAL('changeCaption'), fn)
-            self.emit(SIGNAL('editorChanged'), fn)
+            self.changeCaption.emit(fn)
+            self.editorChanged.emit(fn)
         else:
-            self.emit(SIGNAL('changeCaption'), "")
+            self.changeCaption.emit("")
         
         self._modificationStatusChanged(win.isModified(), win)
         self._checkActions(win)
@@ -860,7 +874,7 @@
         index = self.currentTabWidget.indexOf(editor)
         self.currentTabWidget.setTabText(index, tabName)
         self.currentTabWidget.setTabToolTip(index, newName)
-        self.emit(SIGNAL('changeCaption'), newName)
+        self.changeCaption.emit(newName)
 
     def _modificationStatusChanged(self, m, editor):
         """
@@ -913,8 +927,7 @@
         self.currentTabWidget.showIndicator(False)
         self.currentTabWidget = self.tabWidgets[-1]
         self.currentTabWidget.showIndicator(True)
-        self.connect(tw, SIGNAL('currentChanged(int)'),
-            self.__currentChanged)
+        tw.currentChanged.connect(self.__currentChanged)
         tw.installEventFilter(self)
         tw.tabBar().installEventFilter(self)
         if self.orientation() == Qt.Horizontal:
@@ -1019,11 +1032,11 @@
         editor.setFocus()
         fn = editor.getFileName()
         if fn:
-            self.emit(SIGNAL('changeCaption'), fn)
+            self.changeCaption.emit(fn)
             if not self.__inRemoveView:
-                self.emit(SIGNAL('editorChanged'), fn)
+                self.editorChanged.emit(fn)
         else:
-            self.emit(SIGNAL('changeCaption'), "")
+            self.changeCaption.emit("")
         
     def eventFilter(self, watched, event):
         """
@@ -1059,11 +1072,11 @@
                 aw.setFocus()
                 fn = aw.getFileName()
                 if fn:
-                    self.emit(SIGNAL('changeCaption'), fn)
+                    self.changeCaption.emit(fn)
                     if switched:
-                        self.emit(SIGNAL('editorChanged'), fn)
+                        self.editorChanged.emit(fn)
                 else:
-                    self.emit(SIGNAL('changeCaption'), "")
+                    self.changeCaption.emit("")
         
         return False
         
--- a/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -35,18 +35,12 @@
         self.eStartWithCompleter = E5FileCompleter(self.eStartWith)
         self.eWorkDirCompleter = E5DirCompleter(self.eWorkDir)
         
-        self.connect(self.rSaveFile, SIGNAL("toggled(bool)"), 
-            self.__toggleConfirmCheckBox)
-        self.connect(self.rfSaveFile, SIGNAL("toggled(bool)"), 
-            self.__toggleConfirmCheckBox)
-        self.connect(self.rDirectory, SIGNAL("toggled(bool)"), 
-            self.__toggleGroupsAndTest)
-        self.connect(self.cStartWith, SIGNAL("toggled(bool)"), 
-            self.__toggleGroupsAndTest)
-        self.connect(self.cWorkDir, SIGNAL("toggled(bool)"), 
-            self.__toggleGroupsAndTest)
-        self.connect(self.cFilters, SIGNAL("toggled(bool)"), 
-            self.__toggleGroupsAndTest)
+        self.rSaveFile.toggled[bool].connect(self.__toggleConfirmCheckBox)
+        self.rfSaveFile.toggled[bool].connect(self.__toggleConfirmCheckBox)
+        self.rDirectory.toggled[bool].connect(self.__toggleGroupsAndTest)
+        self.cStartWith.toggled[bool].connect(self.__toggleGroupsAndTest)
+        self.cWorkDir.toggled[bool].connect(self.__toggleGroupsAndTest)
+        self.cFilters.toggled[bool].connect(self.__toggleGroupsAndTest)
         
         self.bTest = \
             self.buttonBox.addButton(self.trUtf8("Test"), QDialogButtonBox.ActionRole)
--- a/Plugins/WizardPlugins/PyRegExpWizard/PyRegExpWizardCharactersDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/WizardPlugins/PyRegExpWizard/PyRegExpWizardCharactersDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -144,8 +144,8 @@
         hboxLayout.addWidget(le2)
         self.singlesItemsBoxLayout.addWidget(hbox)
         
-        self.connect(cb1, SIGNAL('activated(int)'), self.__singlesCharTypeSelected)
-        self.connect(cb2, SIGNAL('activated(int)'), self.__singlesCharTypeSelected)
+        cb1.activated[int].connect(self.__singlesCharTypeSelected)
+        cb2.activated[int].connect(self.__singlesCharTypeSelected)
         hbox.show()
         
         self.singlesItemsBox.adjustSize()
@@ -182,8 +182,8 @@
         hboxLayout.addWidget(le2)
         self.rangesItemsBoxLayout.addWidget(hbox)
         
-        self.connect(cb1, SIGNAL('activated(int)'), self.__rangesCharTypeSelected)
-        self.connect(cb2, SIGNAL('activated(int)'), self.__rangesCharTypeSelected)
+        cb1.activated[int].connect(self.__rangesCharTypeSelected)
+        cb2.activated[int].connect(self.__rangesCharTypeSelected)
         hbox.show()
         
         self.rangesItemsBox.adjustSize()
@@ -306,4 +306,4 @@
             else:
                 return "[{0}]".format(regexp)
         else:
-            return ""
\ No newline at end of file
+            return ""
--- a/Plugins/WizardPlugins/QRegExpWizard/QRegExpWizardCharactersDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Plugins/WizardPlugins/QRegExpWizard/QRegExpWizardCharactersDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -144,8 +144,8 @@
         hboxLayout.addWidget(le2)
         self.singlesItemsBoxLayout.addWidget(hbox)
         
-        self.connect(cb1, SIGNAL('activated(int)'), self.__singlesCharTypeSelected)
-        self.connect(cb2, SIGNAL('activated(int)'), self.__singlesCharTypeSelected)
+        cb1.activated[int].connect(self.__singlesCharTypeSelected)
+        cb2.activated[int].connect(self.__singlesCharTypeSelected)
         hbox.show()
         
         self.singlesItemsBox.adjustSize()
@@ -182,8 +182,8 @@
         hboxLayout.addWidget(le2)
         self.rangesItemsBoxLayout.addWidget(hbox)
         
-        self.connect(cb1, SIGNAL('activated(int)'), self.__rangesCharTypeSelected)
-        self.connect(cb2, SIGNAL('activated(int)'), self.__rangesCharTypeSelected)
+        cb1.activated[int].connect(self.__rangesCharTypeSelected)
+        cb2.activated[int].connect(self.__rangesCharTypeSelected)
         hbox.show()
         
         self.rangesItemsBox.adjustSize()
@@ -306,4 +306,4 @@
             else:
                 return "[{0}]".format(regexp)
         else:
-            return ""
\ No newline at end of file
+            return ""
--- a/Preferences/ConfigurationDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Preferences/ConfigurationDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -309,10 +309,8 @@
         # set the initial size of the splitter
         self.configSplitter.setSizes([200, 600])
         
-        self.connect(self.configList, SIGNAL("itemActivated(QTreeWidgetItem *, int)"),
-            self.__showConfigurationPage)
-        self.connect(self.configList, SIGNAL("itemClicked(QTreeWidgetItem *, int)"),
-            self.__showConfigurationPage)
+        self.configList.itemActivated.connect(self.__showConfigurationPage)
+        self.configList.itemClicked.connect(self.__showConfigurationPage)
         
         self.__initLexers()
         
--- a/Preferences/ConfigurationPages/EditorAPIsPage.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Preferences/ConfigurationPages/EditorAPIsPage.py	Thu Aug 12 16:11:13 2010 +0200
@@ -7,7 +7,7 @@
 Module implementing the Editor APIs configuration page.
 """
 
-from PyQt4.QtCore import QDir, pyqtSlot, SIGNAL, QFileInfo
+from PyQt4.QtCore import QDir, pyqtSlot, QFileInfo
 from PyQt4.QtGui import QFileDialog, QInputDialog
 
 from E5Gui.E5Application import e5App
@@ -95,12 +95,12 @@
                 self.apiList.addItem(api)
         self.__currentAPI = self.__apisManager.getAPIs(self.currentApiLanguage)
         if self.__currentAPI is not None:
-            self.connect(self.__currentAPI, SIGNAL('apiPreparationFinished()'),
-                         self.__apiPreparationFinished)
-            self.connect(self.__currentAPI, SIGNAL('apiPreparationCancelled()'),
-                         self.__apiPreparationCancelled)
-            self.connect(self.__currentAPI, SIGNAL('apiPreparationStarted()'),
-                         self.__apiPreparationStarted)
+            self.__currentAPI.apiPreparationFinished.connect(
+                self.__apiPreparationFinished)
+            self.__currentAPI.apiPreparationCancelled.connect(
+                self.__apiPreparationCancelled)
+            self.__currentAPI.apiPreparationStarted.connect(
+                self.__apiPreparationStarted)
             self.addInstalledApiFileButton.setEnabled(\
                 self.__currentAPI.installedAPIFiles() != "")
         else:
--- a/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py	Thu Aug 12 16:11:13 2010 +0200
@@ -54,7 +54,7 @@
         act.setData(self.FAMILYONLY)
         act = self.__fontButtonMenu.addAction(self.trUtf8("Size only"))
         act.setData(self.SIZEONLY)
-        self.__fontButtonMenu.triggered[()].connect(self.__fontButtonMenuTriggered)
+        self.__fontButtonMenu.triggered.connect(self.__fontButtonMenuTriggered)
         self.fontButton.setMenu(self.__fontButtonMenu)
         
         self.__allFontsButtonMenu = QMenu()
@@ -67,7 +67,7 @@
         act.setData(self.FAMILYONLY)
         act = self.__allFontsButtonMenu.addAction(self.trUtf8("Size only"))
         act.setData(self.SIZEONLY)
-        self.__allFontsButtonMenu.triggered[()].connect(self.__allFontsButtonMenuTriggered)
+        self.__allFontsButtonMenu.triggered.connect(self.__allFontsButtonMenuTriggered)
         self.allFontsButton.setMenu(self.__allFontsButtonMenu)
         
         self.lexer = None
@@ -509,4 +509,4 @@
     @param dlg reference to the configuration dialog
     """
     page = EditorHighlightingStylesPage(dlg.getLexers())
-    return page
\ No newline at end of file
+    return page
--- a/Preferences/PreferencesLexer.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Preferences/PreferencesLexer.py	Thu Aug 12 16:11:13 2010 +0200
@@ -111,14 +111,10 @@
                 self.ind2style[index] = i
                 index += 1
         
-        self.connect(self, SIGNAL("colorChanged (const QColor&, int)"), 
-                     self.setColor)
-        self.connect(self, SIGNAL("eolFillChanged (bool, int)"), 
-                     self.setEolFill)
-        self.connect(self, SIGNAL("fontChanged (const QFont&, int)"), 
-                     self.setFont)
-        self.connect(self, SIGNAL("paperChanged (const QColor&, int )"), 
-                     self.setPaper)
+        self.colorChanged.connect(self.setColor)
+        self.eolFillChanged.connect(self.setEolFill)
+        self.fontChanged.connect(self.setFont)
+        self.paperChanged.connect(self.setPaper)
         
         # read the last stored values from preferences file
         self.readSettings(Preferences.Prefs.settings, "Scintilla")
--- a/Preferences/ShortcutDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Preferences/ShortcutDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -16,9 +16,11 @@
     """
     Class implementing a dialog for the configuration of a keyboard shortcut.
     
-    @signal shortcutChanged(QKeySequence, QKeySequence, bool, objectType) emitted 
+    @signal shortcutChanged(QKeySequence, QKeySequence, bool, string) emitted 
         after the OK button was pressed
     """
+    shortcutChanged = pyqtSignal(QKeySequence, QKeySequence, bool, str)
+    
     def __init__(self, parent = None, name = None, modal = False):
         """
         Constructor
@@ -36,7 +38,7 @@
         self.keyIndex = 0
         self.keys = [0, 0, 0, 0]
         self.noCheck = False
-        self.objectType = None
+        self.objectType = ""
         
         self.primaryClearButton.clicked[()].connect(self.__clear)
         self.alternateClearButton.clicked[()].connect(self.__clear)
@@ -75,7 +77,7 @@
         Private slot to handle the OK button press.
         """
         self.hide()
-        self.emit(SIGNAL('shortcutChanged'), 
+        self.shortcutChanged.emit(
                   QKeySequence(self.keyLabel.text()),
                   QKeySequence(self.alternateKeyLabel.text()), 
                   self.noCheck, self.objectType)
@@ -166,4 +168,4 @@
                 self.keys[2]).toString())
         elif self.keyIndex == 4:
             self.__setKeyLabelText(QKeySequence(self.keys[0], self.keys[1],
-                self.keys[2], self.keys[3]).toString())
\ No newline at end of file
+                self.keys[2], self.keys[3]).toString())
--- a/Preferences/ShortcutsDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Preferences/ShortcutsDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -24,7 +24,11 @@
 class ShortcutsDialog(QDialog, Ui_ShortcutsDialog):
     """
     Class implementing a dialog for the configuration of eric5s keyboard shortcuts.
+    
+    @signal updateShortcuts() emitted when the user pressed the dialogs OK button
     """
+    updateShortcuts = pyqtSignal()
+    
     objectNameRole = Qt.UserRole
     noCheckRole    = Qt.UserRole + 1
     objectTypeRole = Qt.UserRole + 2
@@ -48,8 +52,7 @@
         self.shortcutsList.header().setSortIndicator(0, Qt.AscendingOrder)
         
         self.shortcutDialog = ShortcutDialog()
-        self.connect(self.shortcutDialog, SIGNAL('shortcutChanged'),
-                     self.__shortcutChanged)
+        self.shortcutDialog.shortcutChanged.connect(self.__shortcutChanged)
         
     def __resort(self):
         """
@@ -77,7 +80,7 @@
         return itm
         
     def __generateShortcutItem(self, category, action, 
-                               noCheck = False, objectType = None):
+                               noCheck = False, objectType = ""):
         """
         Private method to generate a keyboard shortcut item.
         
@@ -407,7 +410,7 @@
         Shortcuts.saveShortcuts()
         Preferences.syncPreferences()
         
-        self.emit(SIGNAL('updateShortcuts'))
+        self.updateShortcuts.emit()
         self.hide()
     
     @pyqtSlot(str)
--- a/Project/Project.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Project/Project.py	Thu Aug 12 16:11:13 2010 +0200
@@ -103,7 +103,7 @@
             repopulated
     @signal completeRepopulateItem(string) emitted after an item of the model was
             repopulated
-    @signal vcsStatusMonitorStatus(QString, QString) emitted to signal the status of the
+    @signal vcsStatusMonitorStatus(string, string) emitted to signal the status of the
             monitoring thread (ok, nok, op, off) and a status message
     @signal reinitVCS() emitted after the VCS has been reinitialized
     @signal showMenu(string, QMenu) emitted when a menu is about to be shown. The name
@@ -111,10 +111,31 @@
     @signal lexerAssociationsChanged() emitted after the lexer associations have been
             changed
     """
+    dirty = pyqtSignal(int)
+    projectLanguageAdded = pyqtSignal(str)
+    projectLanguageAddedByCode = pyqtSignal(str)
+    projectFormAdded = pyqtSignal(str)
+    projectSourceAdded = pyqtSignal(str)
+    projectInterfaceAdded = pyqtSignal(str)
+    projectResourceAdded = pyqtSignal(str)
+    projectOthersAdded = pyqtSignal(str)
+    projectAboutToBeCreated = pyqtSignal()
+    newProjectHooks = pyqtSignal()
+    newProject = pyqtSignal()
     sourceFile = pyqtSignal(str)
+    projectOpenedHooks = pyqtSignal()
     projectOpened = pyqtSignal()
-    newProject = pyqtSignal()
+    projectClosedHooks = pyqtSignal()
     projectClosed = pyqtSignal()
+    projectFileRenamed = pyqtSignal(str, str)
+    projectPropertiesChanged = pyqtSignal()
+    directoryRemoved = pyqtSignal(str)
+    prepareRepopulateItem = pyqtSignal(str)
+    completeRepopulateItem = pyqtSignal(str)
+    vcsStatusMonitorStatus = pyqtSignal(str, str)
+    reinitVCS = pyqtSignal()
+    showMenu = pyqtSignal(str, QMenu)
+    lexerAssociationsChanged = pyqtSignal()
     
     keynames = [
         "PROGLANGUAGE", "MIXEDLANGUAGE", "PROJECTTYPE",
@@ -504,7 +525,7 @@
         """
         self.dirty = b
         self.saveAct.setEnabled(b)
-        self.emit(SIGNAL("dirty"), bool(b))
+        self.dirty.emit(bool(b))
         
     def isDirty(self):
         """
@@ -1515,7 +1536,7 @@
                     ["Qt4", "Qt4C", "E4Plugin", "PySide", "PySideC"]:
                 langFile = self.pdata["TRANSLATIONPATTERN"][0].replace("%language%", lang)
                 self.appendFile(langFile)
-            self.emit(SIGNAL("projectLanguageAddedByCode"), lang)
+            self.projectLanguageAddedByCode.emit(lang)
         
     def __binaryTranslationFile(self, langFile):
         """
@@ -1657,7 +1678,7 @@
             if filetype == "SOURCES":
                 if newfn not in self.pdata["SOURCES"]:
                     self.pdata["SOURCES"].append(newfn)
-                    self.emit(SIGNAL('projectSourceAdded'), newfn)
+                    self.projectSourceAdded.emit(newfn)
                     updateModel and self.__model.addNewItem("SOURCES", newfn)
                     dirty = True
                 else:
@@ -1665,7 +1686,7 @@
             elif filetype == "FORMS":
                 if newfn not in self.pdata["FORMS"]:
                     self.pdata["FORMS"].append(newfn)
-                    self.emit(SIGNAL('projectFormAdded'), newfn)
+                    self.projectFormAdded.emit(newfn)
                     updateModel and self.__model.addNewItem("FORMS", newfn)
                     dirty = True
                 else:
@@ -1673,7 +1694,7 @@
             elif filetype == "INTERFACES":
                 if newfn not in self.pdata["INTERFACES"]:
                     self.pdata["INTERFACES"].append(newfn)
-                    self.emit(SIGNAL('projectInterfaceAdded'), newfn)
+                    self.projectInterfaceAdded.emit(newfn)
                     updateModel and self.__model.addNewItem("INTERFACES", newfn)
                     dirty = True
                 else:
@@ -1681,7 +1702,7 @@
             elif filetype == "RESOURCES":
                 if newfn not in self.pdata["RESOURCES"]:
                     self.pdata["RESOURCES"].append(newfn)
-                    self.emit(SIGNAL('projectResourceAdded'), newfn)
+                    self.projectResourceAdded.emit(newfn)
                     updateModel and self.__model.addNewItem("RESOURCES", newfn)
                     dirty = True
                 else:
@@ -1692,7 +1713,7 @@
             if newfn not in self.pdata["TRANSLATIONS"]:
                 self.pdata["TRANSLATIONS"].append(newfn)
                 updateModel and self.__model.addNewItem("TRANSLATIONS", newfn)
-                self.emit(SIGNAL('projectLanguageAdded'), newfn)
+                self.projectLanguageAdded.emit(newfn)
                 dirty = True
             else:
                 updateModel and self.repopulateItem(newfn)
@@ -2060,7 +2081,7 @@
         else:
             self.removeFile(oldname)
             self.appendFile(newname, isSourceFile)
-        self.emit(SIGNAL('projectFileRenamed'), oldname, newname)
+        self.projectFileRenamed.emit(oldname, newname)
         
         self.renameMainScript(fn, newname)
         
@@ -2123,7 +2144,7 @@
         del typeStrings[0]
         self.__model.removeItem(olddn)
         self.__model.addNewItem(typeString, newdn, typeStrings)
-        self.emit(SIGNAL('directoryRemoved'), olddn)
+        self.directoryRemoved.emit(olddn)
         
     def removeFile(self, fn, updateModel = True):
         """
@@ -2180,7 +2201,7 @@
         self.__model.removeItem(dn)
         if dirty:
             self.setDirty(True)
-        self.emit(SIGNAL('directoryRemoved'), dn)
+        self.directoryRemoved.emit(dn)
         
     def deleteFile(self, fn):
         """
@@ -2287,7 +2308,7 @@
             self.menuPackagersAct.setEnabled(True)
             self.pluginGrp.setEnabled(self.pdata["PROJECTTYPE"][0] == "E4Plugin")
             
-            self.emit(SIGNAL("projectAboutToBeCreated"))
+            self.projectAboutToBeCreated.emit()
             
             hash = str(QCryptographicHash.hash(
                 QByteArray(self.ppath), QCryptographicHash.Sha1).toHex(),
@@ -2476,11 +2497,11 @@
                     self.saveProject()
                     self.vcs.vcsConvertProject(vcsDataDict, self)
                 else:
-                    self.emit(SIGNAL('newProjectHooks'))
+                    self.newProjectHooks.emit()
                     self.newProject.emit()
             
             else:
-                self.emit(SIGNAL('newProjectHooks'))
+                self.newProjectHooks.emit()
                 self.newProject.emit()
             
 
@@ -2545,7 +2566,7 @@
             for ts in tslist:
                 if fnmatch.fnmatch(ts, pattern):
                     self.pdata["TRANSLATIONS"].append(ts)
-                    self.emit(SIGNAL('projectLanguageAdded'), ts)
+                    self.projectLanguageAdded.emit(ts)
             if len(self.pdata["MAINSCRIPT"]) == 0 or \
                len(self.pdata["MAINSCRIPT"][0]) == 0:
                 if self.pdata["PROGLANGUAGE"][0] in ["Python", "Python3"]:
@@ -2561,7 +2582,7 @@
                 qmlist = Utilities.direntries(tpd, True, pattern)
                 for qm in qmlist:
                     self.pdata["TRANSLATIONS"].append(qm)
-                    self.emit(SIGNAL('projectLanguageAdded'), qm)
+                    self.projectLanguageAdded.emit(qm)
         self.setDirty(True)
         QApplication.restoreOverrideCursor()
     
@@ -2606,7 +2627,7 @@
             self.pluginGrp.setEnabled(self.pdata["PROJECTTYPE"][0] == "E4Plugin")
             
             self.__model.projectPropertiesChanged()
-            self.emit(SIGNAL('projectPropertiesChanged'))
+            self.projectPropertiesChanged.emit()
         
     def __showUserProperties(self):
         """
@@ -2629,12 +2650,8 @@
                 # stop the VCS monitor thread and shutdown VCS
                 if self.vcs is not None:
                     self.vcs.stopStatusMonitor()
-                    self.disconnect(self.vcs, 
-                        SIGNAL("vcsStatusMonitorData(QStringList)"),
-                        self.__model.changeVCSStates)
-                    self.disconnect(self.vcs, 
-                        SIGNAL("vcsStatusMonitorStatus(QString, QString)"),
-                        self.__statusMonitorStatus)
+                    self.vcs.vcsStatusMonitorData.disconnect(self.__model.changeVCSStates)
+                    self.vcs.vcsStatusMonitorStatus.disconnect(self.__statusMonitorStatus)
                     self.vcs.vcsShutdown()
                     self.vcs = None
                     e5App().getObject("PluginManager").deactivateVcsPlugins()
@@ -2643,13 +2660,9 @@
                 # start the VCS monitor thread
                 if self.vcs is not None:
                     self.vcs.startStatusMonitor(self)
-                    self.connect(self.vcs, 
-                         SIGNAL("vcsStatusMonitorData(QStringList)"),
-                         self.__model.changeVCSStates)
-                    self.connect(self.vcs, 
-                         SIGNAL("vcsStatusMonitorStatus(QString, QString)"),
-                         self.__statusMonitorStatus)
-                self.emit(SIGNAL("reinitVCS"))
+                    self.vcs.vcsStatusMonitorData.connect(self.__model.changeVCSStates)
+                    self.vcs.vcsStatusMonitorStatus.connect(self.__statusMonitorStatus)
+                self.reinitVCS.emit()
             
             if self.pudata["VCSSTATUSMONITORINTERVAL"]:
                 self.setStatusMonitorInterval(\
@@ -2675,7 +2688,7 @@
         if dlg.exec_() == QDialog.Accepted:
             dlg.transferData()
             self.setDirty(True)
-            self.emit(SIGNAL("lexerAssociationsChanged"))
+            self.lexerAssociationsChanged.emit()
         
     def getEditorLexerAssoc(self, filename):
         """
@@ -2803,7 +2816,7 @@
                     self.pluginGrp.setEnabled(self.pdata["PROJECTTYPE"][0] == "E4Plugin")
                     
                     self.__model.projectOpened()
-                    self.emit(SIGNAL('projectOpenedHooks'))
+                    self.projectOpenedHooks.emit()
                     self.projectOpened.emit()
                     
                     QApplication.restoreOverrideCursor()
@@ -2834,12 +2847,10 @@
                     # start the VCS monitor thread
                     if self.vcs is not None:
                         self.vcs.startStatusMonitor(self)
-                        self.connect(self.vcs, 
-                             SIGNAL("vcsStatusMonitorData(QStringList)"),
-                             self.__model.changeVCSStates)
-                        self.connect(self.vcs, 
-                             SIGNAL("vcsStatusMonitorStatus(QString, QString)"),
-                             self.__statusMonitorStatus)
+                        self.vcs.vcsStatusMonitorData.connect(
+                            self.__model.changeVCSStates)
+                        self.vcs.vcsStatusMonitorStatus.connect(
+                            self.__statusMonitorStatus)
                 else:
                     QApplication.restoreOverrideCursor()
         
@@ -2915,9 +2926,9 @@
             
             self.sessActGrp.setEnabled(ok)
             self.menuSessionAct.setEnabled(ok)
-            self.emit(SIGNAL('projectClosedHooks'))
+            self.projectClosedHooks.emit()
             self.projectClosed.emit()
-            self.emit(SIGNAL('projectOpenedHooks'))
+            self.projectOpenedHooks.emit()
             self.projectOpened.emit()
             return True
         else:
@@ -3003,12 +3014,8 @@
         # stop the VCS monitor thread
         if self.vcs is not None:
             self.vcs.stopStatusMonitor()
-            self.disconnect(self.vcs, 
-                SIGNAL("vcsStatusMonitorData(QStringList)"),
-                self.__model.changeVCSStates)
-            self.disconnect(self.vcs, 
-                SIGNAL("vcsStatusMonitorStatus(QString, QString)"),
-                self.__statusMonitorStatus)
+            self.vcs.vcsStatusMonitorData.disconnect(self.__model.changeVCSStates)
+            self.vcs.vcsStatusMonitorStatus.disconnect(self.__statusMonitorStatus)
         
         # now save the tasks
         if not noSave:
@@ -3046,7 +3053,7 @@
         self.pluginGrp.setEnabled(False)
         
         self.__model.projectClosed()
-        self.emit(SIGNAL('projectClosedHooks'))
+        self.projectClosedHooks.emit()
         self.projectClosed.emit()
         
         return True
@@ -3736,7 +3743,7 @@
         self.vcsProjectHelper.initMenu(self.vcsMenu)
         self.checksMenu = QMenu(self.trUtf8('Chec&k'), menu)
         self.checksMenu.setTearOffEnabled(True)
-        self.showMenu = QMenu(self.trUtf8('Sho&w'), menu)
+        self.menuShow = QMenu(self.trUtf8('Sho&w'), menu)
         self.graphicsMenu = QMenu(self.trUtf8('&Diagrams'), menu)
         self.sessionMenu = QMenu(self.trUtf8('Session'), menu)
         self.apidocMenu = QMenu(self.trUtf8('Source &Documentation'), menu)
@@ -3750,7 +3757,7 @@
             "Recent"    : self.recentMenu, 
             "VCS"       : self.vcsMenu, 
             "Checks"    : self.checksMenu, 
-            "Show"      : self.showMenu, 
+            "Show"      : self.menuShow, 
             "Graphics"  : self.graphicsMenu, 
             "Session"   : self.sessionMenu, 
             "Apidoc"    : self.apidocMenu, 
@@ -3760,21 +3767,20 @@
         
         # connect the aboutToShow signals
         self.recentMenu.aboutToShow.connect(self.__showContextMenuRecent)
-        self.connect(self.recentMenu, SIGNAL('triggered(QAction *)'),
-                     self.__openRecent)
+        self.recentMenu.triggered.connect(self.__openRecent)
         self.vcsMenu.aboutToShow.connect(self.__showContextMenuVCS)
         self.checksMenu.aboutToShow.connect(self.__showContextMenuChecks)
-        self.showMenu.aboutToShow.connect(self.__showContextMenuShow)
+        self.menuShow.aboutToShow.connect(self.__showContextMenuShow)
         self.graphicsMenu.aboutToShow.connect(self.__showContextMenuGraphics)
         self.apidocMenu.aboutToShow.connect(self.__showContextMenuApiDoc)
         self.packagersMenu.aboutToShow.connect(self.__showContextMenuPackagers)
         menu.aboutToShow.connect(self.__showMenu)
         
         # build the show menu
-        self.showMenu.setTearOffEnabled(True)
-        self.showMenu.addAction(self.codeMetricsAct)
-        self.showMenu.addAction(self.codeCoverageAct)
-        self.showMenu.addAction(self.codeProfileAct)
+        self.menuShow.setTearOffEnabled(True)
+        self.menuShow.addAction(self.codeMetricsAct)
+        self.menuShow.addAction(self.codeCoverageAct)
+        self.menuShow.addAction(self.codeProfileAct)
         
         # build the diagrams menu
         self.graphicsMenu.setTearOffEnabled(True)
@@ -3813,7 +3819,7 @@
         menu.addSeparator()
         menu.addMenu(self.vcsMenu)
         menu.addSeparator()
-        self.menuShowAct = menu.addMenu(self.showMenu)
+        self.menuShowAct = menu.addMenu(self.menuShow)
         menu.addSeparator()
         self.menuApidocAct = menu.addMenu(self.apidocMenu)
         menu.addSeparator()
@@ -3868,7 +3874,7 @@
         """
         self.menuRecentAct.setEnabled(len(self.recent) > 0)
         
-        self.emit(SIGNAL("showMenu"), "Main", self.__menus["Main"])
+        self.showMenu.emit("Main", self.__menus["Main"])
         
     def __syncRecent(self):
         """
@@ -4043,7 +4049,7 @@
         @param fn filename or directory name added (string)
         @param updateModel flag indicating an update of the model is requested (boolean)
         """
-        self.emit(SIGNAL('projectOthersAdded'), fn)
+        self.projectOthersAdded.emit(fn)
         updateModel and self.__model.addNewItem("OTHERS", fn)
         
     def getActions(self):
@@ -4096,9 +4102,9 @@
             return
         
         name = self.getRelativePath(fullname)
-        self.emit(SIGNAL("prepareRepopulateItem"), name)
+        self.prepareRepopulateItem.emit(name)
         self.__model.repopulateItem(name)
-        self.emit(SIGNAL("completeRepopulateItem"), name)
+        self.completeRepopulateItem.emit(name)
     
     ##############################################################
     ## Below is the VCS interface
@@ -4194,7 +4200,7 @@
         """
         self.vcsProjectHelper.showMenu()
         if self.vcsBasicHelper:
-            self.emit(SIGNAL("showMenu"), "VCS", self.vcsMenu)
+            self.showMenu.emit("VCS", self.vcsMenu)
     
     #########################################################################
     ## Below is the interface to the checker tools
@@ -4204,7 +4210,7 @@
         """
         Private slot called before the checks menu is shown.
         """
-        self.emit(SIGNAL("showMenu"), "Checks", self.checksMenu)
+        self.showMenu.emit("Checks", self.checksMenu)
     
     #########################################################################
     ## Below is the interface to the packagers tools
@@ -4214,7 +4220,7 @@
         """
         Private slot called before the packagers menu is shown.
         """
-        self.emit(SIGNAL("showMenu"), "Packagers", self.packagersMenu)
+        self.showMenu.emit("Packagers", self.packagersMenu)
     
     #########################################################################
     ## Below is the interface to the apidoc tools
@@ -4224,7 +4230,7 @@
         """
         Private slot called before the apidoc menu is shown.
         """
-        self.emit(SIGNAL("showMenu"), "Apidoc", self.apidocMenu)
+        self.showMenu.emit("Apidoc", self.apidocMenu)
     
     #########################################################################
     ## Below is the interface to the show tools
@@ -4350,7 +4356,7 @@
             self.codeProfileAct.setEnabled(False)
             self.codeCoverageAct.setEnabled(False)
         
-        self.emit(SIGNAL("showMenu"), "Show", self.showMenu)
+        self.showMenu.emit("Show", self.menuShow)
     
     #########################################################################
     ## Below is the interface to the diagrams
@@ -4360,7 +4366,7 @@
         """
         Private slot called before the graphics menu is shown.
         """
-        self.emit(SIGNAL("showMenu"), "Graphics", self.graphicsMenu)
+        self.showMenu.emit("Graphics", self.graphicsMenu)
     
     def handleApplicationDiagram(self):
         """
@@ -4391,7 +4397,7 @@
         @param status status of the monitoring thread (string, ok, nok or off)
         @param statusMsg explanotory text for the signaled status (string)
         """
-        self.emit(SIGNAL("vcsStatusMonitorStatus(QString, QString)"), status, statusMsg)
+        self.vcsStatusMonitorStatus.emit(status, statusMsg)
         
     def setStatusMonitorInterval(self, interval):
         """
--- a/Project/ProjectBaseBrowser.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Project/ProjectBaseBrowser.py	Thu Aug 12 16:11:13 2010 +0200
@@ -22,7 +22,11 @@
 class ProjectBaseBrowser(Browser):
     """
     Baseclass implementing common functionality for the various project browsers.
+    
+    @signal closeSourceWindow(str) emitted to close a source file
     """
+    closeSourceWindow = pyqtSignal(str)
+    
     def __init__(self, project, type_, parent = None):
         """
         Constructor
@@ -55,9 +59,8 @@
         
         self.setContextMenuPolicy(Qt.CustomContextMenu)
         self.customContextMenuRequested.connect(self._contextMenuRequested)
-        self.connect(self, SIGNAL("activated(const QModelIndex &)"), self._openItem)
-        self.connect(self._model, SIGNAL("rowsInserted(const QModelIndex &, int, int)"),
-                     self.__modelRowsInserted)
+        self.activated.connect(self._openItem)
+        self._model.rowsInserted.connect(self.__modelRowsInserted)
         self._connectExpandedCollapsed()
         
         self._createPopupMenus()
@@ -73,19 +76,15 @@
         """
         Protected method to connect the expanded and collapsed signals.
         """
-        self.connect(self, SIGNAL("expanded(const QModelIndex &)"), 
-            self._resizeColumns)
-        self.connect(self, SIGNAL("collapsed(const QModelIndex &)"), 
-            self._resizeColumns)
+        self.expanded.connect(self._resizeColumns)
+        self.collapsed.connect(self._resizeColumns)
         
     def _disconnectExpandedCollapsed(self):
         """
         Protected method to disconnect the expanded and collapsed signals.
         """
-        self.disconnect(self, SIGNAL("expanded(const QModelIndex &)"), 
-            self._resizeColumns)
-        self.disconnect(self, SIGNAL("collapsed(const QModelIndex &)"), 
-            self._resizeColumns)
+        self.expanded.disconnect(self._resizeColumns)
+        self.collapsed.disconnect(self._resizeColumns)
         
     def _createPopupMenus(self):
         """
@@ -259,7 +258,7 @@
         
         for itm in itmList[:]:
             fn = itm.fileName()
-            self.emit(SIGNAL('closeSourceWindow'), fn)
+            self.closeSourceWindow.emit(fn)
             self.project.removeFile(fn)
         
     def _removeDir(self):
--- a/Project/ProjectBrowser.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Project/ProjectBrowser.py	Thu Aug 12 16:11:13 2010 +0200
@@ -102,53 +102,45 @@
         self.project.projectClosed.connect(self.psBrowser._projectClosed)
         self.project.projectOpened.connect(self.psBrowser._projectOpened)
         self.project.newProject.connect(self.psBrowser._newProject)
-        self.connect(self.project, SIGNAL('reinitVCS'),
-                self.psBrowser._initMenusAndVcs)
+        self.project.reinitVCS.connect(self.psBrowser._initMenusAndVcs)
         
         # connect the forms browser
         self.project.projectClosed.connect(self.pfBrowser._projectClosed)
         self.project.projectOpened.connect(self.pfBrowser._projectOpened)
         self.project.newProject.connect(self.pfBrowser._newProject)
-        self.connect(self.project, SIGNAL('reinitVCS'),
-                self.pfBrowser._initMenusAndVcs)
+        self.project.reinitVCS.connect(self.pfBrowser._initMenusAndVcs)
         
         # connect the resources browser
         self.project.projectClosed.connect(self.prBrowser._projectClosed)
         self.project.projectOpened.connect(self.prBrowser._projectOpened)
         self.project.newProject.connect(self.prBrowser._newProject)
-        self.connect(self.project, SIGNAL('reinitVCS'),
-                self.prBrowser._initMenusAndVcs)
+        self.project.reinitVCS.connect(self.prBrowser._initMenusAndVcs)
         
         # connect the translations browser
         self.project.projectClosed.connect(self.ptBrowser._projectClosed)
         self.project.projectOpened.connect(self.ptBrowser._projectOpened)
         self.project.newProject.connect(self.ptBrowser._newProject)
-        self.connect(self.project, SIGNAL('reinitVCS'),
-                self.ptBrowser._initMenusAndVcs)
+        self.project.reinitVCS.connect(self.ptBrowser._initMenusAndVcs)
         
         # connect the interfaces (IDL)  browser
         self.project.projectClosed.connect(self.piBrowser._projectClosed)
         self.project.projectOpened.connect(self.piBrowser._projectOpened)
         self.project.newProject.connect(self.piBrowser._newProject)
-        self.connect(self.project, SIGNAL('reinitVCS'),
-                self.piBrowser._initMenusAndVcs)
+        self.project.reinitVCS.connect(self.piBrowser._initMenusAndVcs)
         
         # connect the others browser
         self.project.projectClosed.connect(self.poBrowser._projectClosed)
         self.project.projectOpened.connect(self.poBrowser._projectOpened)
         self.project.newProject.connect(self.poBrowser._newProject)
-        self.connect(self.project, SIGNAL('reinitVCS'),
-                self.poBrowser._initMenusAndVcs)
+        self.project.reinitVCS.connect(self.poBrowser._initMenusAndVcs)
         
         # add signal connection to ourself
         self.project.projectOpened.connect(self.__projectOpened)
         self.project.projectClosed.connect(self.__projectClosed)
         self.project.newProject.connect(self.__newProject)
-        self.connect(self.project, SIGNAL('projectPropertiesChanged'),
-                self.__projectPropertiesChanged)
-        self.connect(self, SIGNAL("currentChanged(int)"), self.__currentChanged)
-        self.connect(self.project.getModel(), SIGNAL("vcsStateChanged"), 
-                self.__vcsStateChanged)
+        self.project.projectPropertiesChanged.connect(self.__projectPropertiesChanged)
+        self.currentChanged.connect(self.__currentChanged)
+        self.project.getModel().vcsStateChanged.connect(self.__vcsStateChanged)
         
         self.__currentBrowsersFlags = 0
         self.__projectPropertiesChanged()
--- a/Project/ProjectBrowserModel.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Project/ProjectBrowserModel.py	Thu Aug 12 16:11:13 2010 +0200
@@ -205,8 +205,10 @@
     """
     Class implementing the project browser model.
     
-    @signal vcsStateChanged(QString) emitted after the VCS state has changed
+    @signal vcsStateChanged(string) emitted after the VCS state has changed
     """
+    vcsStateChanged = pyqtSignal(str)
+    
     def __init__(self, parent):
         """
         Constructor
@@ -465,9 +467,7 @@
                     if type_ and type_ not in itm.getProjectTypes():
                         itm.addProjectType(type_)
                         index = self.createIndex(itm.row(), 0, itm)
-                        self.emit(SIGNAL(\
-                            "dataChanged(const QModelIndex &, const QModelIndex &)"),
-                            index, index)
+                        self.dataChanged.emit(index, index)
                 olditem = itm
             return (itm, pathlist[-1])
         else:
@@ -543,8 +543,7 @@
         
         index = self.createIndex(itm.row(), 0, itm)
         itm.setName(newFilename)
-        self.emit(SIGNAL("dataChanged(const QModelIndex &, const QModelIndex &)"),
-                  index, index)
+        self.dataChanged.emit(index, index)
         self.repopulateItem(newFilename)
     
     def findItem(self, name):
@@ -698,8 +697,7 @@
             item.setVcsStatus("")
         
         index = self.createIndex(item.row(), 0, item)
-        self.emit(SIGNAL("dataChanged(const QModelIndex &, const QModelIndex &)"),
-                  index, index)
+        self.dataChanged.emit(index, index)
     
     def updateVCSStatus(self, name, recursive = True):
         """
@@ -808,9 +806,7 @@
                 index1 = self.createIndex(itm.row(), 0, itm)
                 index2 = self.createIndex(itm.row(), 
                     self.rootItem.columnCount(), itm)
-                self.emit(\
-                    SIGNAL("dataChanged(const QModelIndex &, const QModelIndex &)"),
-                    index1, index2)
+                self.dataChanged.emit(index1, index2)
             
             head, tail = os.path.split(name)
             if head != lastHead:
@@ -823,7 +819,7 @@
             globalVcsStatus = sorted(self.__vcsStatus.values())[-1]
         except IndexError:
             globalVcsStatus = ' '
-        self.emit(SIGNAL("vcsStateChanged"), globalVcsStatus)
+        self.vcsStateChanged.emit(globalVcsStatus)
 
     def __changeParentsVCSState(self, path, itemCache):
         """
@@ -850,9 +846,7 @@
                     index1 = self.createIndex(itm.row(), 0, itm)
                     index2 = self.createIndex(itm.row(), 
                         self.rootItem.columnCount(), itm)
-                    self.emit(\
-                        SIGNAL("dataChanged(const QModelIndex &, const QModelIndex &)"),
-                        index1, index2)
+                    self.dataChanged.emit(index1, index2)
             path, tail = os.path.split(path)
     
     def preferencesChanged(self):
--- a/Project/ProjectFormsBrowser.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Project/ProjectFormsBrowser.py	Thu Aug 12 16:11:13 2010 +0200
@@ -42,10 +42,16 @@
             from the project
     @signal showMenu(string, QMenu) emitted when a menu is about to be shown. The name
             of the menu and a reference to the menu are given.
-    @signal menusAboutToBeCreated emitted when the context menu are about to
+    @signal menusAboutToBeCreated emitted when the context menus are about to
             be created. This is the right moment to add or remove hook methods.
     """
+    appendStderr = pyqtSignal(str)
     sourceFile = pyqtSignal(str)
+    uipreview = pyqtSignal(str)
+    trpreview = pyqtSignal(list)
+    closeSourceWindow = pyqtSignal(str)
+    showMenu = pyqtSignal(str, QMenu)
+    menusAboutToBeCreated = pyqtSignal()
     
     def __init__(self, project, parent = None):
         """
@@ -95,7 +101,7 @@
         self.dirMenuActions = []
         self.dirMultiMenuActions = []
         
-        self.emit(SIGNAL("menusAboutToBeCreated"))
+        self.menusAboutToBeCreated.emit()
         
         self.menu = QMenu(self)
         if self.project.getProjectType() in ["Qt4", "E4Plugin", "PySide"]:
@@ -332,7 +338,7 @@
         """
         ProjectBaseBrowser._showContextMenu(self, self.menu)
         
-        self.emit(SIGNAL("showMenu"), "Main", self.menu)
+        self.showMenu.emit("Main", self.menu)
         
     def __showContextMenuMulti(self):
         """
@@ -340,7 +346,7 @@
         """
         ProjectBaseBrowser._showContextMenuMulti(self, self.multiMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainMulti", self.multiMenu)
+        self.showMenu.emit("MainMulti", self.multiMenu)
         
     def __showContextMenuDir(self):
         """
@@ -348,7 +354,7 @@
         """
         ProjectBaseBrowser._showContextMenuDir(self, self.dirMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainDir", self.dirMenu)
+        self.showMenu.emit("MainDir", self.dirMenu)
         
     def __showContextMenuDirMulti(self):
         """
@@ -356,7 +362,7 @@
         """
         ProjectBaseBrowser._showContextMenuDirMulti(self, self.dirMultiMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainDirMulti", self.dirMultiMenu)
+        self.showMenu.emit("MainDirMulti", self.dirMultiMenu)
         
     def __showContextMenuBack(self):
         """
@@ -364,7 +370,7 @@
         """
         ProjectBaseBrowser._showContextMenuBack(self, self.backMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainBack", self.backMenu)
+        self.showMenu.emit("MainBack", self.backMenu)
         
     def __addFormFiles(self):
         """
@@ -397,20 +403,12 @@
     def __openFile(self):
         """
         Private slot to handle the Open menu action.
-        
-        This uses the projects UI type to determine the Qt Designer
-        version to use.
         """
-        if self.project.getProjectType() in ["Qt4", "E4Plugin", "PySide"]:
-            version = 4
-        else:
-            version = 0
-        
         itmList = self.getSelectedItems()
         for itm in itmList[:]:
             try:
                 if isinstance(itm, ProjectBrowserFileItem):
-                    self.emit(SIGNAL('designerFile'), itm.fileName(), version)
+                    self.designerFile.emit(itm.fileName())
             except:
                 pass
         
@@ -427,11 +425,10 @@
         Protected slot to handle the open popup menu entry.
         """
         itmList = self.getSelectedItems()
-        
         for itm in itmList:
             if isinstance(itm, ProjectBrowserFileItem):
                 if itm.isDesignerFile():
-                    self.emit(SIGNAL('designerFile'), itm.fileName())
+                    self.designerFile.emit(itm.fileName())
                 else:
                     self.sourceFile.emit(itm.fileName())
         
@@ -440,7 +437,7 @@
         Private slot to handle the Preview menu action.
         """
         itmList = self.getSelectedItems()
-        self.emit(SIGNAL('uipreview'), itmList[0].fileName())
+        self.uipreview.emit(itmList[0].fileName())
         
     def __TRPreview(self):
         """
@@ -453,7 +450,7 @@
         fileNames.extend([os.path.join(self.project.ppath, trfile) \
                           for trfile in trfiles \
                           if trfile.endswith('.qm')])
-        self.emit(SIGNAL('trpreview'), fileNames)
+        self.trpreview[list].emit(fileNames)
         
     def __newForm(self):
         """
@@ -534,7 +531,7 @@
             return
         
         self.project.appendFile(fname)
-        self.emit(SIGNAL('designerFile'), fname)
+        self.designerFile.emit(fname)
         
     def __deleteFile(self):
         """
@@ -557,7 +554,7 @@
         
         if dlg.exec_() == QDialog.Accepted:
             for fn2, fn in zip(fullNames, files):
-                self.emit(SIGNAL('closeSourceWindow'), fn2)
+                self.closeSourceWindow.emit(fn2)
                 self.project.deleteFile(fn)
     
     ############################################################################
@@ -594,7 +591,7 @@
             error = str(self.compileProc.readLine(), 
                             ioEncoding, 'replace')
             s += error
-            self.emit(SIGNAL('appendStderr'), s)
+            self.appendStderr.emit(s)
         
     def __compileUIDone(self, exitCode, exitStatus):
         """
--- a/Project/ProjectInterfacesBrowser.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Project/ProjectInterfacesBrowser.py	Thu Aug 12 16:11:13 2010 +0200
@@ -31,6 +31,7 @@
     """
     A class used to display the interfaces (IDL) part of the project. 
     
+    @signal sourceFile(string, int = 0) emitted to open a file
     @signal closeSourceWindow(string) emitted after a file has been removed/deleted 
             from the project
     @signal appendStdout(string) emitted after something was received from
@@ -40,6 +41,10 @@
     @signal showMenu(string, QMenu) emitted when a menu is about to be shown. The name
             of the menu and a reference to the menu are given.
     """
+    closeSourceWindow = pyqtSignal(str)
+    appendStdout = pyqtSignal(str)
+    appendStderr = pyqtSignal(str)
+    showMenu = pyqtSignal(str, QMenu)
     sourceFile = pyqtSignal((str, ), (str, int))
     
     def __init__(self, project, parent = None):
@@ -69,10 +74,8 @@
             """ via the context menu.</p>"""
         ))
         
-        self.connect(project, SIGNAL("prepareRepopulateItem"), 
-            self._prepareRepopulateItem)
-        self.connect(project, SIGNAL("completeRepopulateItem"),
-            self._completeRepopulateItem)
+        project.prepareRepopulateItem.connect(self._prepareRepopulateItem)
+        project.completeRepopulateItem.connect(self._completeRepopulateItem)
         
     def _createPopupMenus(self):
         """
@@ -281,7 +284,7 @@
         """
         ProjectBaseBrowser._showContextMenu(self, self.menu)
         
-        self.emit(SIGNAL("showMenu"), "Main", self.menu)
+        self.showMenu.emit("Main", self.menu)
         
     def __showContextMenuMulti(self):
         """
@@ -289,7 +292,7 @@
         """
         ProjectBaseBrowser._showContextMenuMulti(self, self.multiMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainMulti", self.multiMenu)
+        self.showMenu.emit("MainMulti", self.multiMenu)
         
     def __showContextMenuDir(self):
         """
@@ -297,7 +300,7 @@
         """
         ProjectBaseBrowser._showContextMenuDir(self, self.dirMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainDir", self.dirMenu)
+        self.showMenu.emit("MainDir", self.dirMenu)
         
     def __showContextMenuDirMulti(self):
         """
@@ -305,7 +308,7 @@
         """
         ProjectBaseBrowser._showContextMenuDirMulti(self, self.dirMultiMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainDirMulti", self.dirMultiMenu)
+        self.showMenu.emit("MainDirMulti", self.dirMultiMenu)
         
     def __showContextMenuBack(self):
         """
@@ -313,7 +316,7 @@
         """
         ProjectBaseBrowser._showContextMenuBack(self, self.backMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainBack", self.backMenu)
+        self.showMenu.emit("MainBack", self.backMenu)
         
     def _openItem(self):
         """
@@ -390,7 +393,7 @@
         
         if dlg.exec_() == QDialog.Accepted:
             for fn2, fn in zip(fullNames, files):
-                self.emit(SIGNAL('closeSourceWindow'), fn2)
+                self.closeSourceWindow.emit(fn2)
                 self.project.deleteFile(fn)
     
     ############################################################################
@@ -411,7 +414,7 @@
             s = 'omniidl: '
             output = str(self.compileProc.readLine(), ioEncoding, 'replace')
             s += output
-            self.emit(SIGNAL('appendStdout'), s)
+            self.appendStdout.emit(s)
         
     def __readStderr(self):
         """
@@ -427,7 +430,7 @@
             s = 'omniidl: '
             error = str(self.compileProc.readLine(), ioEncoding, 'replace')
             s += error
-            self.emit(SIGNAL('appendStderr'), s)
+            self.appendStderr.emit(s)
         
     def __compileIDLDone(self, exitCode, exitStatus):
         """
--- a/Project/ProjectOthersBrowser.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Project/ProjectOthersBrowser.py	Thu Aug 12 16:11:13 2010 +0200
@@ -34,6 +34,11 @@
             of the menu and a reference to the menu are given.
     """
     sourceFile = pyqtSignal(str)
+    pixmapFile = pyqtSignal(str)
+    pixmapEditFile = pyqtSignal(str)
+    svgFile = pyqtSignal(str)
+    closeSourceWindow = pyqtSignal(str)
+    showMenu = pyqtSignal(str, QMenu)
     
     def __init__(self, project, parent=None):
         """
@@ -57,10 +62,8 @@
             """ in the project is shown in a different colour.</p>"""
         ))
         
-        self.connect(project, SIGNAL("prepareRepopulateItem"), 
-            self._prepareRepopulateItem)
-        self.connect(project, SIGNAL("completeRepopulateItem"),
-            self._completeRepopulateItem)
+        project.prepareRepopulateItem.connect(self._prepareRepopulateItem)
+        project.completeRepopulateItem.connect(self._completeRepopulateItem)
         
     def _createPopupMenus(self):
         """
@@ -170,7 +173,7 @@
         """
         self._showContextMenu(self.menu)
         
-        self.emit(SIGNAL("showMenu"), "Main", self.menu)
+        self.showMenu.emit("Main", self.menu)
         
     def __showContextMenuMulti(self):
         """
@@ -178,7 +181,7 @@
         """
         ProjectBaseBrowser._showContextMenuMulti(self, self.multiMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainMulti", self.multiMenu)
+        self.showMenu.emit("MainMulti", self.multiMenu)
         
     def __showContextMenuBack(self):
         """
@@ -186,7 +189,7 @@
         """
         ProjectBaseBrowser._showContextMenuBack(self, self.backMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainBack", self.backMenu)
+        self.showMenu.emit("MainBack", self.backMenu)
         
     def _showContextMenu(self, menu):
         """
@@ -216,7 +219,7 @@
         for itm in itmList:
             if isinstance(itm, ProjectBrowserFileItem):
                 if itm.isPixmapFile():
-                    self.emit(SIGNAL('pixmapEditFile'), itm.fileName())
+                    self.pixmapEditFile.emit(itm.fileName())
         
     def _openItem(self):
         """
@@ -227,9 +230,9 @@
         for itm in itmList:
             if isinstance(itm, ProjectBrowserFileItem):
                 if itm.isPixmapFile():
-                    self.emit(SIGNAL('pixmapFile'), itm.fileName())
+                    self.pixmapFile.emit(itm.fileName())
                 elif itm.isSvgFile():
-                    self.emit(SIGNAL('svgFile'), itm.fileName())
+                    self.svgFile.emit(itm.fileName())
                 else:
                     type_ = mimetypes.guess_type(itm.fileName())[0]
                     if type_ is None or type_.split("/")[0] == "text":
@@ -246,7 +249,7 @@
         for itm in itmList[:]:
             if isinstance(itm, ProjectBrowserFileItem):
                 fn = itm.fileName()
-                self.emit(SIGNAL('closeSourceWindow'), fn)
+                self.closeSourceWindow.emit(fn)
                 self.project.removeFile(fn)
             else:
                 dn = itm.dirName()
@@ -292,7 +295,7 @@
         if dlg.exec_() == QDialog.Accepted:
             for itm, fn2, fn in zip(items[:], fullNames, names):
                 if isinstance(itm, ProjectBrowserFileItem):
-                    self.emit(SIGNAL('closeSourceWindow'), fn2)
+                    self.closeSourceWindow.emit(fn2)
                     self.project.deleteFile(fn)
                 elif isinstance(itm, ProjectBrowserDirectoryItem):
                     self.project.deleteDirectory(fn2)
--- a/Project/ProjectResourcesBrowser.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Project/ProjectResourcesBrowser.py	Thu Aug 12 16:11:13 2010 +0200
@@ -36,7 +36,10 @@
     @signal showMenu(string, QMenu) emitted when a menu is about to be shown. The name
             of the menu and a reference to the menu are given.
     """
+    appendStderr = pyqtSignal(str)
     sourceFile = pyqtSignal(str)
+    closeSourceWindow = pyqtSignal(str)
+    showMenu = pyqtSignal(str, QMenu)
     
     RCFilenameFormatPython = "{0}_rc.py"
     RCFilenameFormatRuby = "{0}_rc.rb"
@@ -289,7 +292,7 @@
         """
         ProjectBaseBrowser._showContextMenu(self, self.menu)
         
-        self.emit(SIGNAL("showMenu"), "Main", self.menu)
+        self.showMenu.emit("Main", self.menu)
         
     def __showContextMenuMulti(self):
         """
@@ -297,7 +300,7 @@
         """
         ProjectBaseBrowser._showContextMenuMulti(self, self.multiMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainMulti", self.multiMenu)
+        self.showMenu.emit("MainMulti", self.multiMenu)
         
     def __showContextMenuDir(self):
         """
@@ -305,7 +308,7 @@
         """
         ProjectBaseBrowser._showContextMenuDir(self, self.dirMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainDir", self.dirMenu)
+        self.showMenu.emit("MainDir", self.dirMenu)
         
     def __showContextMenuDirMulti(self):
         """
@@ -313,7 +316,7 @@
         """
         ProjectBaseBrowser._showContextMenuDirMulti(self, self.dirMultiMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainDirMulti", self.dirMultiMenu)
+        self.showMenu.emit("MainDirMulti", self.dirMultiMenu)
         
     def __showContextMenuBack(self):
         """
@@ -321,7 +324,7 @@
         """
         ProjectBaseBrowser._showContextMenuBack(self, self.backMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainBack", self.backMenu)
+        self.showMenu.emit("MainBack", self.backMenu)
         
     def __addResourceFiles(self):
         """
@@ -456,7 +459,7 @@
         
         if dlg.exec_() == QDialog.Accepted:
             for fn2, fn in zip(fullNames, files):
-                self.emit(SIGNAL('closeSourceWindow'), fn2)
+                self.closeSourceWindow.emit(fn2)
                 self.project.deleteFile(fn)
     
     ############################################################################
@@ -493,7 +496,7 @@
             error = str(self.compileProc.readLine(), 
                             ioEncoding, 'replace')
             s += error
-            self.emit(SIGNAL('appendStderr'), s)
+            self.appendStderr.emit(s)
         
     def __compileQRCDone(self, exitCode, exitStatus):
         """
--- a/Project/ProjectSourcesBrowser.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Project/ProjectSourcesBrowser.py	Thu Aug 12 16:11:13 2010 +0200
@@ -42,6 +42,8 @@
     @signal showMenu(string, QMenu) emitted when a menu is about to be shown. The name
             of the menu and a reference to the menu are given.
     """
+    closeSourceWindow = pyqtSignal(str)
+    showMenu = pyqtSignal(str, QMenu)
     sourceFile = pyqtSignal((str, ), (str, int), (str, int, str))
     
     def __init__(self, project, parent = None):
@@ -64,10 +66,8 @@
             """ project. Several actions can be executed via the context menu.</p>"""
         ))
         
-        self.connect(project, SIGNAL("prepareRepopulateItem"), 
-            self._prepareRepopulateItem)
-        self.connect(project, SIGNAL("completeRepopulateItem"),
-            self._completeRepopulateItem)
+        project.prepareRepopulateItem.connect(self._prepareRepopulateItem)
+        project.completeRepopulateItem.connect(self._completeRepopulateItem)
         
         self.codemetrics        = None
         self.codecoverage       = None
@@ -115,13 +115,13 @@
         self.checksMenu = QMenu(self.trUtf8('Check'))
         self.checksMenu.aboutToShow.connect(self.__showContextMenuCheck)
         
-        self.showMenu = QMenu(self.trUtf8('Show'))
-        self.showMenu.addAction(self.trUtf8('Code metrics...'), self.__showCodeMetrics)
-        self.coverageMenuAction = self.showMenu.addAction(\
+        self.menuShow = QMenu(self.trUtf8('Show'))
+        self.menuShow.addAction(self.trUtf8('Code metrics...'), self.__showCodeMetrics)
+        self.coverageMenuAction = self.menuShow.addAction(\
             self.trUtf8('Code coverage...'), self.__showCodeCoverage)
-        self.profileMenuAction = self.showMenu.addAction(\
+        self.profileMenuAction = self.menuShow.addAction(\
             self.trUtf8('Profile data...'), self.__showProfileData)
-        self.showMenu.aboutToShow.connect(self.__showContextMenuShow)
+        self.menuShow.aboutToShow.connect(self.__showContextMenuShow)
         
         self.graphicsMenu = QMenu(self.trUtf8('Diagrams'))
         self.classDiagramAction = self.graphicsMenu.addAction(\
@@ -157,7 +157,7 @@
         self.sourceMenu.addMenu(self.checksMenu)
         self.sourceMenu.addSeparator()
         self.sourceMenuActions["Show"] = \
-            self.sourceMenu.addMenu(self.showMenu)
+            self.sourceMenu.addMenu(self.menuShow)
         self.sourceMenu.addSeparator()
         self.sourceMenu.addAction(self.trUtf8('Copy Path to Clipboard'), 
             self._copyToClipboard)
@@ -442,7 +442,7 @@
         """
         ProjectBaseBrowser._showContextMenu(self, self.sourceMenu)
         
-        self.emit(SIGNAL("showMenu"), "Main", self.sourceMenu)
+        self.showMenu.emit("Main", self.sourceMenu)
         
     def __showContextMenuMulti(self):
         """
@@ -450,7 +450,7 @@
         """
         ProjectBaseBrowser._showContextMenuMulti(self, self.multiMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainMulti", self.multiMenu)
+        self.showMenu.emit("MainMulti", self.multiMenu)
         
     def __showContextMenuDir(self):
         """
@@ -458,7 +458,7 @@
         """
         ProjectBaseBrowser._showContextMenuDir(self, self.dirMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainDir", self.dirMenu)
+        self.showMenu.emit("MainDir", self.dirMenu)
         
     def __showContextMenuDirMulti(self):
         """
@@ -466,7 +466,7 @@
         """
         ProjectBaseBrowser._showContextMenuDirMulti(self, self.dirMultiMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainDirMulti", self.dirMultiMenu)
+        self.showMenu.emit("MainDirMulti", self.dirMultiMenu)
         
     def __showContextMenuBack(self):
         """
@@ -474,7 +474,7 @@
         """
         ProjectBaseBrowser._showContextMenuBack(self, self.backMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainBack", self.backMenu)
+        self.showMenu.emit("MainBack", self.backMenu)
         
     def __showContextMenuShow(self):
         """
@@ -510,7 +510,7 @@
         self.profileMenuAction.setEnabled(prEnable)
         self.coverageMenuAction.setEnabled(coEnable)
         
-        self.emit(SIGNAL("showMenu"), "Show", self.showMenu)
+        self.showMenu.emit("Show", self.menuShow)
         
     def _openItem(self):
         """
@@ -652,7 +652,7 @@
         
         if dlg.exec_() == QDialog.Accepted:
             for fn2, fn in zip(fullNames, files):
-                self.emit(SIGNAL('closeSourceWindow'), fn2)
+                self.closeSourceWindow.emit(fn2)
                 self.project.deleteFile(fn)
     
     ############################################################################
@@ -663,7 +663,7 @@
         """
         Private slot called before the checks menu is shown.
         """
-        self.emit(SIGNAL("showMenu"), "Checks", self.checksMenu)
+        self.showMenu.emit("Checks", self.checksMenu)
     
     ############################################################################
     ## Methods for the Show submenu
@@ -794,7 +794,7 @@
         """
         Private slot called before the checks menu is shown.
         """
-        self.emit(SIGNAL("showMenu"), "Graphics", self.graphicsMenu)
+        self.showMenu.emit("Graphics", self.graphicsMenu)
     
     def __showClassDiagram(self):
         """
--- a/Project/ProjectTranslationsBrowser.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Project/ProjectTranslationsBrowser.py	Thu Aug 12 16:11:13 2010 +0200
@@ -43,6 +43,12 @@
             of the menu and a reference to the menu are given.
     """
     sourceFile = pyqtSignal(str)
+    linguistFile = pyqtSignal(str)
+    appendStdout = pyqtSignal(str)
+    appendStderr = pyqtSignal(str)
+    closeSourceWindow = pyqtSignal(str)
+    trpreview = pyqtSignal((list, ), (list, bool))
+    showMenu = pyqtSignal(str, QMenu)
     
     def __init__(self, project, parent=None):
         """
@@ -463,7 +469,7 @@
         
         ProjectBaseBrowser._showContextMenu(self, self.menu)
         
-        self.emit(SIGNAL("showMenu"), "Main", self.menu)
+        self.showMenu.emit("Main", self.menu)
         
     def __showContextMenuMulti(self):
         """
@@ -502,7 +508,7 @@
         
         ProjectBaseBrowser._showContextMenuMulti(self, self.multiMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainMulti", self.multiMenu)
+        self.showMenu.emit("MainMulti", self.multiMenu)
         
     def __showContextMenuDir(self):
         """
@@ -519,7 +525,7 @@
         
         ProjectBaseBrowser._showContextMenuDir(self, self.dirMenu)
         
-        self.emit(SIGNAL("showMenu"), "MainDir", self.dirMenu)
+        self.showMenu.emit("MainDir", self.dirMenu)
         
     def __showContextMenuBack(self):
         """
@@ -534,7 +540,7 @@
                 for act in self.qmprocBackMenuActions:
                     act.setEnabled(True)
         
-        self.emit(SIGNAL("showMenu"), "MainBack", self.backMenu)
+        self.showMenu.emit("MainBack", self.backMenu)
         
     def __addTranslationFiles(self):
         """
@@ -559,9 +565,9 @@
             if isinstance(itm, ProjectBrowserFileItem):
                 if itm.isLinguistFile():
                     if itm.fileExt() == '.ts':
-                        self.emit(SIGNAL('linguistFile'), itm.fileName())
+                        self.linguistFile.emit(itm.fileName())
                     else:
-                        self.emit(SIGNAL('trpreview'), [itm.fileName()])
+                        self.trpreview.emit([itm.fileName()])
                 else:
                     self.sourceFile.emit(itm.fileName())
         
@@ -581,7 +587,7 @@
         
         for itm in itmList[:]:
             fn = itm.fileName()
-            self.emit(SIGNAL('closeSourceWindow'), fn)
+            self.closeSourceWindow.emit(fn)
             self.project.removeLanguageFile(fn)
         
     def __deleteLanguageFile(self):
@@ -600,7 +606,7 @@
         
         if dlg.exec_() == QDialog.Accepted:
             for fn in translationFiles:
-                self.emit(SIGNAL('closeSourceWindow'), fn)
+                self.closeSourceWindow.emit(fn)
                 self.project.deleteLanguageFile(fn)
         
     def __TRPreview(self, previewAll = False):
@@ -630,7 +636,7 @@
             fileNames.extend([os.path.join(self.project.ppath, trfile) \
                               for trfile in trfiles \
                               if trfile.endswith('.qm')])
-        self.emit(SIGNAL('trpreview'), fileNames, True)
+        self.trpreview[list, bool].emit(fileNames, True)
         
     def __TRPreviewAll(self):
         """
@@ -769,7 +775,7 @@
             s = ps
             output = str(proc.readLine(), ioEncoding, 'replace')
             s += output
-            self.emit(SIGNAL('appendStdout'), s)
+            self.appendStdout.emit(s)
         
     def __readStderrLupdate(self):
         """
@@ -805,7 +811,7 @@
             s = ps
             error = str(proc.readLine(), ioEncoding, 'replace')
             s += error
-            self.emit(SIGNAL('appendStderr'), s)
+            self.appendStderr.emit(s)
     
     ############################################################################
     ##  Methods for the generation commands
--- a/PyUnit/UnittestDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/PyUnit/UnittestDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -33,8 +33,10 @@
     """
     Class implementing the UI to the pyunit package.
     
-    @signal unittestFile(string,int,int) emitted to show the source of a unittest file
+    @signal unittestFile(string, int, int) emitted to show the source of a unittest file
     """
+    unittestFile = pyqtSignal(str, int, int)
+    
     def __init__(self,prog = None,dbs = None,ui = None,parent = None,name = None):
         """
         Constructor
@@ -498,7 +500,7 @@
                 break
         if fmatch:
             fn, ln = fmatch.group(1, 2)
-            self.emit(SIGNAL('unittestFile'), fn, int(ln), 1)
+            self.unittestFile.emit(fn, int(ln), 1)
 
 class QtTestResult(unittest.TestResult):
     """
--- a/QScintilla/APIsManager.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/QScintilla/APIsManager.py	Thu Aug 12 16:11:13 2010 +0200
@@ -24,6 +24,10 @@
     @signal apiPreparationCancelled() emitted after the API preparation has been cancelled
     @signal apiPreparationStarted() emitted after the API preparation has started
     """
+    apiPreparationFinished = pyqtSignal()
+    apiPreparationCancelled = pyqtSignal()
+    apiPreparationStarted = pyqtSignal()
+    
     def __init__(self, language, forPreparation = False, parent = None):
         """
         Constructor
@@ -46,12 +50,9 @@
             self.__apis = None
         else:
             self.__apis = QsciAPIs(self.__lexer)
-            self.connect(self.__apis, SIGNAL("apiPreparationFinished()"),
-                         self.__apiPreparationFinished)
-            self.connect(self.__apis, SIGNAL("apiPreparationCancelled()"),
-                         self.__apiPreparationCancelled)
-            self.connect(self.__apis, SIGNAL("apiPreparationStarted()"),
-                         self.__apiPreparationStarted)
+            self.__apis.apiPreparationFinished.connect(self.__apiPreparationFinished)
+            self.__apis.apiPreparationCancelled.connect(self.__apiPreparationCancelled)
+            self.__apis.apiPreparationStarted.connect(self.__apiPreparationStarted)
             self.__loadAPIs()
         
     def __loadAPIs(self):
@@ -92,21 +93,21 @@
         """
         self.__apis.savePrepared()
         self.__inPreparation = False
-        self.emit(SIGNAL('apiPreparationFinished()'))
+        self.apiPreparationFinished.emit()
     
     def __apiPreparationCancelled(self):
         """
         Private method called, after the API preparation process has been cancelled.
         """
         self.__inPreparation = False
-        self.emit(SIGNAL('apiPreparationCancelled()'))
+        self.apiPreparationCancelled.emit()
     
     def __apiPreparationStarted(self):
         """
         Private method called, when the API preparation process started.
         """
         self.__inPreparation = True
-        self.emit(SIGNAL('apiPreparationStarted()'))
+        self.apiPreparationStarted.emit()
     
     def prepareAPIs(self, ondemand = False, rawList = None):
         """
--- 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):
         """
--- a/QScintilla/MiniEditor.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/QScintilla/MiniEditor.py	Thu Aug 12 16:11:13 2010 +0200
@@ -87,8 +87,10 @@
     """
     Class implementing a minimalistic editor for simple editing tasks.
     
-    @signal editorSaved emitted after the file has been saved
+    @signal editorSaved() emitted after the file has been saved
     """
+    editorSaved = pyqtSignal()
+    
     def __init__(self, filename = "", filetype = "", parent = None, name = None):
         """
         Constructor
@@ -153,25 +155,18 @@
         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 = ""
         
-        self.connect(self.__textEdit, SIGNAL("textChanged()"), self.__documentWasModified)
-        self.connect(self.__textEdit, SIGNAL('modificationChanged(bool)'), 
-                     self.__modificationChanged)
-        self.connect(self.__textEdit, SIGNAL('cursorPositionChanged(int, int)'),
-                     self.__cursorPositionChanged)
+        self.__textEdit.textChanged.connect(self.__documentWasModified)
+        self.__textEdit.modificationChanged.connect(self.__modificationChanged)
+        self.__textEdit.cursorPositionChanged.connect(self.__cursorPositionChanged)
         
         self.__textEdit.setContextMenuPolicy(Qt.CustomContextMenu)
         self.__textEdit.customContextMenuRequested.connect(self.__contextMenuRequested)
         
-        self.connect(self.__textEdit, 
-                     SIGNAL("selectionChanged()"), 
-                     self.searchDlg.selectionChanged)
-        self.connect(self.__textEdit, 
-                     SIGNAL("selectionChanged()"), 
-                     self.replaceDlg.selectionChanged)
+        self.__textEdit.selectionChanged.connect(self.searchDlg.selectionChanged)
+        self.__textEdit.selectionChanged.connect(self.replaceDlg.selectionChanged)
         
         self.__setCurrentFile("")
         if filename:
@@ -529,17 +524,15 @@
         
         self.cutAct.setEnabled(False);
         self.copyAct.setEnabled(False);
-        self.connect(self.__textEdit, SIGNAL("copyAvailable(bool)"),
-                self.cutAct, SLOT("setEnabled(bool)"))
-        self.connect(self.__textEdit, SIGNAL("copyAvailable(bool)"),
-                self.copyAct, SLOT("setEnabled(bool)"))
+        self.__textEdit.copyAvailable.connect(self.cutAct.setEnabled)
+        self.__textEdit.copyAvailable.connect(self.copyAct.setEnabled)
         
         ####################################################################
         ## Below follow the actions for qscintilla standard commands.
         ####################################################################
         
         self.esm = QSignalMapper(self)
-        self.connect(self.esm, SIGNAL('mapped(int)'), self.__textEdit.editorCommand)
+        self.esm.mapped[int].connect(self.__textEdit.editorCommand)
         
         self.editorActGrp = createActionGroup(self)
         
@@ -1554,7 +1547,7 @@
             return False
         
         QApplication.restoreOverrideCursor()
-        self.emit(SIGNAL("editorSaved"))
+        self.editorSaved.emit()
         
         self.__setCurrentFile(fileName)
         self.__statusBar.showMessage(self.trUtf8("File saved"), 2000)
@@ -1839,7 +1832,7 @@
         else:
             printer.setDocName(self.trUtf8("Untitled"))
         preview = QPrintPreviewDialog(printer, self)
-        self.connect(preview, SIGNAL("paintRequested(QPrinter*)"), self.__printPreview)
+        preview.paintRequested.connect(self.__printPreview)
         preview.exec_()
     
     def __printPreview(self, printer):
@@ -1918,7 +1911,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
@@ -1982,8 +1975,7 @@
         """
         if self.lexer_ is not None and \
            (self.lexer_.lexer() == "container" or self.lexer_.lexer() is None):
-            self.disconnect(self.__textEdit, SIGNAL("SCN_STYLENEEDED(int)"), 
-                            self.__styleNeeded)
+            self.__textEdit.SCN_STYLENEEDED.disconnect(self.__styleNeeded)
         
         self.apiLanguage = ""
         self.lexer_ = None
@@ -2043,8 +2035,7 @@
         """
         if self.lexer_ is not None and \
            (self.lexer_.lexer() == "container" or self.lexer_.lexer() is None):
-            self.disconnect(self.__textEdit, SIGNAL("SCN_STYLENEEDED(int)"), 
-                            self.__styleNeeded)
+            self.__textEdit.SCN_STYLENEEDED.disconnect(self.__styleNeeded)
         
         filename = os.path.basename(filename)
         language = Preferences.getEditorLexerAssoc(filename)
@@ -2065,8 +2056,7 @@
         self.__textEdit.setLexer(self.lexer_)
         if self.lexer_.lexer() == "container" or self.lexer_.lexer() is None:
             self.__textEdit.setStyleBits(self.lexer_.styleBitsNeeded())
-            self.connect(self.__textEdit, SIGNAL("SCN_STYLENEEDED(int)"), 
-                         self.__styleNeeded)
+            self.__textEdit.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())
--- a/QScintilla/SearchReplaceWidget.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/QScintilla/SearchReplaceWidget.py	Thu Aug 12 16:11:13 2010 +0200
@@ -27,6 +27,8 @@
     
     @signal searchListChanged emitted to indicate a change of the search list
     """
+    searchListChanged = pyqtSignal()
+    
     def __init__(self, replace, vm, parent = None):
         """
         Constructor
@@ -180,7 +182,7 @@
         self.findHistory.insert(0, txt)
         self.ui.findtextCombo.clear()
         self.ui.findtextCombo.addItems(self.findHistory)
-        self.emit(SIGNAL('searchListChanged'))
+        self.searchListChanged.emit()
         
         ok = self.__findNextPrev(txt, False)
         if ok:
@@ -215,7 +217,7 @@
         self.findHistory.insert(0, txt)
         self.ui.findtextCombo.clear()
         self.ui.findtextCombo.addItems(self.findHistory)
-        self.emit(SIGNAL('searchListChanged'))
+        self.searchListChanged.emit()
         
         ok = self.__findNextPrev(txt, True)
         if ok:
--- a/QScintilla/Shell.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/QScintilla/Shell.py	Thu Aug 12 16:11:13 2010 +0200
@@ -80,8 +80,7 @@
             """ window caption.</p>"""
         ))
         
-        self.connect(self, SIGNAL('userListActivated(int, const QString)'),
-                     self.__completionListSelected)
+        self.userListActivated.connect(self.__completionListSelected)
         
         self.__showStdOutErr = Preferences.getShell("ShowStdOutErr")
         if self.__showStdOutErr:
@@ -143,7 +142,7 @@
         for language in self.clientLanguages:
             act = self.lmenu.addAction(language)
             act.setData(language)
-        self.connect(self.lmenu, SIGNAL("triggered(QAction *)"), self.__startDebugClient)
+        self.lmenu.triggered.connect(self.__startDebugClient)
         
         # Create the history context menu
         self.hmenu = QMenu(self.trUtf8('History'))
--- a/QScintilla/Terminal.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/QScintilla/Terminal.py	Thu Aug 12 16:11:13 2010 +0200
@@ -89,7 +89,7 @@
         
         # Create a little context menu to send Ctrl-C, Ctrl-D or Ctrl-Z
         self.csm = QSignalMapper(self)
-        self.connect(self.csm, SIGNAL('mapped(int)'), self.__sendCtrl)
+        self.csm.mapped[int].connect(self.__sendCtrl)
         
         self.cmenu = QMenu(self.trUtf8('Ctrl Commands'))
         act = self.cmenu.addAction(self.trUtf8('Ctrl-C'))
--- a/QScintilla/TypingCompleters/CompleterBase.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/QScintilla/TypingCompleters/CompleterBase.py	Thu Aug 12 16:11:13 2010 +0200
@@ -11,7 +11,7 @@
 user types '(').
 """
 
-from PyQt4.QtCore import QObject, SIGNAL
+from PyQt4.QtCore import QObject
 
 class CompleterBase(QObject):
     """
@@ -41,10 +41,10 @@
         """
         if enable:
             if not self.enabled:
-                self.connect(self.editor, SIGNAL("SCN_CHARADDED(int)"), self.charAdded)
+                self.editor.SCN_CHARADDED.connect(self.charAdded)
         else:
             if self.enabled:
-                self.disconnect(self.editor, SIGNAL("SCN_CHARADDED(int)"), self.charAdded)
+                self.editor.SCN_CHARADDED.disconnect(self.charAdded)
         self.enabled = enable
     
     def isEnabled(self):
--- a/SqlBrowser/SqlBrowser.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/SqlBrowser/SqlBrowser.py	Thu Aug 12 16:11:13 2010 +0200
@@ -38,8 +38,7 @@
         self.__browser = SqlBrowserWidget(self)
         self.setCentralWidget(self.__browser)
         
-        self.connect(self.__browser, SIGNAL("statusMessage(QString)"), 
-                     self.statusBar().showMessage)
+        self.__browser.statusMessage.connect(self.statusBar().showMessage)
         
         self.__initActions()
         self.__initMenus()
@@ -176,4 +175,4 @@
         """
         Private slot to show info about Qt.
         """
-        QMessageBox.aboutQt(self, self.trUtf8("SQL Browser"))
\ No newline at end of file
+        QMessageBox.aboutQt(self, self.trUtf8("SQL Browser"))
--- a/SqlBrowser/SqlBrowserWidget.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/SqlBrowser/SqlBrowserWidget.py	Thu Aug 12 16:11:13 2010 +0200
@@ -21,6 +21,8 @@
     
     @signal statusMessage(string) emitted to show a status message
     """
+    statusMessage = pyqtSignal(str)
+    
     cCount = 0
     
     def __init__(self, parent = None):
@@ -42,14 +44,11 @@
                 """Please check the Qt documentation how to build the """
                 """Qt SQL plugins."""))
         
-        self.connect(self.connections, SIGNAL("tableActivated(QString)"), 
-                     self.on_connections_tableActivated)
-        self.connect(self.connections, SIGNAL("schemaRequested(QString)"), 
-                     self.on_connections_schemaRequested)
-        self.connect(self.connections, SIGNAL("cleared()"), 
-                     self.on_connections_cleared)
+        self.connections.tableActivated.connect(self.on_connections_tableActivated)
+        self.connections.schemaRequested.connect(self.on_connections_schemaRequested)
+        self.connections.cleared.connect(self.on_connections_cleared)
         
-        self.emit(SIGNAL("statusMessage(QString)"), self.trUtf8("Ready"))
+        self.statusMessage.emit(self.trUtf8("Ready"))
     
     @pyqtSlot()
     def on_clearButton_clicked(self):
@@ -163,16 +162,14 @@
         model.setTable(table)
         model.select()
         if model.lastError().type() != QSqlError.NoError:
-            self.emit(SIGNAL("statusMessage(QString)"), model.lastError().text())
+            self.statusMessage.emit(model.lastError().text())
         self.table.setModel(model)
         self.table.setEditTriggers(
             QAbstractItemView.DoubleClicked | QAbstractItemView.EditKeyPressed)
         
         self.table.resizeColumnsToContents()
         
-        self.connect(self.table.selectionModel(), 
-                     SIGNAL("currentRowChanged(QModelIndex, QModelIndex)"), 
-                     self.updateActions)
+        self.table.selectionModel().currentRowChanged.connect(self.updateActions)
         
         self.updateActions()
     
@@ -287,11 +284,11 @@
         self.table.setModel(model)
         
         if model.lastError().type() != QSqlError.NoError:
-            self.emit(SIGNAL("statusMessage(QString)"), model.lastError().text())
+            self.statusMessage.emit(model.lastError().text())
         elif model.query().isSelect():
-            self.emit(SIGNAL("statusMessage(QString)"), self.trUtf8("Query OK."))
+            self.statusMessage.emit(self.trUtf8("Query OK."))
         else:
-            self.emit(SIGNAL("statusMessage(QString)"), 
+            self.statusMessage.emit(
                 self.trUtf8("Query OK, number of affected rows: {0}")\
                     .format(model.query().numRowsAffected()))
         
--- a/SqlBrowser/SqlConnectionWidget.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/SqlBrowser/SqlConnectionWidget.py	Thu Aug 12 16:11:13 2010 +0200
@@ -15,10 +15,14 @@
     """
     Class implementing a widget showing the SQL connections.
     
-    @signal tableActivated(QString) emitted after the entry for a table has been activated
-    @signal schemaRequested(QString) emitted when the schema display is requested
+    @signal tableActivated(string) emitted after the entry for a table has been activated
+    @signal schemaRequested(string) emitted when the schema display is requested
     @signal cleared() emitted after the connection tree has been cleared
     """
+    tableActivated = pyqtSignal(str)
+    schemaRequested = pyqtSignal(str)
+    cleared = pyqtSignal()
+    
     def __init__(self, parent = None):
         """
         Constructor
@@ -46,12 +50,8 @@
         
         layout.addWidget(self.__connectionTree)
         
-        self.connect(self.__connectionTree, 
-                     SIGNAL("itemActivated(QTreeWidgetItem*, int)"), 
-                     self.__itemActivated)
-        self.connect(self.__connectionTree, 
-                     SIGNAL("currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)"), 
-                     self.__currentItemChanged)
+        self.__connectionTree.itemActivated.connect(self.__itemActivated)
+        self.__connectionTree.currentItemChanged.connect(self.__currentItemChanged)
         
         self.__activeDb = ""
     
@@ -60,7 +60,7 @@
         Public slot to refresh the connection tree.
         """
         self.__connectionTree.clear()
-        self.emit(SIGNAL("cleared()"))
+        self.cleared.emit()
         
         connectionNames = QSqlDatabase.connectionNames()
         
@@ -92,7 +92,7 @@
         if cItm is None or cItm.parent() is None:
             return
         self.__setActive(cItm.parent())
-        self.emit(SIGNAL("schemaRequested(QString)"), cItm.text(0))
+        self.schemaRequested.emit(cItm.text(0))
     
     def __itemActivated(self, itm, column):
         """
@@ -108,7 +108,7 @@
             self.__setActive(itm)
         else:
             self.__setActive(itm.parent())
-            self.emit(SIGNAL("tableActivated(QString)"), itm.text(0))
+            self.tableActivated.emit(itm.text(0))
     
     def __currentItemChanged(self, current, previous):
         """
@@ -169,4 +169,4 @@
         
         self.__setBold(itm, True)
         self.__activeDb = QSqlDatabase.connectionNames()[
-                            self.__connectionTree.indexOfTopLevelItem(itm)]
\ No newline at end of file
+                            self.__connectionTree.indexOfTopLevelItem(itm)]
--- a/Tasks/TaskViewer.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Tasks/TaskViewer.py	Thu Aug 12 16:11:13 2010 +0200
@@ -331,6 +331,8 @@
     
     @signal displayFile(string, integer) emitted to go to a file task
     """
+    displayFile = pyqtSignal(str, int)
+    
     def __init__(self, parent, project):
         """
         Constructor
@@ -384,8 +386,7 @@
         self.__menuFilteredAct = self.__menu.addAction(self.trUtf8("&Filtered display")) 
         self.__menuFilteredAct.setCheckable(True)
         self.__menuFilteredAct.setChecked(False)
-        self.connect(self.__menuFilteredAct, SIGNAL("triggered(bool)"), 
-                     self.__activateFilter)
+        self.__menuFilteredAct.triggered[bool].connect(self.__activateFilter)
         self.__menu.addAction(self.trUtf8("Filter c&onfiguration..."), 
                               self.__configureFilter)
         self.__menu.addSeparator()
@@ -410,8 +411,7 @@
             self.__backMenu.addAction(self.trUtf8("&Filtered display")) 
         self.__backMenuFilteredAct.setCheckable(True)
         self.__backMenuFilteredAct.setChecked(False)
-        self.connect(self.__backMenuFilteredAct, SIGNAL("triggered(bool)"), 
-                     self.__activateFilter)
+        self.__backMenuFilteredAct.triggered[bool].connect(self.__activateFilter)
         self.__backMenu.addAction(self.trUtf8("Filter c&onfiguration..."), 
                               self.__configureFilter)
         self.__backMenu.addSeparator()
@@ -421,8 +421,7 @@
         
         self.setContextMenuPolicy(Qt.CustomContextMenu)
         self.customContextMenuRequested.connect(self.__showContextMenu)
-        self.connect(self, SIGNAL("itemActivated(QTreeWidgetItem *, int)"),
-                     self.__taskItemActivated)
+        self.itemActivated.connect(self.__taskItemActivated)
         
         self.setWindowIcon(UI.PixmapCache.getIcon("eric.png"))
     
@@ -465,7 +464,7 @@
         """
         fn = itm.getFilename()
         if fn:
-            self.emit(SIGNAL("displayFile"), fn, itm.getLineno())
+            self.displayFile.emit(fn, itm.getLineno())
         else:
             self.__editTaskProperties()
 
@@ -696,7 +695,7 @@
         Private slot to handle the "Go To" context menu entry.
         """
         task = self.currentItem()
-        self.emit(SIGNAL('displayFile'), task.getFilename(), task.getLineno())
+        self.displayFile.emit(task.getFilename(), task.getLineno())
 
     def handlePreferencesChanged(self):
         """
--- a/Templates/TemplateViewer.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Templates/TemplateViewer.py	Thu Aug 12 16:11:13 2010 +0200
@@ -418,8 +418,7 @@
         
         self.setContextMenuPolicy(Qt.CustomContextMenu)
         self.customContextMenuRequested.connect(self.__showContextMenu)
-        self.connect(self, SIGNAL("itemActivated(QTreeWidgetItem *, int)"),
-                     self.__templateItemActivated)
+        self.itemActivated.connect(self.__templateItemActivated)
         
         self.setWindowIcon(UI.PixmapCache.getIcon("eric.png"))
         
--- a/Tools/TRPreviewer.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Tools/TRPreviewer.py	Thu Aug 12 16:11:13 2010 +0200
@@ -79,16 +79,14 @@
         self.preview = WidgetWorkspace(self.cw)
         self.preview.setObjectName("preview")
         self.TRPreviewerLayout.addWidget(self.preview)
-        self.connect(self.preview, SIGNAL('lastWidgetClosed'), self.__updateActions)
+        self.preview.lastWidgetClosed.connect(self.__updateActions)
 
         self.setCentralWidget(self.cw)
         
-        self.connect(self.languageCombo,SIGNAL("activated(const QString&)"),
-                     self.setTranslation)
+        self.languageComboactivated[str].connect(self.setTranslation)
         
         self.translations = TranslationsDict(self.languageCombo, self)
-        self.connect(self.translations, SIGNAL('translationChanged'),
-                     self.preview, SIGNAL('rebuildWidgets'))
+        self.translations.translationChanged.connect(self.preview.rebuildWidgets)
         
         self.__initActions()
         self.__initMenus()
@@ -98,8 +96,8 @@
         
         # fire up the single application server
         self.SAServer = TRSingleApplicationServer(self)
-        self.connect(self.SAServer, SIGNAL('loadForm'), self.preview.loadWidget)
-        self.connect(self.SAServer, SIGNAL('loadTranslation'), self.translations.add)
+        self.SAServer.loadForm.connect(self.preview.loadWidget)
+        self.SAServer.loadTranslation.connect(self.translations.add)
         
         # defere loading of a UI file until we are shown
         self.filesToLoad = filenames[:]
@@ -263,8 +261,7 @@
         self.windowMenu = mb.addMenu(self.trUtf8('&Window'))
         self.windowMenu.setTearOffEnabled(True)
         self.windowMenu.aboutToShow.connect(self.__showWindowMenu)
-        self.connect(self.windowMenu, SIGNAL('triggered(QAction *)'),
-                     self.preview.toggleSelectedWidget)
+        self.windowMenu.triggered.connect(self.preview.toggleSelectedWidget)
         
         mb.addSeparator()
         
@@ -410,6 +407,8 @@
     
     @signal translationChanged() emit after a translator was set
     """
+    translationChanged = pyqtSignal()
+    
     def __init__(self, selector, parent):
         """
         Constructor
@@ -490,7 +489,7 @@
         self.selector.setCurrentIndex(self.selector.findText(name))
         self.selector.blockSignals(False)
         
-        self.emit(SIGNAL('translationChanged'))
+        self.translationChanged.emit()
     
     def reload(self):
         """
@@ -647,7 +646,7 @@
         self.__valid = False
         self.__timer = QTimer(self)
         self.__timer.setSingleShot(True)
-        self.connect(self.__timer, SIGNAL('timeout()'), self.buildWidget)
+        self.__timer.timeout.connect(self.buildWidget)
     
     def isValid(self):
         """
@@ -708,6 +707,8 @@
     
     @signal lastWidgetClosed() emitted after last widget was closed
     """
+    lastWidgetClosed = pyqtSignal()
+    
     def __init__(self, parent = None):
         """
         Constructor
@@ -749,7 +750,7 @@
                 del wview
                 return
             
-            self.connect(self, SIGNAL("rebuildWidgets"), wview.buildWidget)
+            self.rebuildWidgets.connect(wview.buildWidget)
             wview.installEventFilter(self)
             
             self.addWindow(wview)
@@ -775,7 +776,7 @@
             try:
                 self.widgets.remove(obj)
                 if len(self.widgets) == 0:
-                    self.emit(SIGNAL('lastWidgetClosed'))
+                    self.lastWidgetClosed.emit()
             except ValueError:
                 pass
         
--- a/Tools/TRSingleApplication.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Tools/TRSingleApplication.py	Thu Aug 12 16:11:13 2010 +0200
@@ -9,7 +9,7 @@
 
 import os
 
-from PyQt4.QtCore import SIGNAL
+from PyQt4.QtCore import pyqtSignal
 
 from Utilities.SingleApplication import SingleApplicationClient, SingleApplicationServer
 
@@ -28,9 +28,12 @@
     Class implementing the single application server embedded within the 
     Translations Previewer.
     
-    @signal loadForm(fname) emitted to load a form file
-    @signal loadTranslation(fname, first) emitted to load a translation file
+    @signal loadForm(str) emitted to load a form file
+    @signal loadTranslation(str, bool) emitted to load a translation file
     """
+    loadForm = pyqtSignal(str)
+    loadTranslation = pyqtSignal(str, bool)
+    
     def __init__(self, parent):
         """
         Constructor
@@ -63,7 +66,7 @@
         @param fnames filenames of the forms to be loaded (list of strings)
         """
         for fname in fnames:
-            self.emit(SIGNAL('loadForm'), fname)
+            self.loadForm.emit(fname)
         
     def __saLoadTranslation(self, fnames):
         """
@@ -73,7 +76,7 @@
         """
         first = True
         for fname in fnames:
-            self.emit(SIGNAL('loadTranslation'), fname, first)
+            self.loadTranslation.emit(fname, first)
             first = False
 
 class TRSingleApplicationClient(SingleApplicationClient):
--- a/Tools/TrayStarter.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Tools/TrayStarter.py	Thu Aug 12 16:11:13 2010 +0200
@@ -10,7 +10,7 @@
 import sys
 import os
 
-from PyQt4.QtCore import SIGNAL, QProcess, QSettings, QFileInfo
+from PyQt4.QtCore import QProcess, QSettings, QFileInfo
 from PyQt4.QtGui  import QSystemTrayIcon, QMenu, qApp, QCursor, QMessageBox
 
 import Globals
@@ -44,27 +44,23 @@
         self.recentFiles = []
         self.__loadRecentFiles()
         
-        self.connect(self, SIGNAL("activated(QSystemTrayIcon::ActivationReason)"),
-                     self.__activated)
+        self.activated.connect(self.__activated)
         
         self.__menu = QMenu(self.trUtf8("Eric5 tray starter"))
         
         self.recentProjectsMenu = QMenu(self.trUtf8('Recent Projects'), self.__menu)
         self.recentProjectsMenu.aboutToShow.connect(self.__showRecentProjectsMenu)
-        self.connect(self.recentProjectsMenu, SIGNAL('triggered(QAction *)'),
-                     self.__openRecent)
+        self.recentProjectsMenu.triggered.connect(self.__openRecent)
         
         self.recentMultiProjectsMenu = \
             QMenu(self.trUtf8('Recent Multiprojects'), self.__menu)
         self.recentMultiProjectsMenu.aboutToShow.connect(
             self.__showRecentMultiProjectsMenu)
-        self.connect(self.recentMultiProjectsMenu, SIGNAL('triggered(QAction *)'),
-                     self.__openRecent)
+        self.recentMultiProjectsMenu.triggered.connect(self.__openRecent)
         
         self.recentFilesMenu = QMenu(self.trUtf8('Recent Files'), self.__menu)
         self.recentFilesMenu.aboutToShow.connect(self.__showRecentFilesMenu)
-        self.connect(self.recentFilesMenu, SIGNAL('triggered(QAction *)'),
-                     self.__openRecent)
+        self.recentFilesMenu.triggered.connect(self.__openRecent)
         
         act = self.__menu.addAction(self.trUtf8("Eric5 tray starter"))
         font = act.font()
--- a/Tools/UIPreviewer.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Tools/UIPreviewer.py	Thu Aug 12 16:11:13 2010 +0200
@@ -82,8 +82,7 @@
 
         self.setCentralWidget(self.cw)
         
-        self.connect(self.styleCombo,SIGNAL("activated(const QString&)"),
-                     self.__guiStyleSelected)
+        self.styleCombo.activated[str].connect(self.__guiStyleSelected)
         
         self.__initActions()
         self.__initMenus()
@@ -524,7 +523,7 @@
             QPrinter.ColorMode(int(settings.value("UIPreviewer/colormode"))))
         
         preview = QPrintPreviewDialog(printer, self)
-        self.connect(preview, SIGNAL("paintRequested(QPrinter*)"), self.__print)
+        preview.paintRequested.connect(self.__print)
         preview.exec_()
         
     def __print(self, printer):
@@ -550,4 +549,4 @@
         p.drawImage(marginX, marginY, 
                     img.scaled(width, height, 
                                Qt.KeepAspectRatio, Qt.SmoothTransformation))
-        p.end()
\ No newline at end of file
+        p.end()
--- a/UI/Browser.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/UI/Browser.py	Thu Aug 12 16:11:13 2010 +0200
@@ -44,6 +44,15 @@
     @signal unittestOpen(string) emitted to open a Python file for a unittest
     """
     sourceFile = pyqtSignal((str, ), (str, int), (str, int, str))
+    designerFile = pyqtSignal(str)
+    linguistFile = pyqtSignal(str)
+    trpreview = pyqtSignal(list)
+    projectFile = pyqtSignal(str)
+    multiProjectFile = pyqtSignal(str)
+    pixmapFile = pyqtSignal(str)
+    pixmapEditFile = pyqtSignal(str)
+    svgFile = pyqtSignal(str)
+    unittestOpen = pyqtSignal(str)
     
     def __init__(self, parent = None):
         """
@@ -67,9 +76,9 @@
         
         self.setContextMenuPolicy(Qt.CustomContextMenu)
         self.customContextMenuRequested.connect(self._contextMenuRequested)
-        self.connect(self, SIGNAL("activated(const QModelIndex &)"), self._openItem)
-        self.connect(self, SIGNAL("expanded(const QModelIndex &)"), self._resizeColumns)
-        self.connect(self, SIGNAL("collapsed(const QModelIndex &)"), self._resizeColumns)
+        self.activated.connect(self._openItem)
+        self.expanded.connect(self._resizeColumns)
+        self.collapsed.connect(self._resizeColumns)
         
         self.setWhatsThis(QApplication.translate('Browser', 
             """<b>The Browser Window</b>"""
@@ -323,24 +332,24 @@
                 elif itm.isDFile():
                     self.sourceFile[str, int, str].emit(itm.fileName(), 1, "D")
                 elif itm.isDesignerFile():
-                    self.emit(SIGNAL('designerFile'), itm.fileName())
+                    self.designerFile.emit(itm.fileName())
                 elif itm.isLinguistFile():
                     if itm.fileExt() == '.ts':
-                        self.emit(SIGNAL('linguistFile'), itm.fileName())
+                        self.linguistFile.emit(itm.fileName())
                     else:
-                        self.emit(SIGNAL('trpreview'), [itm.fileName()])
+                        self.trpreview.emit([itm.fileName()])
                 elif itm.isProjectFile():
-                    self.emit(SIGNAL('projectFile'), itm.fileName())
+                    self.projectFile.emit(itm.fileName())
                 elif itm.isMultiProjectFile():
-                    self.emit(SIGNAL('multiProjectFile'), itm.fileName())
+                    self.multiProjectFile.emit(itm.fileName())
                 elif itm.isIdlFile():
                     self.sourceFile[str].emit(itm.fileName())
                 elif itm.isResourcesFile():
                     self.sourceFile[str].emit(itm.fileName())
                 elif itm.isPixmapFile():
-                    self.emit(SIGNAL('pixmapFile'), itm.fileName())
+                    self.pixmapFile.emit(itm.fileName())
                 elif itm.isSvgFile():
-                    self.emit(SIGNAL('svgFile'), itm.fileName())
+                    self.svgFile.emit(itm.fileName())
                 else:
                     type_ = mimetypes.guess_type(itm.fileName())[0]
                     if type_ is None or type_.split("/")[0] == "text":
@@ -366,7 +375,7 @@
         for itm in itmList:
             if isinstance(itm, BrowserFileItem):
                 if itm.isPixmapFile():
-                    self.emit(SIGNAL('pixmapEditFile'), itm.fileName())
+                    self.pixmapEditFile.emit(itm.fileName())
         
     def _copyToClipboard(self):
         """
@@ -397,7 +406,7 @@
             pyfn = None
 
         if pyfn is not None:
-            self.emit(SIGNAL('unittestOpen'), pyfn)
+            self.unittestOpen.emit(pyfn)
         
     def __newToplevelDir(self):
         """
--- a/UI/CompareDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/UI/CompareDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -131,17 +131,13 @@
         self.cReplacedFormat.setBackground(QBrush(QColor(190, 190, 237)))
         
         # connect some of our widgets explicitly
-        self.connect(self.file1Edit, SIGNAL("textChanged(const QString &)"), 
-                     self.__fileChanged)
-        self.connect(self.file2Edit, SIGNAL("textChanged(const QString &)"), 
-                     self.__fileChanged)
-        self.connect(self.synchronizeCheckBox, SIGNAL("toggled(bool)"), 
-                     self.on_synchronizeCheckBox_toggled)
-        self.connect(self.vsb1, SIGNAL("valueChanged(int)"), self.__scrollBarMoved)
-        self.connect(self.vsb1, SIGNAL('valueChanged(int)'),
-            self.vsb2, SLOT('setValue(int)'))
-        self.connect(self.vsb2, SIGNAL('valueChanged(int)'),
-            self.vsb1, SLOT('setValue(int)'))
+        self.file1Edit.textChanged.connect(self.__fileChanged)
+        self.file2Edit.textChanged.connect(self.__fileChanged)
+        self.synchronizeCheckBox.toggled[bool].connect(
+            self.on_synchronizeCheckBox_toggled)
+        self.vsb1.valueChanged.connect(self.__scrollBarMoved)
+        self.vsb1.valueChanged.connect(self.vsb2.setValue)
+        self.vsb2.valueChanged.connect(self.vsb1.setValue)
         
         self.diffParas = []
         self.currentDiffPos = -1
@@ -416,15 +412,11 @@
         """
         if sync:
             self.hsb2.setValue(self.hsb1.value())
-            self.connect(self.hsb1, SIGNAL('valueChanged(int)'),
-                self.hsb2, SLOT('setValue(int)'))
-            self.connect(self.hsb2, SIGNAL('valueChanged(int)'),
-                self.hsb1, SLOT('setValue(int)'))
+            self.hsb1.valueChanged.connect(self.hsb2.setValue)
+            self.hsb2.valueChanged.connect(self.hsb1.setValue)
         else:
-            self.disconnect(self.hsb1, SIGNAL('valueChanged(int)'),
-                self.hsb2, SLOT('setValue(int)'))
-            self.disconnect(self.hsb2, SIGNAL('valueChanged(int)'),
-                self.hsb1, SLOT('setValue(int)'))
+            self.hsb1.valueChanged.disconnect(self.hsb2.setValue)
+            self.hsb2.valueChanged.disconnect(self.hsb1.setValue)
 
 class CompareWindow(QMainWindow):
     """
--- a/UI/DiffDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/UI/DiffDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -230,10 +230,8 @@
         self.cLineNoFormat.setBackground(QBrush(QColor(255, 220, 168)))
         
         # connect some of our widgets explicitly
-        self.connect(self.file1Edit, SIGNAL("textChanged(const QString &)"), 
-                     self.__fileChanged)
-        self.connect(self.file2Edit, SIGNAL("textChanged(const QString &)"), 
-                     self.__fileChanged)
+        self.file1Edit.textChanged.connect(self.__fileChanged)
+        self.file2Edit.textChanged.connect(self.__fileChanged)
         
     def show(self, filename = None):
         """
--- a/UI/FindFileDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/UI/FindFileDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -33,6 +33,7 @@
     @signal designerFile(string) emitted to open a Qt-Designer file
     """
     sourceFile = pyqtSignal(str, int, str, int, int)
+    designerFile = pyqtSignal(str)
     
     lineRole    = Qt.UserRole + 1
     startRole   = Qt.UserRole + 2
@@ -484,7 +485,7 @@
         else:
             fn = file
         if fn.endswith('.ui'):
-            self.emit(SIGNAL('designerFile'), fn)
+            self.designerFile.emit(fn)
         else:
             self.sourceFile.emit(fn, line, "", start, end)
         
--- a/UI/FindFileNameDialog.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/UI/FindFileNameDialog.py	Thu Aug 12 16:11:13 2010 +0200
@@ -32,6 +32,7 @@
     @signal designerFile(string) emitted to open a Qt-Designer file
     """
     sourceFile = pyqtSignal(str)
+    designerFile = pyqtSignal(str)
     
     def __init__(self, project, parent = None):
         """
@@ -82,7 +83,7 @@
         filePath = itm.text(1)
         
         if fileName.endswith('.ui'):
-            self.emit(SIGNAL('designerFile'), os.path.join(filePath, fileName))
+            self.designerFile.emit(os.path.join(filePath, fileName))
         else:
             self.sourceFile.emit(os.path.join(filePath, fileName))
 
--- a/UI/UserInterface.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/UI/UserInterface.py	Thu Aug 12 16:11:13 2010 +0200
@@ -99,7 +99,8 @@
 from E5XML.SessionWriter import SessionWriter
 from E5XML.SessionHandler import SessionHandler
 
-from E5Network.E5NetworkProxyFactory import E5NetworkProxyFactory, proxyAuthenticationRequired
+from E5Network.E5NetworkProxyFactory import E5NetworkProxyFactory, \
+    proxyAuthenticationRequired
 
 from IconEditor.IconEditorWindow import IconEditorWindow
 
@@ -110,9 +111,12 @@
     """
     Helper class used to redirect stdout and stderr to the log window
     
-    @signal appendStderr(string) emitted to write data to stderr logger
-    @signal appendStdout(string) emitted to write data to stdout logger
+    @signal appendStderr(str) emitted to write data to stderr logger
+    @signal appendStdout(str) emitted to write data to stdout logger
     """
+    appendStderr = pyqtSignal(str)
+    appendStdout = pyqtSignal(str)
+    
     def __init__(self, stderr):
         """
         Constructor
@@ -132,9 +136,9 @@
         if n:
             line = self.buffer[:n]
             if self.stderr:
-                self.emit(SIGNAL('appendStderr'), line)
+                self.appendStderr.emit(line)
             else:
-                self.emit(SIGNAL('appendStdout'), line)
+                self.appendStdout.emit(line)
             self.buffer = self.buffer[n:]
             
     def __bufferedWrite(self):
@@ -164,14 +168,18 @@
     """
     Class implementing the main user interface.
     
-    @signal appendStderr(QString) emitted to write data to stderr logger
-    @signal appendStdout(QString) emitted to write data to stdout logger
+    @signal appendStderr(str) emitted to write data to stderr logger
+    @signal appendStdout(str) emitted to write data to stdout logger
     @signal preferencesChanged() emitted after the preferences were changed
     @signal reloadAPIs() emitted to reload the api information
-    @signal showMenu(string, QMenu) emitted when a menu is about to be shown. The name
+    @signal showMenu(str, QMenu) emitted when a menu is about to be shown. The name
             of the menu and a reference to the menu are given.
     """
+    appendStderr = pyqtSignal(str)
+    appendStdout = pyqtSignal(str)
     preferencesChanged = pyqtSignal()
+    reloadAPIs = pyqtSignal()
+    showMenu = pyqtSignal(str, QMenu)
     
     maxFilePathLen = 100
     maxSbFilePathLen = 150
@@ -275,32 +283,22 @@
             self.viewmanager.openSourceFile)
         self.browser.sourceFile[str, int, str].connect(
             self.viewmanager.openSourceFile)
-        self.connect(self.browser, SIGNAL('designerFile'),
-                     self.__designer)
-        self.connect(self.browser, SIGNAL('linguistFile'),
-                     self.__linguist4)
-        self.connect(self.browser, SIGNAL('projectFile'),
-                     self.project.openProject)
-        self.connect(self.browser, SIGNAL('multiProjectFile'),
-                     self.multiProject.openMultiProject)
-        self.connect(self.browser, SIGNAL('pixmapEditFile'),
-                     self.__editPixmap)
-        self.connect(self.browser, SIGNAL('pixmapFile'),
-                     self.__showPixmap)
-        self.connect(self.browser, SIGNAL('svgFile'),
-                     self.__showSvg)
-        self.connect(self.browser, SIGNAL('unittestOpen'),
-                     self.__unittestScript)
-        self.connect(self.browser, SIGNAL('trpreview'),
-                     self.__TRPreviewer)
+        self.browser.designerFile.connect(self.__designer)
+        self.browser.linguistFile.connect(self.__linguist4)
+        self.browser.projectFile.connect(self.project.openProject)
+        self.browser.multiProjectFile.connect(self.multiProject.openMultiProject)
+        self.browser.pixmapEditFile.connect(self.__editPixmap)
+        self.browser.pixmapFile.connect(self.__showPixmap)
+        self.browser.svgFile.connect(self.__showSvg)
+        self.browser.unittestOpen.connect(self.__unittestScript)
+        self.browser.trpreview.connect(self.__TRPreviewer)
         
         self.debugViewer.exceptionLogger.sourceFile.connect(
             self.viewmanager.openSourceFile)
         
         self.debugViewer.sourceFile.connect(self.viewmanager.showDebugSource)
         
-        self.connect(self.taskViewer, SIGNAL('displayFile'),
-                     self.viewmanager.openSourceFile)
+        self.taskViewer.displayFile.connect(self.viewmanager.openSourceFile)
         
         self.projectBrowser.psBrowser.sourceFile[str].connect(
             self.viewmanager.openSourceFile)
@@ -308,85 +306,65 @@
             self.viewmanager.openSourceFile)
         self.projectBrowser.psBrowser.sourceFile[str, int, str].connect(
             self.viewmanager.openSourceFile)
-        self.connect(self.projectBrowser.psBrowser, SIGNAL('closeSourceWindow'),
-                     self.viewmanager.closeWindow)
-        self.connect(self.projectBrowser.psBrowser, SIGNAL('unittestOpen'),
-                     self.__unittestScript)
-        
-        self.connect(self.projectBrowser.pfBrowser, SIGNAL('designerFile'),
-                     self.__designer)
+        self.projectBrowser.psBrowser.closeSourceWindow.connect(
+            self.viewmanager.closeWindow)
+        self.projectBrowser.psBrowser.unittestOpen.connect(self.__unittestScript)
+        
+        self.projectBrowser.pfBrowser.designerFile.connect(self.__designer)
         self.projectBrowser.pfBrowser.sourceFile.connect(
             self.viewmanager.openSourceFile)
-        self.connect(self.projectBrowser.pfBrowser, SIGNAL('uipreview'),
-                     self.__UIPreviewer)
-        self.connect(self.projectBrowser.pfBrowser, SIGNAL('trpreview'),
-                     self.__TRPreviewer)
-        self.connect(self.projectBrowser.pfBrowser, SIGNAL('closeSourceWindow'),
-                     self.viewmanager.closeWindow)
-        self.connect(self.projectBrowser.pfBrowser, SIGNAL('appendStdout'),
-                     self.appendToStdout)
-        self.connect(self.projectBrowser.pfBrowser, SIGNAL('appendStderr'),
-                     self.appendToStderr)
+        self.projectBrowser.pfBrowser.uipreview.connect(self.__UIPreviewer)
+        self.projectBrowser.pfBrowser.trpreview.connect(self.__TRPreviewer)
+        self.projectBrowser.pfBrowser.closeSourceWindow.connect(
+            self.viewmanager.closeWindow)
+        self.projectBrowser.pfBrowser.appendStderr.connect(self.appendToStderr)
         
         self.projectBrowser.prBrowser.sourceFile.connect(
             self.viewmanager.openSourceFile)
-        self.connect(self.projectBrowser.prBrowser, SIGNAL('closeSourceWindow'),
-                     self.viewmanager.closeWindow)
-        self.connect(self.projectBrowser.prBrowser, SIGNAL('appendStdout'),
-                     self.appendToStdout)
-        self.connect(self.projectBrowser.prBrowser, SIGNAL('appendStderr'),
-                     self.appendToStderr)
-        
-        self.connect(self.projectBrowser.ptBrowser, SIGNAL('linguistFile'),
-                     self.__linguist4)
+        self.projectBrowser.prBrowser.closeSourceWindow.connect(
+            self.viewmanager.closeWindow)
+        self.projectBrowser.prBrowser.appendStderr.connect(self.appendToStderr)
+        
+        self.projectBrowser.ptBrowser.linguistFile.connect(self.__linguist4)
         self.projectBrowser.ptBrowser.sourceFile.connect(
             self.viewmanager.openSourceFile)
-        self.connect(self.projectBrowser.ptBrowser, SIGNAL('trpreview'),
-                     self.__TRPreviewer)
-        self.connect(self.projectBrowser.ptBrowser, SIGNAL('closeSourceWindow'),
-                     self.viewmanager.closeWindow)
-        self.connect(self.projectBrowser.ptBrowser, SIGNAL('appendStdout'),
-                     self.appendToStdout)
-        self.connect(self.projectBrowser.ptBrowser, SIGNAL('appendStderr'),
-                     self.appendToStderr)
+        self.projectBrowser.ptBrowser.trpreview[list].connect(self.__TRPreviewer)
+        self.projectBrowser.ptBrowser.trpreview[list, bool].connect(self.__TRPreviewer)
+        self.projectBrowser.ptBrowser.closeSourceWindow.connect(
+            self.viewmanager.closeWindow)
+        self.projectBrowser.ptBrowser.appendStdout.connect(self.appendToStdout)
+        self.projectBrowser.ptBrowser.appendStderr.connect(self.appendToStderr)
         
         self.projectBrowser.piBrowser.sourceFile[str].connect(
             self.viewmanager.openSourceFile)
         self.projectBrowser.piBrowser.sourceFile[str, int].connect(
             self.viewmanager.openSourceFile)
-        self.connect(self.projectBrowser.piBrowser, SIGNAL('closeSourceWindow'),
-                     self.viewmanager.closeWindow)
-        self.connect(self.projectBrowser.piBrowser, SIGNAL('appendStdout'),
-                     self.appendToStdout)
-        self.connect(self.projectBrowser.piBrowser, SIGNAL('appendStderr'),
-                     self.appendToStderr)
+        self.projectBrowser.piBrowser.closeSourceWindow.connect(
+            self.viewmanager.closeWindow)
+        self.projectBrowser.piBrowser.appendStdout.connect(self.appendToStdout)
+        self.projectBrowser.piBrowser.appendStderr.connect(self.appendToStderr)
         
         self.projectBrowser.poBrowser.sourceFile.connect(
             self.viewmanager.openSourceFile)
-        self.connect(self.projectBrowser.poBrowser, SIGNAL('closeSourceWindow'),
-                     self.viewmanager.closeWindow)
-        self.connect(self.projectBrowser.poBrowser, SIGNAL('pixmapEditFile'),
-                     self.__editPixmap)
-        self.connect(self.projectBrowser.poBrowser, SIGNAL('pixmapFile'),
-                     self.__showPixmap)
-        self.connect(self.projectBrowser.poBrowser, SIGNAL('svgFile'),
-                     self.__showSvg)
+        self.projectBrowser.poBrowser.closeSourceWindow.connect(
+            self.viewmanager.closeWindow)
+        self.projectBrowser.poBrowser.pixmapEditFile.connect(self.__editPixmap)
+        self.projectBrowser.poBrowser.pixmapFile.connect(self.__showPixmap)
+        self.projectBrowser.poBrowser.svgFile.connect(self.__showSvg)
         
         self.project.sourceFile.connect(self.viewmanager.openSourceFile)
         self.project.newProject.connect(self.viewmanager.newProject)
         self.project.projectOpened.connect(self.viewmanager.projectOpened)
         self.project.projectClosed.connect(self.viewmanager.projectClosed)
-        self.connect(self.project, SIGNAL('projectFileRenamed'),
-                     self.viewmanager.projectFileRenamed)
-        self.connect(self.project, SIGNAL('lexerAssociationsChanged'),
-                     self.viewmanager.projectLexerAssociationsChanged)
+        self.project.projectFileRenamed.connect(self.viewmanager.projectFileRenamed)
+        self.project.lexerAssociationsChanged.connect(
+            self.viewmanager.projectLexerAssociationsChanged)
         self.project.newProject.connect(self.__newProject)
         self.project.projectOpened.connect(self.__projectOpened)
         self.project.projectOpened.connect(self.__activateProjectBrowser)
         self.project.projectClosed.connect(self.__projectClosed)
         
-        self.connect(self.multiProject, SIGNAL("multiProjectOpened"), 
-                     self.__activateMultiProjectBrowser)
+        self.multiProject.multiProjectOpened.connect(self.__activateMultiProjectBrowser)
         
         self.debuggerUI.resetUI.connect(self.viewmanager.handleResetUI)
         self.debuggerUI.resetUI.connect(self.debugViewer.handleResetUI)
@@ -411,20 +389,14 @@
         debugServer.clientProcessStdout.connect(self.appendToStdout)
         debugServer.clientProcessStderr.connect(self.appendToStderr)
         
-        self.connect(self.stdout, SIGNAL('appendStdout'),
-                     self.appendToStdout)
-        
-        self.connect(self.stderr, SIGNAL('appendStderr'),
-                     self.appendToStderr)
+        self.stdout.appendStdout.connect(self.appendToStdout)
+        self.stderr.appendStderr.connect(self.appendToStderr)
         
         self.preferencesChanged.connect(self.viewmanager.preferencesChanged)
-        self.connect(self, SIGNAL('reloadAPIs'),
-                     self.viewmanager.getAPIsManager().reloadAPIs)
+        self.reloadAPIs.connect(self.viewmanager.getAPIsManager().reloadAPIs)
         self.preferencesChanged.connect(self.logViewer.preferencesChanged)
-        self.connect(self, SIGNAL('appendStdout'),
-                     self.logViewer.appendToStdout)
-        self.connect(self, SIGNAL('appendStderr'),
-                     self.logViewer.appendToStderr)
+        self.appendStdout.connect(self.logViewer.appendToStdout)
+        self.appendStderr.connect(self.logViewer.appendToStderr)
         self.preferencesChanged.connect(self.shell.handlePreferencesChanged)
         self.preferencesChanged.connect(self.terminal.handlePreferencesChanged)
         self.preferencesChanged.connect(self.project.handlePreferencesChanged)
@@ -447,59 +419,44 @@
         self.preferencesChanged.connect(debugServer.preferencesChanged)
         self.preferencesChanged.connect(self.cooperation.preferencesChanged)
         
-        self.connect(self.viewmanager, SIGNAL('editorSaved'),
-                     self.project.repopulateItem)
+        self.viewmanager.editorSaved.connect(self.project.repopulateItem)
         self.viewmanager.lastEditorClosed.connect(self.__lastEditorClosed)
         self.viewmanager.editorOpened.connect(self.__editorOpened)
-        self.connect(self.viewmanager, SIGNAL('changeCaption'),
-                     self.__setWindowCaption)
+        self.viewmanager.changeCaption.connect(self.__setWindowCaption)
         self.viewmanager.checkActions.connect(self.__checkActions)
-        self.connect(self.viewmanager, SIGNAL('editorChanged'),
-                     self.projectBrowser.handleEditorChanged)
+        self.viewmanager.editorChanged.connect(self.projectBrowser.handleEditorChanged)
         self.viewmanager.checkActions.connect(self.cooperation.checkEditorActions)
         
-        self.connect(self.cooperation, SIGNAL('shareEditor(bool)'),
-                     self.viewmanager.shareEditor)
-        self.connect(self.cooperation, SIGNAL('startEdit()'),
-                     self.viewmanager.startSharedEdit)
-        self.connect(self.cooperation, SIGNAL('sendEdit()'),
-                     self.viewmanager.sendSharedEdit)
-        self.connect(self.cooperation, SIGNAL('cancelEdit()'),
-                     self.viewmanager.cancelSharedEdit)
-        self.connect(self.cooperation, SIGNAL('connected(bool)'),
-                     self.viewmanager.shareConnected)
-        self.connect(self.cooperation, SIGNAL('editorCommand(QString, QString, QString)'),
-                     self.viewmanager.receive)
+        self.cooperation.shareEditor.connect(self.viewmanager.shareEditor)
+        self.cooperation.startEdit.connect(self.viewmanager.startSharedEdit)
+        self.cooperation.sendEdit.connect(self.viewmanager.sendSharedEdit)
+        self.cooperation.cancelEdit.connect(self.viewmanager.cancelSharedEdit)
+        self.cooperation.connected.connect(self.viewmanager.shareConnected)
+        self.cooperation.editorCommand.connect(self.viewmanager.receive)
         self.viewmanager.setCooperationClient(self.cooperation.getClient())
         
-        self.connect(self.symbolsViewer, SIGNAL('insertSymbol(QString)'), 
-                     self.viewmanager.insertSymbol)
-        
-        self.connect(self.numbersViewer, SIGNAL('insertNumber(QString)'), 
-                     self.viewmanager.insertNumber)
+        self.symbolsViewer.insertSymbol.connect(self.viewmanager.insertSymbol)
+        
+        self.numbersViewer.insertNumber.connect(self.viewmanager.insertNumber)
         
         # Generate the unittest dialog
         self.unittestDialog = UnittestDialog(None, self.debuggerUI.debugServer, self)
-        self.connect(self.unittestDialog, SIGNAL('unittestFile'),
-                     self.viewmanager.setFileLine)
+        self.unittestDialog.unittestFile.connect(self.viewmanager.setFileLine)
         
         # Generate the find in project files dialog
         self.findFilesDialog = FindFileDialog(self.project)
         self.findFilesDialog.sourceFile.connect(
             self.viewmanager.openSourceFile)
-        self.connect(self.findFilesDialog, SIGNAL('designerFile'),
-                     self.__designer)
+        self.findFilesDialog.designerFile.connect(self.__designer)
         self.replaceFilesDialog = FindFileDialog(self.project, replaceMode = True)
         self.replaceFilesDialog.sourceFile.connect(
             self.viewmanager.openSourceFile)
-        self.connect(self.replaceFilesDialog, SIGNAL('designerFile'),
-                     self.__designer)
+        self.replaceFilesDialog.designerFile.connect(self.__designer)
         
         # generate the find file dialog
         self.findFileNameDialog = FindFileNameDialog(self.project)
         self.findFileNameDialog.sourceFile.connect(self.viewmanager.openSourceFile)
-        self.connect(self.findFileNameDialog, SIGNAL('designerFile'),
-                     self.__designer)
+        self.findFileNameDialog.designerFile.connect(self.__designer)
         
         # generate the diff dialogs
         self.diffDlg = DiffDialog()
@@ -603,12 +560,9 @@
         
         # attributes for the network objects
         self.__networkManager = QNetworkAccessManager(self)
-        self.connect(self.__networkManager, 
-            SIGNAL('proxyAuthenticationRequired(const QNetworkProxy&, QAuthenticator*)'),
+        self.__networkManager.proxyAuthenticationRequired.connect(
             proxyAuthenticationRequired)
-        self.connect(self.__networkManager, 
-                SIGNAL('sslErrors(QNetworkReply *, const QList<QSslError> &)'), 
-            self.__sslErrors)
+        self.__networkManager.sslErrors.connect(self.__sslErrors)
         self.__replies = []
         
         # attribute for the help window
@@ -2305,12 +2259,10 @@
         self.__menus["extras"].addMenu(self.__menus["macros"])
         self.__menus["tools"] = QMenu(self.trUtf8('&Tools'), self)
         self.__menus["tools"].aboutToShow.connect(self.__showToolsMenu)
-        self.connect(self.__menus["tools"], SIGNAL('triggered(QAction *)'),
-            self.__toolExecute)
+        self.__menus["tools"].triggered.connect(self.__toolExecute)
         self.toolGroupsMenu = QMenu(self.trUtf8("Select Tool Group"), self)
         self.toolGroupsMenu.aboutToShow.connect(self.__showToolGroupsMenu)
-        self.connect(self.toolGroupsMenu, SIGNAL('triggered(QAction *)'),
-            self.__toolGroupSelected)
+        self.toolGroupsMenu.triggered.connect(self.__toolGroupSelected)
         self.toolGroupsMenuTriggered = False
         self.__menus["extras"].addMenu(self.__menus["tools"])
         
@@ -2341,8 +2293,7 @@
             QMenu(self.trUtf8("&Toolbars"), self.__menus["window"])
         self.__menus["toolbars"].setTearOffEnabled(True)
         self.__menus["toolbars"].aboutToShow.connect(self.__showToolbarsMenu)
-        self.connect(self.__menus["toolbars"], SIGNAL('triggered(QAction *)'),
-            self.__TBMenuTriggered)
+        self.__menus["toolbars"].triggered.connect(self.__TBMenuTriggered)
         
         self.__showWindowMenu() # to initialize these actions
 
@@ -2659,19 +2610,19 @@
         """
         Private slot to display the File menu.
         """
-        self.emit(SIGNAL("showMenu"), "File", self.__menus["file"])
+        self.showMenu.emit("File", self.__menus["file"])
     
     def __showExtrasMenu(self):
         """
         Private slot to display the Extras menu.
         """
-        self.emit(SIGNAL("showMenu"), "Extras", self.__menus["extras"])
+        self.showMenu.emit("Extras", self.__menus["extras"])
     
     def __showWizardsMenu(self):
         """
         Private slot to display the Wizards menu.
         """
-        self.emit(SIGNAL("showMenu"), "Wizards", self.__menus["wizards"])
+        self.showMenu.emit("Wizards", self.__menus["wizards"])
     
     def __showHelpMenu(self):
         """
@@ -2680,7 +2631,7 @@
         self.checkUpdateAct.setEnabled(not self.__inVersionCheck)
         self.showVersionsAct.setEnabled(not self.__inVersionCheck)
         
-        self.emit(SIGNAL("showMenu"), "Help", self.__menus["help"])
+        self.showMenu.emit("Help", self.__menus["help"])
     
     def __showNext(self):
         """
@@ -3098,7 +3049,7 @@
         elif self.currentToolGroup == -2:
             act.setEnabled(False)
             # add the plugin entries
-            self.emit(SIGNAL("showMenu"), "Tools", self.__menus["tools"])
+            self.showMenu.emit("Tools", self.__menus["tools"])
         else:
             # add the configurable entries
             idx = 0
@@ -3263,7 +3214,7 @@
         # Now do any Source Viewer related stuff.
         self.viewmanager.showWindowMenu(self.__menus["window"])
         
-        self.emit(SIGNAL("showMenu"), "Window", self.__menus["window"])
+        self.showMenu.emit("Window", self.__menus["window"])
         
     def __showToolbarsMenu(self):
         """
@@ -4896,7 +4847,7 @@
         """
         Private slot to reload the api information.
         """
-        self.emit(SIGNAL('reloadAPIs'))
+        self.reloadAPIs.emit()
         
     def __showExternalTools(self):
         """
@@ -5242,7 +5193,7 @@
         @param s output to be appended (string)
         """
         self.showLogTab("stdout")
-        self.emit(SIGNAL('appendStdout'), s)
+        self.appendStdout.emit(s)
     
     def appendToStderr(self, s):
         """
@@ -5251,7 +5202,7 @@
         @param s output to be appended (string)
         """
         self.showLogTab("stderr")
-        self.emit(SIGNAL('appendStderr'), s)
+        self.appendStderr.emit(s)
     
     ##########################################################
     ## Below are slots needed by the plugin menu
@@ -5491,10 +5442,10 @@
                     QProgressDialog("", self.trUtf8("&Cancel"),  
                                      0,  len(self.__httpAlternatives),  self)
                 self.__versionCheckProgress.setMinimumDuration(0)
-                self.connect(self.__versionCheckProgress, SIGNAL("canceled()"), 
+                self.__versionCheckProgress.canceled.connect(
                     self.__versionsDownloadCanceled)
-            self.__versionCheckProgress.setLabelText(self.trUtf8("Trying host {0}")\
-                .format(url.host()))
+            self.__versionCheckProgress.setLabelText(
+                self.trUtf8("Trying host {0}").format(url.host()))
             self.__versionCheckProgress.setValue(alternative)
         reply = self.__networkManager.get(QNetworkRequest(url))
         reply.finished[()].connect(self.__versionsDownloadDone)
--- a/Utilities/SingleApplication.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Utilities/SingleApplication.py	Thu Aug 12 16:11:13 2010 +0200
@@ -7,7 +7,6 @@
 Module implementing the single application server and client.
 """
 
-from PyQt4.QtCore import SIGNAL
 from PyQt4.QtNetwork import QLocalServer, QLocalSocket
 
 class SingleApplicationServer(QLocalServer):
@@ -79,7 +78,7 @@
         """
         if self.qsock is not None:
             self.qsock.readyRead[()].disconnect(self.__parseLine)
-            self.disconnect(self.qsock, SIGNAL('disconnected()'), self.__disconnected)
+            self.qsock.disconnected.disconnect(self.__disconnected)
         
         self.qsock = None
         
@@ -164,4 +163,4 @@
         
         @return error string for the last error (string)
         """
-        return self.sock.errorString()
\ No newline at end of file
+        return self.sock.errorString()
--- a/Utilities/Startup.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/Utilities/Startup.py	Thu Aug 12 16:11:13 2010 +0200
@@ -10,8 +10,7 @@
 import os
 import sys
 
-from PyQt4.QtCore import QTranslator, QTextCodec, QLocale, SIGNAL, SLOT, \
-    QLibraryInfo
+from PyQt4.QtCore import QTranslator, QTextCodec, QLocale, QLibraryInfo
 from PyQt4.QtGui import QApplication
 
 from E5Gui.E5Application import E5Application
@@ -230,7 +229,7 @@
     )
     
     w = mwFactory(argv)
-    app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()"))
+    app.lastWindowClosed.connect(app.quit)
     w.show()
     
     return app.exec_()
--- a/VCS/StatusMonitorLed.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/VCS/StatusMonitorLed.py	Thu Aug 12 16:11:13 2010 +0200
@@ -67,8 +67,7 @@
         # connect signals to our slots
         self.setContextMenuPolicy(Qt.CustomContextMenu)
         self.customContextMenuRequested.connect(self._showContextMenu)
-        self.connect(self.project, SIGNAL('vcsStatusMonitorStatus(QString, QString)'),
-                     self.__projectVcsMonitorStatus)
+        self.project.vcsStatusMonitorStatus.connect(self.__projectVcsMonitorStatus)
     
     def __checkActions(self):
         """
--- a/VCS/StatusMonitorThread.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/VCS/StatusMonitorThread.py	Thu Aug 12 16:11:13 2010 +0200
@@ -7,7 +7,7 @@
 Module implementing the VCS status monitor thread base class.
 """
 
-from PyQt4.QtCore import QThread, QMutex, QWaitCondition, SIGNAL
+from PyQt4.QtCore import QThread, QMutex, QWaitCondition, pyqtSignal
 
 class VcsStatusMonitorThread(QThread):
     """
@@ -17,6 +17,9 @@
     @signal vcsStatusMonitorStatus(QString, QString) emitted to signal the status of the
         monitoring thread (ok, nok, op) and a status message
     """
+    vcsStatusMonitorData = pyqtSignal(list)
+    vcsStatusMonitorStatus = pyqtSignal(str, str)
+    
     def __init__(self, interval, project, vcs, parent = None):
         """
         Constructor
@@ -53,16 +56,15 @@
         while not self.__stopIt:
             # perform the checking task
             self.statusList = []
-            self.emit(SIGNAL("vcsStatusMonitorStatus(QString, QString)"), 
-                      "wait", self.trUtf8("Waiting for lock"))
+            self.vcsStatusMonitorStatus.emit("wait", self.trUtf8("Waiting for lock"))
             try:
                 locked = self.vcs.vcsExecutionMutex.tryLock(5000)
             except TypeError:
                 locked = self.vcs.vcsExecutionMutex.tryLock()
             if locked:
                 try:
-                    self.emit(SIGNAL("vcsStatusMonitorStatus(QString, QString)"), 
-                              "op", self.trUtf8("Checking repository status"))
+                    self.vcsStatusMonitorStatus.emit(
+                        "op", self.trUtf8("Checking repository status"))
                     res, statusMsg = self._performMonitor()
                 finally:
                     self.vcs.vcsExecutionMutex.unlock()
@@ -70,15 +72,12 @@
                     status = "ok"
                 else:
                     status = "nok"
-                self.emit(SIGNAL("vcsStatusMonitorStatus(QString, QString)"), 
-                          "send", self.trUtf8("Sending data"))
-                self.emit(SIGNAL("vcsStatusMonitorData(QStringList)"), 
-                          self.statusList)
-                self.emit(SIGNAL("vcsStatusMonitorStatus(QString, QString)"), 
-                          status, statusMsg)
+                self.vcsStatusMonitorStatus.emit("send", self.trUtf8("Sending data"))
+                self.vcsStatusMonitorData.emit(self.statusList)
+                self.vcsStatusMonitorStatus.emit(status, statusMsg)
             else:
-                self.emit(SIGNAL("vcsStatusMonitorStatus(QString, QString)"), 
-                          "timeout", self.trUtf8("Timed out waiting for lock"))
+                self.vcsStatusMonitorStatus.emit(
+                    "timeout", self.trUtf8("Timed out waiting for lock"))
             
             if self.autoUpdate and self.shouldUpdate:
                 try:
--- a/VCS/VersionControl.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/VCS/VersionControl.py	Thu Aug 12 16:11:13 2010 +0200
@@ -11,7 +11,7 @@
 import os
 
 from PyQt4.QtCore import QObject, QThread, QMutex, QProcess, \
-    SIGNAL, Qt
+    Qt, pyqtSignal
 from PyQt4.QtGui import QApplication, QMessageBox
 
 import Preferences
@@ -28,6 +28,8 @@
     @signal vcsStatusMonitorStatus(QString, QString) emitted to signal the status of the
         monitoring thread (ok, nok, op, off) and a status message
     """
+    vcsStatusMonitorData = pyqtSignal(list)
+    vcsStatusMonitorStatus = pyqtSignal(str, str)
     
     canBeCommitted = 1  # Indicates that a file/directory is in the vcs.
     canBeAdded = 2      # Indicates that a file/directory is not in vcs.
@@ -596,7 +598,7 @@
         @param status status of the monitoring thread (string, ok, nok or off)
         @param statusMsg explanotory text for the signaled status (string)
         """
-        self.emit(SIGNAL("vcsStatusMonitorStatus(QString, QString)"), status, statusMsg)
+        self.vcsStatusMonitorStatus.emit(status, statusMsg)
         QApplication.flush()
 
     def __statusMonitorData(self, statusList):
@@ -607,7 +609,7 @@
         
         @param statusList list of status records (list of strings)
         """
-        self.emit(SIGNAL("vcsStatusMonitorData(QStringList)"), statusList)
+        self.vcsStatusMonitorData.emit(statusList)
         QApplication.flush()
 
     def startStatusMonitor(self, project):
@@ -625,12 +627,10 @@
             self.statusMonitorThread = \
                 self._createStatusMonitorThread(vcsStatusMonitorInterval, project)
             if self.statusMonitorThread is not None:
-                self.connect(self.statusMonitorThread, 
-                             SIGNAL("vcsStatusMonitorData(QStringList)"),
-                             self.__statusMonitorData, Qt.QueuedConnection)
-                self.connect(self.statusMonitorThread, 
-                             SIGNAL("vcsStatusMonitorStatus(QString, QString)"),
-                             self.__statusMonitorStatus, Qt.QueuedConnection)
+                self.statusMonitorThread.vcsStatusMonitorData.connect(
+                    self.__statusMonitorData, Qt.QueuedConnection)
+                self.statusMonitorThread.vcsStatusMonitorStatus.connect(
+                    self.__statusMonitorStatus, Qt.QueuedConnection)
                 self.statusMonitorThread.setAutoUpdate(
                     Preferences.getVCS("AutoUpdate"))
                 self.statusMonitorThread.start()
@@ -644,11 +644,9 @@
         """
         if self.statusMonitorThread is not None:
             self.__statusMonitorData(["--RESET--"])
-            self.disconnect(self.statusMonitorThread, 
-                SIGNAL("vcsStatusMonitorData(QStringList)"),
+            self.statusMonitorThread.vcsStatusMonitorData.disconnect(
                 self.__statusMonitorData)
-            self.disconnect(self.statusMonitorThread, 
-                SIGNAL("vcsStatusMonitorStatus(QString, QString)"),
+            self.statusMonitorThread.vcsStatusMonitorStatus.disconnect(
                 self.__statusMonitorStatus)
             self.statusMonitorThread.stop()
             self.statusMonitorThread.wait(10000)
--- a/ViewManager/ViewManager.py	Thu Aug 12 10:11:06 2010 +0200
+++ b/ViewManager/ViewManager.py	Thu Aug 12 16:11:13 2010 +0200
@@ -48,6 +48,7 @@
     @signal gotFocus() emitted when the focus is changed to this widget
     """
     escPressed = pyqtSignal()
+    returnPressed = pyqtSignal()
     gotFocus = pyqtSignal()
     
     def editorCommand(self, cmd):
@@ -95,7 +96,7 @@
     It defines the interface to be implemented by specific
     viewmanager classes and all common methods.
     
-    @signal lastEditorClosed emitted after the last editor window was closed
+    @signal lastEditorClosed() emitted after the last editor window was closed
     @signal editorOpened(string) emitted after an editor window was opened
     @signal editorOpenedEd(editor) emitted after an editor window was opened
     @signal editorClosed(string) emitted just before an editor window gets closed
@@ -108,11 +109,17 @@
     @signal breakpointToggled(editor) emitted when a breakpoint is toggled.
     @signal bookmarkToggled(editor) emitted when a bookmark is toggled.
     """
+    lastEditorClosed = pyqtSignal()
     editorOpened = pyqtSignal(str)
-    lastEditorClosed = pyqtSignal()
+    editorOpenedEd = pyqtSignal(Editor)
+    editorClosed = pyqtSignal(str)
+    editorClosedEd = pyqtSignal(Editor)
+    editorSaved = pyqtSignal(str)
     checkActions = pyqtSignal(Editor)
     cursorChanged = pyqtSignal(Editor)
     breakpointToggled = pyqtSignal(Editor)
+    bookmarkToggled = pyqtSignal(Editor)
+    syntaxerrorToggled = pyqtSignal(Editor)
     
     def __init__(self):
         """
@@ -146,7 +153,7 @@
         self.autosaveTimer = QTimer(self)
         self.autosaveTimer.setObjectName("AutosaveTimer")
         self.autosaveTimer.setSingleShot(True)
-        self.connect(self.autosaveTimer, SIGNAL('timeout()'), self.__autosave)
+        self.autosaveTimer.timeout.connect(self.__autosave)
         
         # initialize the APIs manager
         self.apisManager = APIsManager(parent = self)
@@ -670,11 +677,9 @@
         menu.addAction(self.printAct)
         
         self.recentMenu.aboutToShow.connect(self.__showRecentMenu)
-        self.connect(self.recentMenu, SIGNAL('triggered(QAction *)'),
-            self.__openSourceFile)
+        self.recentMenu.triggered.connect(self.__openSourceFile)
         self.bookmarkedMenu.aboutToShow.connect(self.__showBookmarkedMenu)
-        self.connect(self.bookmarkedMenu, SIGNAL('triggered(QAction *)'),
-            self.__openSourceFile)
+        self.bookmarkedMenu.triggered.connect(self.__openSourceFile)
         menu.aboutToShow.connect(self.__showFileMenu)
         
         self.exportersMenuAct.setEnabled(False)
@@ -721,7 +726,7 @@
             act = menu.addAction(supportedExporters[exporter])
             act.setData(exporter)
         
-        self.connect(menu, SIGNAL('triggered(QAction *)'), self.__exportMenuTriggered)
+        menu.triggered.connect(self.__exportMenuTriggered)
         
         return menu
     
@@ -1144,7 +1149,7 @@
         ####################################################################
         
         self.esm = QSignalMapper(self)
-        self.connect(self.esm, SIGNAL('mapped(int)'), self.__editorCommand)
+        self.esm.mapped[int].connect(self.__editorCommand)
         
         self.editorActGrp = createActionGroup(self.editActGrp)
         
@@ -2367,8 +2372,7 @@
                 """<p>Arrange the splitted views horizontally.</p>"""
                 ))
         self.splitOrientationAct.setChecked(False)
-        self.connect(self.splitOrientationAct, SIGNAL('toggled(bool)'), 
-            self.__splitOrientation)
+        self.splitOrientationAct.toggled[bool].connect(self.__splitOrientation)
         self.viewActions.append(self.splitOrientationAct)
         
         self.splitRemoveAct = E5Action(QApplication.translate('ViewManager', 
@@ -2817,8 +2821,7 @@
         menu.addAction(self.taskPreviousAct)
         
         self.bookmarksMenu.aboutToShow.connect(self.__showBookmarksMenu)
-        self.connect(self.bookmarksMenu, SIGNAL('triggered(QAction *)'), 
-            self.__bookmarkSelected)
+        self.bookmarksMenu.triggered.connect(self.__bookmarkSelected)
         menu.aboutToShow.connect(self.__showBookmarkMenu)
         
         return menu
@@ -3045,8 +3048,8 @@
         
         # send a signal, if it was the last editor for this filename
         if fn and self.getOpenEditor(fn) is None:
-            self.emit(SIGNAL('editorClosed'), fn)
-        self.emit(SIGNAL('editorClosedEd'), editor)
+            self.editorClosed.emit(fn)
+        self.editorClosedEd.emit(editor)
         
         # send a signal, if it was the very last editor
         if not len(self.editors):
@@ -3156,27 +3159,23 @@
         
         @param editor reference to the editor object to be connected
         """
-        self.connect(editor, SIGNAL('modificationStatusChanged'),
-            self._modificationStatusChanged)
+        editor.modificationStatusChanged.connect(self._modificationStatusChanged)
         editor.cursorChanged.connect(self.__cursorChanged)
-        self.connect(editor, SIGNAL('editorSaved'), self.__editorSaved)
+        editor.editorSaved.connect(self.__editorSaved)
         editor.breakpointToggled.connect(self.__breakpointToggled)
-        self.connect(editor, SIGNAL('bookmarkToggled'), self.__bookmarkToggled)
-        self.connect(editor, SIGNAL('syntaxerrorToggled'), self._syntaxErrorToggled)
-        self.connect(editor, SIGNAL('coverageMarkersShown'), 
-            self.__coverageMarkersShown)
-        self.connect(editor, SIGNAL('autoCompletionAPIsAvailable'), 
+        editor.bookmarkToggled.connect(self.__bookmarkToggled)
+        editor.syntaxerrorToggled.connect(self._syntaxErrorToggled)
+        editor.coverageMarkersShown.connect(self.__coverageMarkersShown)
+        editor.autoCompletionAPIsAvailable.connect(
             self.__editorAutoCompletionAPIsAvailable)
-        self.connect(editor, SIGNAL('undoAvailable'), self.undoAct.setEnabled)
-        self.connect(editor, SIGNAL('redoAvailable'), self.redoAct.setEnabled)
-        self.connect(editor, SIGNAL('taskMarkersUpdated'), self.__taskMarkersUpdated)
-        self.connect(editor, SIGNAL('languageChanged'), self.__editorConfigChanged)
-        self.connect(editor, SIGNAL('eolChanged'), self.__editorConfigChanged)
-        self.connect(editor, SIGNAL('encodingChanged'), self.__editorConfigChanged)
-        self.connect(editor, SIGNAL("selectionChanged()"), 
-            self.searchDlg.selectionChanged)
-        self.connect(editor, SIGNAL("selectionChanged()"), 
-            self.replaceDlg.selectionChanged)
+        editor.undoAvailable.connect(self.undoAct.setEnabled)
+        editor.redoAvailable.connect(self.redoAct.setEnabled)
+        editor.taskMarkersUpdated.connect(self.__taskMarkersUpdated)
+        editor.languageChanged.connect(self.__editorConfigChanged)
+        editor.eolChanged.connect(self.__editorConfigChanged)
+        editor.encodingChanged.connect(self.__editorConfigChanged)
+        editor.selectionChanged.connect(self.searchDlg.selectionChanged)
+        editor.selectionChanged.connect(self.replaceDlg.selectionChanged)
         
     def newEditorView(self, fn, caller, filetype = ""):
         """
@@ -3207,7 +3206,7 @@
         self.__connectEditor(editor)
         self.__editorOpened()
         self.editorOpened.emit(fn)
-        self.emit(SIGNAL('editorOpenedEd'), editor)
+        self.editorOpenedEd.emit(editor)
 
         return editor
         
@@ -3360,7 +3359,7 @@
                 self.__connectEditor(editor)
                 self.__editorOpened()
                 self.editorOpened.emit(fn)
-                self.emit(SIGNAL('editorOpenedEd'), editor)
+                self.editorOpenedEd.emit(editor)
                 newWin = True
         
         if newWin:
@@ -3559,7 +3558,7 @@
         self.__editorOpened()
         self._checkActions(editor)
         self.editorOpened.emit("")
-        self.emit(SIGNAL('editorOpenedEd'), editor)
+        self.editorOpenedEd.emit(editor)
         
     def printEditor(self, editor):
         """
@@ -3620,7 +3619,7 @@
         
     def __openSourceFile(self, act):
         """
-        Private method to open a file from the list of rencently opened files.
+        Private method to open a file from the list of recently opened files.
         
         @param act reference to the action that triggered (QAction)
         """
@@ -4403,7 +4402,7 @@
             self.bookmarkNextAct.setEnabled(False)
             self.bookmarkPreviousAct.setEnabled(False)
             self.bookmarkClearAct.setEnabled(False)
-        self.emit(SIGNAL('bookmarkToggled'), editor)
+        self.bookmarkToggled.emit(editor)
         
     def __gotoSyntaxError(self):
         """
@@ -4440,7 +4439,7 @@
             self.warningsNextAct.setEnabled(False)
             self.warningsPreviousAct.setEnabled(False)
             self.warningsClearAct.setEnabled(False)
-        self.emit(SIGNAL('syntaxerrorToggled'), editor)
+        self.syntaxerrorToggled.emit(editor)
         
     def __nextWarning(self):
         """
@@ -4488,9 +4487,7 @@
         
     def __taskMarkersUpdated(self, editor):
         """
-        Protected slot to handle the syntaxerrorToggled signal.
-        
-        It checks some syntax error actions and reemits the signal.
+        Protected slot to handle the taskMarkersUpdated signal.
         
         @param editor editor that sent the signal
         """
@@ -4768,7 +4765,7 @@
         
         @param fn filename of the saved editor
         """
-        self.emit(SIGNAL('editorSaved'), fn)
+        self.editorSaved.emit(fn)
         
     def __cursorChanged(self, fn, line, pos):
         """

eric ide

mercurial