diff -r dda7e43934dc -r dcec2e0c0036 src/eric7/Project/ProjectResourcesBrowser.py --- a/src/eric7/Project/ProjectResourcesBrowser.py Fri Mar 08 16:08:43 2024 +0100 +++ b/src/eric7/Project/ProjectResourcesBrowser.py Sun Mar 10 16:15:14 2024 +0100 @@ -19,7 +19,7 @@ from eric7.EricWidgets import EricFileDialog, EricMessageBox from eric7.EricWidgets.EricApplication import ericApp from eric7.EricWidgets.EricProgressDialog import EricProgressDialog -from eric7.SystemUtilities import QtUtilities +from eric7.SystemUtilities import FileSystemUtilities, QtUtilities from eric7.UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog from eric7.UI.NotificationWidget import NotificationTypes @@ -139,14 +139,17 @@ self.dirMultiMenuActions = [] self.menu = QMenu(self) - if self.project.getProjectType() in [ - "PyQt5", - "PyQt5C", - "PySide2", - "PySide2C", - "PySide6", - "PySide6C", - ]: + if ( + FileSystemUtilities.isPlainFileName(self.project.getProjectPath()) + and self.project.getProjectType() in [ + "PyQt5", + "PyQt5C", + "PySide2", + "PySide2C", + "PySide6", + "PySide6C", + ] + ): self.menu.addAction(self.tr("Compile resource"), self.__compileResource) self.menu.addAction( self.tr("Compile all resources"), self.__compileAllResources @@ -185,29 +188,33 @@ act = self.menu.addAction(self.tr("Delete"), self.__deleteFile) self.menuActions.append(act) self.menu.addSeparator() - if self.project.getProjectType() in [ - "PyQt5", - "PyQt5C", - "PySide2", - "PySide2C", - "PySide6", - "PySide6C", - ]: - self.menu.addAction(self.tr("New resource..."), self.__newResource) - else: - if self.hooks["newResource"] is not None: - self.menu.addAction( - self.hooksMenuEntries.get( - "newResource", self.tr("New resource...") - ), - self.__newResource, - ) + if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): + if self.project.getProjectType() in [ + "PyQt5", + "PyQt5C", + "PySide2", + "PySide2C", + "PySide6", + "PySide6C", + ]: + self.menu.addAction(self.tr("New resource..."), self.__newResource) + else: + if self.hooks["newResource"] is not None: + self.menu.addAction( + self.hooksMenuEntries.get( + "newResource", self.tr("New resource...") + ), + self.__newResource, + ) self.menu.addAction(self.tr("Add resources..."), self.__addResourceFiles) self.menu.addAction( self.tr("Add resources directory..."), self.__addResourcesDirectory ) self.menu.addSeparator() - self.menu.addAction(self.tr("Show in File Manager"), self._showInFileManager) + if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): + self.menu.addAction( + self.tr("Show in File Manager"), self._showInFileManager + ) self.menu.addAction(self.tr("Copy Path to Clipboard"), self._copyToClipboard) self.menu.addSeparator() self.menu.addAction(self.tr("Expand all directories"), self._expandAllDirs) @@ -216,39 +223,40 @@ self.menu.addAction(self.tr("Configure..."), self._configure) self.backMenu = QMenu(self) - if self.project.getProjectType() in [ - "PyQt5", - "PyQt5C", - "PySide2", - "PySide2C", - "PySide6", - "PySide6C", - ]: - self.backMenu.addAction( - self.tr("Compile all resources"), self.__compileAllResources - ) - self.backMenu.addSeparator() - self.backMenu.addAction( - self.tr("Configure rcc Compiler"), self.__configureRccCompiler - ) - self.backMenu.addSeparator() - self.backMenu.addAction(self.tr("New resource..."), self.__newResource) - else: - if self.hooks["compileAllResources"] is not None: + if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): + if self.project.getProjectType() in [ + "PyQt5", + "PyQt5C", + "PySide2", + "PySide2C", + "PySide6", + "PySide6C", + ]: self.backMenu.addAction( - self.hooksMenuEntries.get( - "compileAllResources", self.tr("Compile all resources") - ), - self.__compileAllResources, + self.tr("Compile all resources"), self.__compileAllResources + ) + self.backMenu.addSeparator() + self.backMenu.addAction( + self.tr("Configure rcc Compiler"), self.__configureRccCompiler ) self.backMenu.addSeparator() - if self.hooks["newResource"] is not None: - self.backMenu.addAction( - self.hooksMenuEntries.get( - "newResource", self.tr("New resource...") - ), - self.__newResource, - ) + self.backMenu.addAction(self.tr("New resource..."), self.__newResource) + else: + if self.hooks["compileAllResources"] is not None: + self.backMenu.addAction( + self.hooksMenuEntries.get( + "compileAllResources", self.tr("Compile all resources") + ), + self.__compileAllResources, + ) + self.backMenu.addSeparator() + if self.hooks["newResource"] is not None: + self.backMenu.addAction( + self.hooksMenuEntries.get( + "newResource", self.tr("New resource...") + ), + self.__newResource, + ) self.backMenu.addAction( self.tr("Add resources..."), lambda: self.project.addFiles("RECOURCES") ) @@ -257,9 +265,10 @@ lambda: self.project.addDirectory("RESOURCES"), ) self.backMenu.addSeparator() - self.backMenu.addAction( - self.tr("Show in File Manager"), self._showProjectInFileManager - ) + if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): + self.backMenu.addAction( + self.tr("Show in File Manager"), self._showProjectInFileManager + ) self.backMenu.addSeparator() self.backMenu.addAction(self.tr("Expand all directories"), self._expandAllDirs) self.backMenu.addAction( @@ -271,31 +280,32 @@ # create the menu for multiple selected files self.multiMenu = QMenu(self) - if self.project.getProjectType() in [ - "PyQt5", - "PyQt5C", - "PySide2", - "PySide2C", - "PySide6", - "PySide6C", - ]: - act = self.multiMenu.addAction( - self.tr("Compile resources"), self.__compileSelectedResources - ) - self.multiMenu.addSeparator() - self.multiMenu.addAction( - self.tr("Configure rcc Compiler"), self.__configureRccCompiler - ) - self.multiMenu.addSeparator() - else: - if self.hooks["compileSelectedResources"] is not None: + if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): + if self.project.getProjectType() in [ + "PyQt5", + "PyQt5C", + "PySide2", + "PySide2C", + "PySide6", + "PySide6C", + ]: act = self.multiMenu.addAction( - self.hooksMenuEntries.get( - "compileSelectedResources", self.tr("Compile resources") - ), - self.__compileSelectedResources, + self.tr("Compile resources"), self.__compileSelectedResources ) self.multiMenu.addSeparator() + self.multiMenu.addAction( + self.tr("Configure rcc Compiler"), self.__configureRccCompiler + ) + self.multiMenu.addSeparator() + else: + if self.hooks["compileSelectedResources"] is not None: + act = self.multiMenu.addAction( + self.hooksMenuEntries.get( + "compileSelectedResources", self.tr("Compile resources") + ), + self.__compileSelectedResources, + ) + self.multiMenu.addSeparator() self.multiMenu.addAction(self.tr("Open"), self.__openFile) self.multiMenu.addSeparator() act = self.multiMenu.addAction(self.tr("Remove from project"), self._removeFile) @@ -311,43 +321,48 @@ self.multiMenu.addAction(self.tr("Configure..."), self._configure) self.dirMenu = QMenu(self) - if self.project.getProjectType() in [ - "PyQt5", - "PyQt5C", - "PySide2", - "PySide2C", - "PySide6", - "PySide6C", - ]: - self.dirMenu.addAction( - self.tr("Compile all resources"), self.__compileAllResources - ) - self.dirMenu.addSeparator() - self.dirMenu.addAction( - self.tr("Configure rcc Compiler"), self.__configureRccCompiler - ) - self.dirMenu.addSeparator() - else: - if self.hooks["compileAllResources"] is not None: + if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): + if self.project.getProjectType() in [ + "PyQt5", + "PyQt5C", + "PySide2", + "PySide2C", + "PySide6", + "PySide6C", + ]: self.dirMenu.addAction( - self.hooksMenuEntries.get( - "compileAllResources", self.tr("Compile all resources") - ), - self.__compileAllResources, + self.tr("Compile all resources"), self.__compileAllResources ) self.dirMenu.addSeparator() + self.dirMenu.addAction( + self.tr("Configure rcc Compiler"), self.__configureRccCompiler + ) + self.dirMenu.addSeparator() + else: + if self.hooks["compileAllResources"] is not None: + self.dirMenu.addAction( + self.hooksMenuEntries.get( + "compileAllResources", self.tr("Compile all resources") + ), + self.__compileAllResources, + ) + self.dirMenu.addSeparator() act = self.dirMenu.addAction(self.tr("Remove from project"), self._removeDir) self.dirMenuActions.append(act) act = self.dirMenu.addAction(self.tr("Delete"), self._deleteDirectory) self.dirMenuActions.append(act) self.dirMenu.addSeparator() - self.dirMenu.addAction(self.tr("New resource..."), self.__newResource) + if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): + self.dirMenu.addAction(self.tr("New resource..."), self.__newResource) self.dirMenu.addAction(self.tr("Add resources..."), self.__addResourceFiles) self.dirMenu.addAction( self.tr("Add resources directory..."), self.__addResourcesDirectory ) self.dirMenu.addSeparator() - self.dirMenu.addAction(self.tr("Show in File Manager"), self._showInFileManager) + if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): + self.dirMenu.addAction( + self.tr("Show in File Manager"), self._showInFileManager + ) self.dirMenu.addAction(self.tr("Copy Path to Clipboard"), self._copyToClipboard) self.dirMenu.addSeparator() self.dirMenu.addAction(self.tr("Expand all directories"), self._expandAllDirs) @@ -358,31 +373,32 @@ self.dirMenu.addAction(self.tr("Configure..."), self._configure) self.dirMultiMenu = QMenu(self) - if self.project.getProjectType() in [ - "PyQt5", - "PyQt5C", - "PySide2", - "PySide2C", - "PySide6", - "PySide6C", - ]: - self.dirMultiMenu.addAction( - self.tr("Compile all resources"), self.__compileAllResources - ) - self.dirMultiMenu.addSeparator() - self.dirMultiMenu.addAction( - self.tr("Configure rcc Compiler"), self.__configureRccCompiler - ) - self.dirMultiMenu.addSeparator() - else: - if self.hooks["compileAllResources"] is not None: + if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()): + if self.project.getProjectType() in [ + "PyQt5", + "PyQt5C", + "PySide2", + "PySide2C", + "PySide6", + "PySide6C", + ]: self.dirMultiMenu.addAction( - self.hooksMenuEntries.get( - "compileAllResources", self.tr("Compile all resources") - ), - self.__compileAllResources, + self.tr("Compile all resources"), self.__compileAllResources ) self.dirMultiMenu.addSeparator() + self.dirMultiMenu.addAction( + self.tr("Configure rcc Compiler"), self.__configureRccCompiler + ) + self.dirMultiMenu.addSeparator() + else: + if self.hooks["compileAllResources"] is not None: + self.dirMultiMenu.addAction( + self.hooksMenuEntries.get( + "compileAllResources", self.tr("Compile all resources") + ), + self.__compileAllResources, + ) + self.dirMultiMenu.addSeparator() self.dirMultiMenu.addAction( self.tr("Add resources..."), lambda: self.project.addFiles("RECOURCES") )