--- 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)