Tue, 15 Nov 2022 11:06:27 +0100
Started refactoring of the project browser related code in order to extract some as plugins later on.
--- a/src/eric7/Preferences/ConfigurationPages/ProjectBrowserPage.py Mon Nov 14 11:33:53 2022 +0100 +++ b/src/eric7/Preferences/ConfigurationPages/ProjectBrowserPage.py Tue Nov 15 11:06:27 2022 +0100 @@ -16,6 +16,7 @@ from .Ui_ProjectBrowserPage import Ui_ProjectBrowserPage +# TODO: change project browser configuration to use a QListWidget class ProjectBrowserPage(ConfigurationPageBase, Ui_ProjectBrowserPage): """ Class implementing the Project Browser configuration page.
--- a/src/eric7/Project/Project.py Mon Nov 14 11:33:53 2022 +0100 +++ b/src/eric7/Project/Project.py Tue Nov 15 11:06:27 2022 +0100 @@ -4060,10 +4060,11 @@ newfn = newfn.lower() if any(entry.lower() == newfn for entry in self.pdata[group]): return True - elif group == "OTHERS" and any( - newfn.startswith(entry.lower()) for entry in self.pdata[group] - ): - return True + + elif group == "OTHERS" and any( + newfn.startswith(entry.lower()) for entry in self.pdata[group] + ): + return True return False
--- a/src/eric7/Project/ProjectBrowser.py Mon Nov 14 11:33:53 2022 +0100 +++ b/src/eric7/Project/ProjectBrowser.py Tue Nov 15 11:06:27 2022 +0100 @@ -7,7 +7,7 @@ Module implementing the project browser part of the eric UI. """ -from PyQt6.QtCore import Qt +from PyQt6.QtCore import Qt, pyqtSignal from PyQt6.QtGui import QColor from PyQt6.QtWidgets import QApplication @@ -45,8 +45,57 @@ the project interfaces (IDL) browser and a browser for stuff, that doesn't fit these categories. Optionally it contains an additional tab with the file system browser. + + Note: The following signals are defined here to proxy the individual browser + signals. + + @signal appendStderr(str) emitted after something was received from + a QProcess on stderr + @signal appendStdout(str) emitted after something was received from + a QProcess on stdout + @signal binaryFile(filename) emitted to open a file as binary (str) + @signal closeSourceWindow(str) emitted to close a source file + @signal designerFile(filename) emitted to open a Qt-Designer file (str) + @signal linguistFile(filename) emitted to open a Qt-Linguist (*.ts) + file (str) + @signal pixmapEditFile(filename) emitted to edit a pixmap file (str) + @signal pixmapFile(filename) emitted to open a pixmap file (str) + @signal preferencesChanged() emitted when the preferences have been changed + @signal sourceFile(filename) emitted to open a Python file at a line (str) + @signal sourceFile(filename, lineno) emitted to open a Python file at a + line (str, int) + @signal sourceFile(filename, lineno, type) emitted to open a Python file + at a line giving an explicit file type (str, int, str) + @signal sourceFile(filename, linenos) emitted to open a Python file giving + a list of lines(str, list) + @signal svgFile(filename) emitted to open a SVG file (str) + @signal testFile(filename) emitted to open a Python file for a + unit test (str) + @signal trpreview(filenames) emitted to preview Qt-Linguist (*.qm) + files (list of str) + @signal trpreview(filenames, ignore) emitted to preview Qt-Linguist (*.qm) + files indicating whether non-existent files shall be ignored + (list of str, bool) + @signal uipreview(str) emitted to preview a forms file + @signal umlFile(filename) emitted to open an eric UML file (str) """ + appendStderr = pyqtSignal(str) + appendStdout = pyqtSignal(str) + binaryFile = pyqtSignal(str) + closeSourceWindow = pyqtSignal(str) + designerFile = pyqtSignal(str) + linguistFile = pyqtSignal(str) + pixmapEditFile = pyqtSignal(str) + pixmapFile = pyqtSignal(str) + preferencesChanged = pyqtSignal() + sourceFile = pyqtSignal((str,), (str, int), (str, list), (str, int, str)) + svgFile = pyqtSignal(str) + testFile = pyqtSignal(str) + trpreview = pyqtSignal((list,), (list, bool)) + uipreview = pyqtSignal(str) + umlFile = pyqtSignal(str) + def __init__(self, project, parent=None): """ Constructor @@ -83,71 +132,23 @@ } self.__vcsStateChanged(" ") - # step 1: create all the individual browsers - # sources browser - self.psBrowser = ProjectSourcesBrowser(self.project) - # forms browser - self.pfBrowser = ProjectFormsBrowser(self.project) - # resources browser - self.prBrowser = ProjectResourcesBrowser(self.project) - # translations browser - self.ptBrowser = ProjectTranslationsBrowser(self.project) - # interfaces (IDL) browser - self.piBrowser = ProjectInterfacesBrowser(self.project) - # protocols (protobuf) browser - self.ppBrowser = ProjectProtocolsBrowser(self.project) - # others browser - self.poBrowser = ProjectOthersBrowser(self.project) - - # step 2: connect all the browsers - # connect the sources browser - self.project.projectClosed.connect(self.psBrowser._projectClosed) - self.project.projectOpened.connect(self.psBrowser._projectOpened) - self.project.newProject.connect(self.psBrowser._newProject) - self.project.reinitVCS.connect(self.psBrowser._initMenusAndVcs) - self.project.projectPropertiesChanged.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.project.reinitVCS.connect(self.pfBrowser._initMenusAndVcs) - self.project.projectPropertiesChanged.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.project.reinitVCS.connect(self.prBrowser._initMenusAndVcs) - self.project.projectPropertiesChanged.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.project.reinitVCS.connect(self.ptBrowser._initMenusAndVcs) - self.project.projectPropertiesChanged.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.project.reinitVCS.connect(self.piBrowser._initMenusAndVcs) - self.project.projectPropertiesChanged.connect(self.piBrowser._initMenusAndVcs) - - # connect the protocols (protobuf) browser - self.project.projectClosed.connect(self.ppBrowser._projectClosed) - self.project.projectOpened.connect(self.ppBrowser._projectOpened) - self.project.newProject.connect(self.ppBrowser._newProject) - self.project.reinitVCS.connect(self.ppBrowser._initMenusAndVcs) - self.project.projectPropertiesChanged.connect(self.ppBrowser._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.project.reinitVCS.connect(self.poBrowser._initMenusAndVcs) - self.project.projectPropertiesChanged.connect(self.poBrowser._initMenusAndVcs) + # create all the individual browsers + self.__browsers = { + # sources browser + "sources": ProjectSourcesBrowser(self.project, self), + # forms browser + "forms": ProjectFormsBrowser(self.project, self), + # resources browser + "resources": ProjectResourcesBrowser(self.project, self), + # translations browser + "translations": ProjectTranslationsBrowser(self.project, self), + # others browser + "others": ProjectOthersBrowser(self.project, self), + # interfaces (IDL) browser + "interfaces": ProjectInterfacesBrowser(self.project, self), + # protocols (protobuf) browser + "protocols": ProjectProtocolsBrowser(self.project, self), + } # add signal connection to ourselves self.project.projectOpened.connect(self.__projectOpened) @@ -174,43 +175,53 @@ # step 2: add browsers if browserFlags & SourcesBrowserFlag: index = self.addTab( - self.psBrowser, EricPixmapCache.getIcon("projectSources"), "" + self.__browsers["sources"], + EricPixmapCache.getIcon("projectSources"), + "", ) - self.setTabToolTip(index, self.psBrowser.windowTitle()) + self.setTabToolTip(index, self.__browsers["sources"].windowTitle()) if browserFlags & FormsBrowserFlag: index = self.addTab( - self.pfBrowser, EricPixmapCache.getIcon("projectForms"), "" + self.__browsers["forms"], EricPixmapCache.getIcon("projectForms"), "" ) - self.setTabToolTip(index, self.pfBrowser.windowTitle()) + self.setTabToolTip(index, self.__browsers["forms"].windowTitle()) if browserFlags & ResourcesBrowserFlag: index = self.addTab( - self.prBrowser, EricPixmapCache.getIcon("projectResources"), "" + self.__browsers["resources"], + EricPixmapCache.getIcon("projectResources"), + "", ) - self.setTabToolTip(index, self.prBrowser.windowTitle()) + self.setTabToolTip(index, self.__browsers["resources"].windowTitle()) if browserFlags & TranslationsBrowserFlag: index = self.addTab( - self.ptBrowser, EricPixmapCache.getIcon("projectTranslations"), "" + self.__browsers["translations"], + EricPixmapCache.getIcon("projectTranslations"), + "", ) - self.setTabToolTip(index, self.ptBrowser.windowTitle()) + self.setTabToolTip(index, self.__browsers["translations"].windowTitle()) if browserFlags & InterfacesBrowserFlag: index = self.addTab( - self.piBrowser, EricPixmapCache.getIcon("projectInterfaces"), "" + self.__browsers["interfaces"], + EricPixmapCache.getIcon("projectInterfaces"), + "", ) - self.setTabToolTip(index, self.piBrowser.windowTitle()) + self.setTabToolTip(index, self.__browsers["interfaces"].windowTitle()) if browserFlags & ProtocolsBrowserFlag: - index = self.addTab(self.ppBrowser, EricPixmapCache.getIcon("protobuf"), "") - self.setTabToolTip(index, self.ppBrowser.windowTitle()) + index = self.addTab( + self.__browsers["protocols"], EricPixmapCache.getIcon("protobuf"), "" + ) + self.setTabToolTip(index, self.__browsers["protocols"].windowTitle()) if browserFlags & OthersBrowserFlag: index = self.addTab( - self.poBrowser, EricPixmapCache.getIcon("projectOthers"), "" + self.__browsers["others"], EricPixmapCache.getIcon("projectOthers"), "" ) - self.setTabToolTip(index, self.poBrowser.windowTitle()) + self.setTabToolTip(index, self.__browsers["others"].windowTitle()) QApplication.processEvents() @@ -292,7 +303,7 @@ icon = EricPixmapCache.getIcon("projectSourcesJavaScript") else: icon = EricPixmapCache.getIcon("projectSources") - self.setTabIcon(self.indexOf(self.psBrowser), icon) + self.setTabIcon(self.indexOf(self.__browsers["sources"]), icon) def handleEditorChanged(self, fn): """ @@ -302,15 +313,15 @@ """ if Preferences.getProject("FollowEditor"): if self.project.isProjectSource(fn): - self.psBrowser.selectFile(fn) + self.__browsers["sources"].selectFile(fn) elif self.project.isProjectForm(fn): - self.pfBrowser.selectFile(fn) + self.__browsers["forms"].selectFile(fn) elif self.project.isProjectResource(fn): - self.prBrowser.selectFile(fn) + self.__browsers["resources"].selectFile(fn) elif self.project.isProjectInterface(fn): - self.piBrowser.selectFile(fn) + self.__browsers["interfaces"].selectFile(fn) elif self.project.isProjectProtocol(fn): - self.ppBrowser.selectFile(fn) + self.__browsers["protocols"].selectFile(fn) def handleEditorLineChanged(self, fn, lineno): """ @@ -324,58 +335,36 @@ and Preferences.getProject("FollowCursorLine") and self.project.isProjectSource(fn) ): - self.psBrowser.selectFileLine(fn, lineno) + self.__browsers["sources"].selectFileLine(fn, lineno) def getProjectBrowsers(self): """ Public method to get references to the individual project browsers. @return list of references to project browsers + @rtype list of ProjectBaseBrowser """ - return [ - self.psBrowser, - self.pfBrowser, - self.prBrowser, - self.ptBrowser, - self.piBrowser, - self.ppBrowser, - self.poBrowser, - ] + return list(self.__browsers.items()) def getProjectBrowser(self, name): """ Public method to get a reference to the named project browser. - @param name name of the requested project browser (string). - Valid names are "sources, forms, resources, translations, - interfaces, protocols, others". + @param name name of the requested project browser. + @type str @return reference to the requested browser or None + @rtype ProjectBaseBrowser or None """ - return { - "sources": self.psBrowser, - "forms": self.pfBrowser, - "resources": self.prBrowser, - "translations": self.ptBrowser, - "interfaces": self.piBrowser, - "protocols": self.ppBrowser, - "others": self.poBrowser, - }.get(name, None) + return self.__browsers.get(name, None) def getProjectBrowserNames(self): """ Public method to get the names of the various project browsers. - @return list of project browser names (list of string) + @return list of project browser names + @rtype list of str """ - return [ - "sources", - "forms", - "resources", - "translations", - "interfaces", - "protocols", - "others", - ] + return list(self.__browsers.keys()) def handlePreferencesChanged(self): """ @@ -384,6 +373,8 @@ self.__projectPropertiesChanged() self.__vcsStateChanged(self.currentVcsStatus) + self.preferencesChanged.emit() # propagate the signal to the browsers + def __vcsStateChanged(self, state): """ Private slot to handle a change in the vcs state.
--- a/src/eric7/Project/ProjectBrowserFlags.py Mon Nov 14 11:33:53 2022 +0100 +++ b/src/eric7/Project/ProjectBrowserFlags.py Tue Nov 15 11:06:27 2022 +0100 @@ -7,6 +7,7 @@ Module defining the project browser flags. """ +# TODO: replace these by well defined strings SourcesBrowserFlag = 1 FormsBrowserFlag = 2 ResourcesBrowserFlag = 4
--- a/src/eric7/Project/ProjectFormsBrowser.py Mon Nov 14 11:33:53 2022 +0100 +++ b/src/eric7/Project/ProjectFormsBrowser.py Tue Nov 15 11:06:27 2022 +0100 @@ -55,12 +55,16 @@ Pyuic5IndentDefault = 4 Pyuic6IndentDefault = 4 - def __init__(self, project, parent=None): + def __init__(self, project, projectBrowser, parent=None): """ Constructor @param project reference to the project object - @param parent parent widget of this browser (QWidget) + @type Project + @param projectBrowser reference to the project browser object + @type ProjectBrowser + @param parent parent widget of this browser + @type QWidget """ ProjectBaseBrowser.__init__(self, project, ProjectBrowserFormType, parent) @@ -128,8 +132,22 @@ self.compileProc = None self.__uicompiler = "" - self.project.projectClosed.connect(self.__resetUiCompiler) - self.project.projectPropertiesChanged.connect(self.__resetUiCompiler) + project.projectClosed.connect(self.__resetUiCompiler) + project.projectPropertiesChanged.connect(self.__resetUiCompiler) + project.projectClosed.connect(self._projectClosed) + project.projectOpened.connect(self._projectOpened) + project.newProject.connect(self._newProject) + project.reinitVCS.connect(self._initMenusAndVcs) + project.projectPropertiesChanged.connect(self._initMenusAndVcs) + + projectBrowser.preferencesChanged.connect(self.handlePreferencesChanged) + + self.appendStderr.connect(projectBrowser.appendStderr) + self.closeSourceWindow.connect(projectBrowser.closeSourceWindow) + self.sourceFile[str].connect(projectBrowser.sourceFile[str]) + self.designerFile.connect(projectBrowser.designerFile) + self.uipreview.connect(projectBrowser.uipreview) + self.trpreview[list].connect(projectBrowser.trpreview[list]) def _createPopupMenus(self): """
--- a/src/eric7/Project/ProjectInterfacesBrowser.py Mon Nov 14 11:33:53 2022 +0100 +++ b/src/eric7/Project/ProjectInterfacesBrowser.py Tue Nov 15 11:06:27 2022 +0100 @@ -54,12 +54,16 @@ appendStderr = pyqtSignal(str) showMenu = pyqtSignal(str, QMenu) - def __init__(self, project, parent=None): + def __init__(self, project, projectBrowser, parent=None): """ Constructor @param project reference to the project object - @param parent parent widget of this browser (QWidget) + @type Project + @param projectBrowser reference to the project browser object + @type ProjectBrowser + @param parent parent widget of this browser + @type QWidget """ self.omniidl = Preferences.getCorba("omniidl") if self.omniidl == "": @@ -87,6 +91,19 @@ project.prepareRepopulateItem.connect(self._prepareRepopulateItem) project.completeRepopulateItem.connect(self._completeRepopulateItem) + project.projectClosed.connect(self._projectClosed) + project.projectOpened.connect(self._projectOpened) + project.newProject.connect(self._newProject) + project.reinitVCS.connect(self._initMenusAndVcs) + project.projectPropertiesChanged.connect(self._initMenusAndVcs) + + projectBrowser.preferencesChanged.connect(self.handlePreferencesChanged) + + self.appendStderr.connect(projectBrowser.appendStderr) + self.appendStdout.connect(projectBrowser.appendStdout) + self.closeSourceWindow.connect(projectBrowser.closeSourceWindow) + self.sourceFile[str].connect(projectBrowser.sourceFile[str]) + self.sourceFile[str, int].connect(projectBrowser.sourceFile[str, int]) def _createPopupMenus(self): """
--- a/src/eric7/Project/ProjectOthersBrowser.py Mon Nov 14 11:33:53 2022 +0100 +++ b/src/eric7/Project/ProjectOthersBrowser.py Tue Nov 15 11:06:27 2022 +0100 @@ -40,12 +40,16 @@ showMenu = pyqtSignal(str, QMenu) - def __init__(self, project, parent=None): + def __init__(self, project, projectBrowser, parent=None): """ Constructor @param project reference to the project object - @param parent parent widget of this browser (QWidget) + @type Project + @param projectBrowser reference to the project browser object + @type ProjectBrowser + @param parent parent widget of this browser + @type QWidget """ ProjectBaseBrowser.__init__(self, project, ProjectBrowserOthersType, parent) @@ -66,6 +70,21 @@ project.prepareRepopulateItem.connect(self._prepareRepopulateItem) project.completeRepopulateItem.connect(self._completeRepopulateItem) + project.projectClosed.connect(self._projectClosed) + project.projectOpened.connect(self._projectOpened) + project.newProject.connect(self._newProject) + project.reinitVCS.connect(self._initMenusAndVcs) + project.projectPropertiesChanged.connect(self._initMenusAndVcs) + + projectBrowser.preferencesChanged.connect(self.handlePreferencesChanged) + + self.closeSourceWindow.connect(projectBrowser.closeSourceWindow) + self.sourceFile[str].connect(projectBrowser.sourceFile[str]) + self.pixmapEditFile.connect(projectBrowser.pixmapEditFile) + self.pixmapFile.connect(projectBrowser.pixmapFile) + self.svgFile.connect(projectBrowser.svgFile) + self.umlFile.connect(projectBrowser.umlFile) + self.binaryFile.connect(projectBrowser.binaryFile) def _createPopupMenus(self): """
--- a/src/eric7/Project/ProjectProtocolsBrowser.py Mon Nov 14 11:33:53 2022 +0100 +++ b/src/eric7/Project/ProjectProtocolsBrowser.py Tue Nov 15 11:06:27 2022 +0100 @@ -54,12 +54,14 @@ appendStderr = pyqtSignal(str) showMenu = pyqtSignal(str, QMenu) - def __init__(self, project, parent=None): + def __init__(self, project, projectBrowser, parent=None): """ Constructor @param project reference to the project object @type Project + @param projectBrowser reference to the project browser object + @type ProjectBrowser @param parent parent widget of this browser @type QWidget """ @@ -83,6 +85,19 @@ project.prepareRepopulateItem.connect(self._prepareRepopulateItem) project.completeRepopulateItem.connect(self._completeRepopulateItem) + project.projectClosed.connect(self._projectClosed) + project.projectOpened.connect(self._projectOpened) + project.newProject.connect(self._newProject) + project.reinitVCS.connect(self._initMenusAndVcs) + project.projectPropertiesChanged.connect(self._initMenusAndVcs) + + projectBrowser.preferencesChanged.connect(self.handlePreferencesChanged) + + self.appendStderr.connect(projectBrowser.appendStderr) + self.appendStdout.connect(projectBrowser.appendStdout) + self.closeSourceWindow.connect(projectBrowser.closeSourceWindow) + self.sourceFile[str].connect(projectBrowser.sourceFile[str]) + self.sourceFile[str, int].connect(projectBrowser.sourceFile[str, int]) def _createPopupMenus(self): """
--- a/src/eric7/Project/ProjectResourcesBrowser.py Mon Nov 14 11:33:53 2022 +0100 +++ b/src/eric7/Project/ProjectResourcesBrowser.py Tue Nov 15 11:06:27 2022 +0100 @@ -47,12 +47,16 @@ RCFilenameFormatPython = "{0}_rc.py" RCFilenameFormatRuby = "{0}_rc.rb" - def __init__(self, project, parent=None): + def __init__(self, project, projectBrowser, parent=None): """ Constructor @param project reference to the project object - @param parent parent widget of this browser (QWidget) + @type Project + @param projectBrowser reference to the project browser object + @type ProjectBrowser + @param parent parent widget of this browser + @type QWidget """ ProjectBaseBrowser.__init__(self, project, ProjectBrowserResourceType, parent) @@ -74,6 +78,18 @@ self.compileProc = None + project.projectClosed.connect(self._projectClosed) + project.projectOpened.connect(self._projectOpened) + project.newProject.connect(self._newProject) + project.reinitVCS.connect(self._initMenusAndVcs) + project.projectPropertiesChanged.connect(self._initMenusAndVcs) + + projectBrowser.preferencesChanged.connect(self.handlePreferencesChanged) + + self.appendStderr.connect(projectBrowser.appendStderr) + self.closeSourceWindow.connect(projectBrowser.closeSourceWindow) + self.sourceFile[str].connect(projectBrowser.sourceFile[str]) + def _createPopupMenus(self): """ Protected overloaded method to generate the popup menu.
--- a/src/eric7/Project/ProjectSourcesBrowser.py Mon Nov 14 11:33:53 2022 +0100 +++ b/src/eric7/Project/ProjectSourcesBrowser.py Tue Nov 15 11:06:27 2022 +0100 @@ -50,12 +50,16 @@ showMenu = pyqtSignal(str, QMenu) - def __init__(self, project, parent=None): + def __init__(self, project, projectBrowser, parent=None): """ Constructor @param project reference to the project object - @param parent parent widget of this browser (QWidget) + @type Project + @param projectBrowser reference to the project browser object + @type ProjectBrowser + @param parent parent widget of this browser + @type QWidget """ ProjectBaseBrowser.__init__(self, project, ProjectBrowserSourceType, parent) @@ -77,6 +81,20 @@ project.prepareRepopulateItem.connect(self._prepareRepopulateItem) project.completeRepopulateItem.connect(self._completeRepopulateItem) + project.projectClosed.connect(self._projectClosed) + project.projectOpened.connect(self._projectOpened) + project.newProject.connect(self._newProject) + project.reinitVCS.connect(self._initMenusAndVcs) + project.projectPropertiesChanged.connect(self._initMenusAndVcs) + + projectBrowser.preferencesChanged.connect(self.handlePreferencesChanged) + + self.sourceFile[str].connect(projectBrowser.sourceFile[str]) + self.sourceFile[str, int].connect(projectBrowser.sourceFile[str, int]) + self.sourceFile[str, list].connect(projectBrowser.sourceFile[str, list]) + self.sourceFile[str, int, str].connect(projectBrowser.sourceFile[str, int, str]) + self.closeSourceWindow.connect(projectBrowser.closeSourceWindow) + self.testFile.connect(projectBrowser.testFile) self.codemetrics = None self.codecoverage = None
--- a/src/eric7/Project/ProjectTranslationsBrowser.py Mon Nov 14 11:33:53 2022 +0100 +++ b/src/eric7/Project/ProjectTranslationsBrowser.py Tue Nov 15 11:06:27 2022 +0100 @@ -51,12 +51,16 @@ appendStderr = pyqtSignal(str) showMenu = pyqtSignal(str, QMenu) - def __init__(self, project, parent=None): + def __init__(self, project, projectBrowser, parent=None): """ Constructor @param project reference to the project object - @param parent parent widget of this browser (QWidget) + @type Project + @param projectBrowser reference to the project browser object + @type ProjectBrowser + @param parent parent widget of this browser + @type QWidget """ ProjectBaseBrowser.__init__( self, project, ProjectBrowserTranslationType, parent @@ -85,6 +89,22 @@ self.pylupdateProcRunning = False self.__tmpProjects = [] + project.projectClosed.connect(self._projectClosed) + project.projectOpened.connect(self._projectOpened) + project.newProject.connect(self._newProject) + project.reinitVCS.connect(self._initMenusAndVcs) + project.projectPropertiesChanged.connect(self._initMenusAndVcs) + + projectBrowser.preferencesChanged.connect(self.handlePreferencesChanged) + + self.appendStderr.connect(projectBrowser.appendStderr) + self.appendStdout.connect(projectBrowser.appendStdout) + self.closeSourceWindow.connect(projectBrowser.closeSourceWindow) + self.sourceFile[str].connect(projectBrowser.sourceFile[str]) + self.linguistFile.connect(projectBrowser.linguistFile) + self.trpreview[list].connect(projectBrowser.trpreview[list]) + self.trpreview[list, bool].connect(projectBrowser.trpreview[list, bool]) + def _createPopupMenus(self): """ Protected overloaded method to generate the popup menu.
--- a/src/eric7/UI/UserInterface.py Mon Nov 14 11:33:53 2022 +0100 +++ b/src/eric7/UI/UserInterface.py Tue Nov 15 11:06:27 2022 +0100 @@ -403,89 +403,30 @@ self.taskViewer.displayFile.connect(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, list].connect( - self.viewmanager.openSourceFile - ) - self.projectBrowser.psBrowser.sourceFile[str, int, str].connect( + self.projectBrowser.appendStderr.connect(self.appendToStderr) + self.projectBrowser.appendStdout.connect(self.appendToStdout) + self.projectBrowser.sourceFile[str].connect(self.viewmanager.openSourceFile) + self.projectBrowser.sourceFile[str, int].connect( self.viewmanager.openSourceFile ) - self.projectBrowser.psBrowser.closeSourceWindow.connect( - self.viewmanager.closeWindow - ) - self.projectBrowser.psBrowser.testFile.connect(self.__startTestScript) - - self.projectBrowser.pfBrowser.designerFile.connect(self.__designer) - self.projectBrowser.pfBrowser.sourceFile.connect( + self.projectBrowser.sourceFile[str, list].connect( self.viewmanager.openSourceFile ) - 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.projectBrowser.prBrowser.closeSourceWindow.connect( - self.viewmanager.closeWindow - ) - self.projectBrowser.prBrowser.appendStderr.connect(self.appendToStderr) - - self.projectBrowser.ptBrowser.linguistFile.connect(self.__linguist) - self.projectBrowser.ptBrowser.sourceFile.connect( + self.projectBrowser.sourceFile[str, int, str].connect( self.viewmanager.openSourceFile ) - 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.projectBrowser.piBrowser.closeSourceWindow.connect( - self.viewmanager.closeWindow - ) - self.projectBrowser.piBrowser.appendStdout.connect(self.appendToStdout) - self.projectBrowser.piBrowser.appendStderr.connect(self.appendToStderr) - - self.projectBrowser.ppBrowser.sourceFile[str].connect( - self.viewmanager.openSourceFile - ) - self.projectBrowser.ppBrowser.sourceFile[str, int].connect( - self.viewmanager.openSourceFile - ) - self.projectBrowser.ppBrowser.closeSourceWindow.connect( - self.viewmanager.closeWindow - ) - self.projectBrowser.ppBrowser.appendStdout.connect(self.appendToStdout) - self.projectBrowser.ppBrowser.appendStderr.connect(self.appendToStderr) - - self.projectBrowser.poBrowser.sourceFile.connect( - self.viewmanager.openSourceFile - ) - 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.projectBrowser.poBrowser.umlFile.connect(self.__showUml) - self.projectBrowser.poBrowser.binaryFile.connect(self.__openHexEditor) + self.projectBrowser.closeSourceWindow.connect(self.viewmanager.closeWindow) + self.projectBrowser.testFile.connect(self.__startTestScript) + self.projectBrowser.designerFile.connect(self.__designer) + self.projectBrowser.uipreview.connect(self.__UIPreviewer) + self.projectBrowser.trpreview[list].connect(self.__TRPreviewer) + self.projectBrowser.trpreview[list, bool].connect(self.__TRPreviewer) + self.projectBrowser.linguistFile.connect(self.__linguist) + self.projectBrowser.pixmapEditFile.connect(self.__editPixmap) + self.projectBrowser.pixmapFile.connect(self.__showPixmap) + self.projectBrowser.svgFile.connect(self.__showSvg) + self.projectBrowser.umlFile.connect(self.__showUml) + self.projectBrowser.binaryFile.connect(self.__openHexEditor) self.project.sourceFile.connect(self.viewmanager.openSourceFile) self.project.designerFile.connect(self.__designer) @@ -517,11 +458,13 @@ self.debuggerUI.resetUI.connect(self.__debuggingDone) self.debuggerUI.debuggingStarted.connect(self.__programChange) self.debuggerUI.debuggingStarted.connect(self.__debuggingStarted) + # TODO: check how this can be changed self.debuggerUI.compileForms.connect( - self.projectBrowser.pfBrowser.compileChangedForms - ) + self.projectBrowser.getProjectBrowser("forms").compileChangedForms + ) + # TODO: check how this can be changed self.debuggerUI.compileResources.connect( - self.projectBrowser.prBrowser.compileChangedResources + self.projectBrowser.getProjectBrowser("resources").compileChangedResources ) self.debuggerUI.executeMake.connect(self.project.executeMake) self.debuggerUI.appendStdout.connect(self.appendToStdout) @@ -544,27 +487,6 @@ self.preferencesChanged.connect(self.shell.handlePreferencesChanged) self.preferencesChanged.connect(self.project.handlePreferencesChanged) self.preferencesChanged.connect(self.projectBrowser.handlePreferencesChanged) - self.preferencesChanged.connect( - self.projectBrowser.psBrowser.handlePreferencesChanged - ) - self.preferencesChanged.connect( - self.projectBrowser.pfBrowser.handlePreferencesChanged - ) - self.preferencesChanged.connect( - self.projectBrowser.prBrowser.handlePreferencesChanged - ) - self.preferencesChanged.connect( - self.projectBrowser.ptBrowser.handlePreferencesChanged - ) - self.preferencesChanged.connect( - self.projectBrowser.piBrowser.handlePreferencesChanged - ) - self.preferencesChanged.connect( - self.projectBrowser.ppBrowser.handlePreferencesChanged - ) - self.preferencesChanged.connect( - self.projectBrowser.poBrowser.handlePreferencesChanged - ) self.preferencesChanged.connect(self.taskViewer.handlePreferencesChanged) self.preferencesChanged.connect(self.pluginManager.preferencesChanged) self.preferencesChanged.connect(self.__debugServer.preferencesChanged)