Mon, 09 Aug 2010 19:57:09 +0200
Continued porting signal/slot usage to the new API.
--- a/Debugger/BreakPointViewer.py Mon Aug 09 18:31:43 2010 +0200 +++ b/Debugger/BreakPointViewer.py Mon Aug 09 19:57:09 2010 +0200 @@ -23,6 +23,8 @@ @signal sourceFile(string, int) emitted to show the source of a breakpoint """ + sourceFile = pyqtSignal(str, int) + def __init__(self, parent = None): """ Constructor @@ -383,7 +385,7 @@ return fn, line = bp[:2] - self.emit(SIGNAL("sourceFile"), fn, line) + self.sourceFile.emit(fn, line) def highlightBreakpoint(self, fn, lineno): """
--- a/Debugger/DebugViewer.py Mon Aug 09 18:31:43 2010 +0200 +++ b/Debugger/DebugViewer.py Mon Aug 09 19:57:09 2010 +0200 @@ -45,6 +45,8 @@ @signal sourceFile(string, int) emitted to open a source file at a line """ + sourceFile = pyqtSignal(str, int) + def __init__(self, debugServer, docked, vm, parent = None, embeddedShell = True, embeddedBrowser = True): """ @@ -186,8 +188,7 @@ index = self.__tabWidget.addTab(self.breakpointViewer, UI.PixmapCache.getIcon("breakpoints.png"), '') self.__tabWidget.setTabToolTip(index, self.breakpointViewer.windowTitle()) - self.connect(self.breakpointViewer, SIGNAL("sourceFile"), - self, SIGNAL("sourceFile")) + self.breakpointViewer.sourceFile.connect(self.sourceFile) # add the watch expression viewer self.watchpointViewer = WatchPointViewer() @@ -345,7 +346,7 @@ Private slot to handle the source button press to show the selected file. """ s = self.currentStack[self.stackComboBox.currentIndex()] - self.emit(SIGNAL('sourceFile'), s[0], int(s[1])) + self.sourceFile.emit(s[0], int(s[1])) def __frameSelected(self, frmnr): """ @@ -429,4 +430,4 @@ """ if current is not None and self.__doThreadListUpdate: tid = int(current.text(0)) - self.debugServer.remoteSetThread(tid) \ No newline at end of file + self.debugServer.remoteSetThread(tid)
--- a/Debugger/ExceptionLogger.py Mon Aug 09 18:31:43 2010 +0200 +++ b/Debugger/ExceptionLogger.py Mon Aug 09 19:57:09 2010 +0200 @@ -22,6 +22,8 @@ @signal sourceFile(string, int) emitted to open a source file at a line """ + sourceFile = pyqtSignal(str, int) + def __init__(self, parent=None): """ Constructor @@ -127,7 +129,7 @@ entry = itm.text(0) entryList = entry.split(",") try: - self.emit(SIGNAL('sourceFile'), entryList[0], int(entryList[1])) + self.sourceFile.emit(entryList[0], int(entryList[1])) except (IndexError, ValueError): pass
--- a/Project/Project.py Mon Aug 09 18:31:43 2010 +0200 +++ b/Project/Project.py Mon Aug 09 19:57:09 2010 +0200 @@ -112,6 +112,8 @@ @signal lexerAssociationsChanged() emitted after the lexer associations have been changed """ + sourceFile = pyqtSignal(str) + keynames = [ "PROGLANGUAGE", "MIXEDLANGUAGE", "PROJECTTYPE", "SPELLLANGUAGE", "SPELLWORDS", "SPELLEXCLUDES", @@ -2814,7 +2816,7 @@ if restoreSession: # open the main script if len(self.pdata["MAINSCRIPT"]) == 1: - self.emit(SIGNAL('sourceFile'), + self.sourceFile.emit( os.path.join(self.ppath, self.pdata["MAINSCRIPT"][0])) # open a project session file being quiet about errors
--- a/Project/ProjectFormsBrowser.py Mon Aug 09 18:31:43 2010 +0200 +++ b/Project/ProjectFormsBrowser.py Mon Aug 09 19:57:09 2010 +0200 @@ -45,6 +45,8 @@ @signal menusAboutToBeCreated emitted when the context menu are about to be created. This is the right moment to add or remove hook methods. """ + sourceFile = pyqtSignal(str) + def __init__(self, project, parent = None): """ Constructor @@ -418,7 +420,7 @@ """ itmList = self.getSelectedItems() for itm in itmList[:]: - self.emit(SIGNAL('sourceFile'), itm.fileName()) + self.sourceFile.emit(itm.fileName()) def _openItem(self): """ @@ -431,7 +433,7 @@ if itm.isDesignerFile(): self.emit(SIGNAL('designerFile'), itm.fileName()) else: - self.emit(SIGNAL('sourceFile'), itm.fileName()) + self.sourceFile.emit(itm.fileName()) def __UIPreview(self): """
--- a/Project/ProjectInterfacesBrowser.py Mon Aug 09 18:31:43 2010 +0200 +++ b/Project/ProjectInterfacesBrowser.py Mon Aug 09 19:57:09 2010 +0200 @@ -40,6 +40,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. """ + sourceFile = pyqtSignal((str, ), (str, int)) + def __init__(self, project, parent = None): """ Constructor @@ -323,15 +325,15 @@ for itm in itmList: if isinstance(itm, BrowserFileItem): - self.emit(SIGNAL('sourceFile'), itm.fileName()) + self.sourceFile[str].emit(itm.fileName()) elif isinstance(itm, BrowserClassItem): - self.emit(SIGNAL('sourceFile'), itm.fileName(), + self.sourceFile[str, int].emit(itm.fileName(), itm.classObject().lineno) elif isinstance(itm,BrowserMethodItem): - self.emit(SIGNAL('sourceFile'), itm.fileName(), + self.sourceFile[str, int].emit(itm.fileName(), itm.functionObject().lineno) elif isinstance(itm, BrowserClassAttributeItem): - self.emit(SIGNAL('sourceFile'), itm.fileName(), + self.sourceFile[str, int].emit(itm.fileName(), itm.attributeObject().lineno) def __addInterfaceFiles(self):
--- a/Project/ProjectOthersBrowser.py Mon Aug 09 18:31:43 2010 +0200 +++ b/Project/ProjectOthersBrowser.py Mon Aug 09 19:57:09 2010 +0200 @@ -33,6 +33,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. """ + sourceFile = pyqtSignal(str) + def __init__(self, project, parent=None): """ Constructor @@ -231,7 +233,7 @@ else: type_ = mimetypes.guess_type(itm.fileName())[0] if type_ is None or type_.split("/")[0] == "text": - self.emit(SIGNAL('sourceFile'), itm.fileName()) + self.sourceFile.emit(itm.fileName()) else: QDesktopServices.openUrl(QUrl(itm.fileName()))
--- a/Project/ProjectResourcesBrowser.py Mon Aug 09 18:31:43 2010 +0200 +++ b/Project/ProjectResourcesBrowser.py Mon Aug 09 19:57:09 2010 +0200 @@ -36,6 +36,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. """ + sourceFile = pyqtSignal(str) + RCFilenameFormatPython = "{0}_rc.py" RCFilenameFormatRuby = "{0}_rc.rb" @@ -362,7 +364,7 @@ itmList = self.getSelectedItems() for itm in itmList[:]: if isinstance(itm, ProjectBrowserFileItem): - self.emit(SIGNAL('sourceFile'), itm.fileName()) + self.sourceFile.emit(itm.fileName()) def __newResource(self): """ @@ -431,7 +433,7 @@ return self.project.appendFile(fname) - self.emit(SIGNAL('sourceFile'), fname) + self.sourceFile.emit(fname) def __deleteFile(self): """
--- a/Project/ProjectSourcesBrowser.py Mon Aug 09 18:31:43 2010 +0200 +++ b/Project/ProjectSourcesBrowser.py Mon Aug 09 19:57:09 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. """ + sourceFile = pyqtSignal((str, ), (str, int), (str, int, str)) + def __init__(self, project, parent = None): """ Constructor @@ -521,22 +523,23 @@ for itm in itmList: if isinstance(itm, BrowserFileItem): if itm.isPythonFile(): - self.emit(SIGNAL('sourceFile'), itm.fileName(), 1, "Python") + self.sourceFile[str, int, str].emit(itm.fileName(), 1, "Python") + elif itm.isPython3File(): + self.sourceFile[str, int, str].emit(itm.fileName(), 1, "Python3") elif itm.isRubyFile(): - self.emit(SIGNAL('sourceFile'), itm.fileName(), 1, "Ruby") + self.sourceFile[str, int, str].emit(itm.fileName(), 1, "Ruby") elif itm.isDFile(): - self.emit(SIGNAL('sourceFile'), itm.fileName(), 1, "D") + self.sourceFile[str, int, str].emit(itm.fileName(), 1, "D") else: - self.emit(SIGNAL('sourceFile'), itm.fileName()) + self.sourceFile[str].emit(itm.fileName()) elif isinstance(itm, BrowserClassItem): - self.emit(SIGNAL('sourceFile'), itm.fileName(), - itm.classObject().lineno) + self.sourceFile[str, int].emit(itm.fileName(), itm.classObject().lineno) elif isinstance(itm,BrowserMethodItem): - self.emit(SIGNAL('sourceFile'), itm.fileName(), - itm.functionObject().lineno) + self.sourceFile[str, int].emit( + itm.fileName(), itm.functionObject().lineno) elif isinstance(itm, BrowserClassAttributeItem): - self.emit(SIGNAL('sourceFile'), itm.fileName(), - itm.attributeObject().lineno) + self.sourceFile[str, int].emit( + itm.fileName(), itm.attributeObject().lineno) def __addNewPackage(self): """ @@ -594,7 +597,7 @@ return self.project.appendFile(packageFile) if packageFile: - self.emit(SIGNAL('sourceFile'), packageFile) + self.sourceFile[str].emit(packageFile) def __addSourceFiles(self): """
--- a/Project/ProjectTranslationsBrowser.py Mon Aug 09 18:31:43 2010 +0200 +++ b/Project/ProjectTranslationsBrowser.py Mon Aug 09 19:57:09 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. """ + sourceFile = pyqtSignal(str) + def __init__(self, project, parent=None): """ Constructor @@ -561,7 +563,7 @@ else: self.emit(SIGNAL('trpreview'), [itm.fileName()]) else: - self.emit(SIGNAL('sourceFile'), itm.fileName()) + self.sourceFile.emit(itm.fileName()) def __openFileInEditor(self): """ @@ -569,7 +571,7 @@ """ itmList = self.getSelectedItems() for itm in itmList[:]: - self.emit(SIGNAL('sourceFile'), itm.fileName()) + self.sourceFile.emit(itm.fileName()) def __removeLanguageFile(self): """
--- a/UI/Browser.py Mon Aug 09 18:31:43 2010 +0200 +++ b/UI/Browser.py Mon Aug 09 19:57:09 2010 +0200 @@ -43,6 +43,8 @@ @signal svgFile(string) emitted to open a SVG file @signal unittestOpen(string) emitted to open a Python file for a unittest """ + sourceFile = pyqtSignal((str, ), (str, int), (str, int, str)) + def __init__(self, parent = None): """ Constructor @@ -270,7 +272,7 @@ itm = self.model().item(index) coord = self.mapToGlobal(coord) if isinstance(itm, BrowserFileItem): - if itm.isPythonFile(): + if itm.isPython3File(): if itm.fileName().endswith('.py'): self.unittestAct.setEnabled(True) else: @@ -313,13 +315,13 @@ for itm in itmList: if isinstance(itm, BrowserFileItem): if itm.isPythonFile(): - self.emit(SIGNAL('sourceFile'), itm.fileName(), 1, "Python") + self.sourceFile[str, int, str].emit(itm.fileName(), 1, "Python") elif itm.isPython3File(): - self.emit(SIGNAL('sourceFile'), itm.fileName(), 1, "Python3") + self.sourceFile[str, int, str].emit(itm.fileName(), 1, "Python3") elif itm.isRubyFile(): - self.emit(SIGNAL('sourceFile'), itm.fileName(), 1, "Ruby") + self.sourceFile[str, int, str].emit(itm.fileName(), 1, "Ruby") elif itm.isDFile(): - self.emit(SIGNAL('sourceFile'), itm.fileName(), 1, "D") + self.sourceFile[str, int, str].emit(itm.fileName(), 1, "D") elif itm.isDesignerFile(): self.emit(SIGNAL('designerFile'), itm.fileName()) elif itm.isLinguistFile(): @@ -332,9 +334,9 @@ elif itm.isMultiProjectFile(): self.emit(SIGNAL('multiProjectFile'), itm.fileName()) elif itm.isIdlFile(): - self.emit(SIGNAL('sourceFile'), itm.fileName()) + self.sourceFile[str].emit(itm.fileName()) elif itm.isResourcesFile(): - self.emit(SIGNAL('sourceFile'), itm.fileName()) + self.sourceFile[str].emit(itm.fileName()) elif itm.isPixmapFile(): self.emit(SIGNAL('pixmapFile'), itm.fileName()) elif itm.isSvgFile(): @@ -342,17 +344,17 @@ else: type_ = mimetypes.guess_type(itm.fileName())[0] if type_ is None or type_.split("/")[0] == "text": - self.emit(SIGNAL('sourceFile'), itm.fileName()) + self.sourceFile[str].emit(itm.fileName()) else: QDesktopServices.openUrl(QUrl(itm.fileName())) elif isinstance(itm, BrowserClassItem): - self.emit(SIGNAL('sourceFile'), itm.fileName(), + self.sourceFile[str, int].emit(itm.fileName(), itm.classObject().lineno) elif isinstance(itm, BrowserMethodItem): - self.emit(SIGNAL('sourceFile'), itm.fileName(), + self.sourceFile[str, int].emit(itm.fileName(), itm.functionObject().lineno) elif isinstance(itm, BrowserClassAttributeItem): - self.emit(SIGNAL('sourceFile'), itm.fileName(), + self.sourceFile[str, int].emit(itm.fileName(), itm.attributeObject().lineno) def _editPixmap(self):
--- a/UI/FindFileDialog.py Mon Aug 09 18:31:43 2010 +0200 +++ b/UI/FindFileDialog.py Mon Aug 09 19:57:09 2010 +0200 @@ -32,6 +32,8 @@ source file at a line @signal designerFile(string) emitted to open a Qt-Designer file """ + sourceFile = pyqtSignal(str, int, str, int, int) + lineRole = Qt.UserRole + 1 startRole = Qt.UserRole + 2 endRole = Qt.UserRole + 3 @@ -421,7 +423,7 @@ if self.feelLikeCheckBox.isChecked(): fn = os.path.join(self.project.ppath, file) - self.emit(SIGNAL('sourceFile'), fn, count, "", (start, end)) + self.sourceFile.emit(fn, count, "", start, end) QApplication.processEvents() breakSearch = True break @@ -481,7 +483,7 @@ if fn.endswith('.ui'): self.emit(SIGNAL('designerFile'), fn) else: - self.emit(SIGNAL('sourceFile'), fn, line, "", (start, end)) + self.sourceFile.emit(fn, line, "", start, end) @pyqtSlot() def on_dirSelectButton_clicked(self):
--- a/UI/FindFileNameDialog.py Mon Aug 09 18:31:43 2010 +0200 +++ b/UI/FindFileNameDialog.py Mon Aug 09 19:57:09 2010 +0200 @@ -31,6 +31,8 @@ @signal sourceFile(string) emitted to open a file in the editor @signal designerFile(string) emitted to open a Qt-Designer file """ + sourceFile = pyqtSignal(str) + def __init__(self, project, parent = None): """ Constructor @@ -82,7 +84,7 @@ if fileName.endswith('.ui'): self.emit(SIGNAL('designerFile'), os.path.join(filePath, fileName)) else: - self.emit(SIGNAL('sourceFile'), os.path.join(filePath, fileName)) + self.sourceFile.emit(os.path.join(filePath, fileName)) def __searchFile(self): """
--- a/UI/UserInterface.py Mon Aug 09 18:31:43 2010 +0200 +++ b/UI/UserInterface.py Mon Aug 09 19:57:09 2010 +0200 @@ -265,10 +265,14 @@ # now setup the connections splash.showMessage(self.trUtf8("Setting up connections...")) - self.connect(app, SIGNAL("focusChanged(QWidget*, QWidget*)"), - self.viewmanager.appFocusChanged) - self.connect(self.browser, SIGNAL('sourceFile'), - self.viewmanager.openSourceFile) + app.focusChanged.connect( + self.viewmanager.appFocusChanged) + self.browser.sourceFile[str].connect( + self.viewmanager.openSourceFile) + self.browser.sourceFile[str, int].connect( + 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'), @@ -288,17 +292,20 @@ self.connect(self.browser, SIGNAL('trpreview'), self.__TRPreviewer) - self.connect(self.debugViewer.exceptionLogger, SIGNAL('sourceFile'), - self.viewmanager.openSourceFile) - - self.connect(self.debugViewer, SIGNAL('sourceFile'), - self.viewmanager.showDebugSource) + 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.connect(self.projectBrowser.psBrowser, SIGNAL('sourceFile'), - self.viewmanager.openSourceFile) + self.projectBrowser.psBrowser.sourceFile[str].connect( + self.viewmanager.openSourceFile) + self.projectBrowser.psBrowser.sourceFile[str, int].connect( + 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'), @@ -306,8 +313,8 @@ self.connect(self.projectBrowser.pfBrowser, SIGNAL('designerFile'), self.__designer) - self.connect(self.projectBrowser.pfBrowser, SIGNAL('sourceFile'), - self.viewmanager.openSourceFile) + self.projectBrowser.pfBrowser.sourceFile.connect( + self.viewmanager.openSourceFile) self.connect(self.projectBrowser.pfBrowser, SIGNAL('uipreview'), self.__UIPreviewer) self.connect(self.projectBrowser.pfBrowser, SIGNAL('trpreview'), @@ -319,8 +326,8 @@ self.connect(self.projectBrowser.pfBrowser, SIGNAL('appendStderr'), self.appendToStderr) - self.connect(self.projectBrowser.prBrowser, SIGNAL('sourceFile'), - self.viewmanager.openSourceFile) + 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'), @@ -330,8 +337,8 @@ self.connect(self.projectBrowser.ptBrowser, SIGNAL('linguistFile'), self.__linguist4) - self.connect(self.projectBrowser.ptBrowser, SIGNAL('sourceFile'), - self.viewmanager.openSourceFile) + self.projectBrowser.ptBrowser.sourceFile.connect( + self.viewmanager.openSourceFile) self.connect(self.projectBrowser.ptBrowser, SIGNAL('trpreview'), self.__TRPreviewer) self.connect(self.projectBrowser.ptBrowser, SIGNAL('closeSourceWindow'), @@ -341,8 +348,10 @@ self.connect(self.projectBrowser.ptBrowser, SIGNAL('appendStderr'), self.appendToStderr) - self.connect(self.projectBrowser.piBrowser, SIGNAL('sourceFile'), - self.viewmanager.openSourceFile) + 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'), @@ -350,8 +359,8 @@ self.connect(self.projectBrowser.piBrowser, SIGNAL('appendStderr'), self.appendToStderr) - self.connect(self.projectBrowser.poBrowser, SIGNAL('sourceFile'), - self.viewmanager.openSourceFile) + 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'), @@ -361,8 +370,8 @@ self.connect(self.projectBrowser.poBrowser, SIGNAL('svgFile'), self.__showSvg) - self.connect(self.project, SIGNAL('sourceFile'), - self.viewmanager.openSourceFile) + self.project.sourceFile.connect( + self.viewmanager.openSourceFile) self.connect(self.project, SIGNAL('newProject'), self.viewmanager.newProject) self.connect(self.project, SIGNAL('projectOpened'), @@ -508,20 +517,19 @@ # Generate the find in project files dialog self.findFilesDialog = FindFileDialog(self.project) - self.connect(self.findFilesDialog, SIGNAL('sourceFile'), - self.viewmanager.openSourceFile) + self.findFilesDialog.sourceFile.connect( + self.viewmanager.openSourceFile) self.connect(self.findFilesDialog, SIGNAL('designerFile'), self.__designer) self.replaceFilesDialog = FindFileDialog(self.project, replaceMode = True) - self.connect(self.replaceFilesDialog, SIGNAL('sourceFile'), - self.viewmanager.openSourceFile) + self.replaceFilesDialog.sourceFile.connect( + self.viewmanager.openSourceFile) self.connect(self.replaceFilesDialog, SIGNAL('designerFile'), self.__designer) # generate the find file dialog self.findFileNameDialog = FindFileNameDialog(self.project) - self.connect(self.findFileNameDialog, SIGNAL('sourceFile'), - self.viewmanager.openSourceFile) + self.findFileNameDialog.sourceFile.connect(self.viewmanager.openSourceFile) self.connect(self.findFileNameDialog, SIGNAL('designerFile'), self.__designer)
--- a/ViewManager/ViewManager.py Mon Aug 09 18:31:43 2010 +0200 +++ b/ViewManager/ViewManager.py Mon Aug 09 19:57:09 2010 +0200 @@ -3103,14 +3103,15 @@ self.__setSbFile() - def openSourceFile(self, fn, lineno = None, filetype = "", selection = None): + def openSourceFile(self, fn, lineno = None, filetype = "", selStart = 0, selEnd = 0): """ Public slot to display a file in an editor. - @param fn name of file to be opened - @param lineno line number to place the cursor at + @param fn name of file to be opened (string) + @param lineno line number to place the cursor at (integer) @param filetype type of the source file (string) - @param selection tuple (start, end) of an area to be selected + @param selStart start of an area to be selected (integer) + @param selEnd end of an area to be selected (integer) """ try: newWin, editor = self.getEditor(fn, filetype = filetype) @@ -3125,8 +3126,8 @@ editor.ensureVisibleTop(lineno) editor.gotoLine(lineno) - if selection is not None: - editor.setSelection(lineno - 1, selection[0], lineno - 1, selection[1]) + if selStart != selEnd: + editor.setSelection(lineno - 1, selStart, lineno - 1, selEnd) # insert filename into list of recently opened files self.addToRecentList(fn)