Project, UserInterface,ViewManager: rearranged the menus.

Sat, 11 May 2019 11:19:32 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 11 May 2019 11:19:32 +0200
changeset 7007
0ba99702920c
parent 7006
c29932589c9c
child 7008
e1b80fb11cc7

Project, UserInterface,ViewManager: rearranged the menus.

eric6/Project/Project.py file | annotate | diff | comparison | revisions
eric6/UI/UserInterface.py file | annotate | diff | comparison | revisions
eric6/ViewManager/ViewManager.py file | annotate | diff | comparison | revisions
--- a/eric6/Project/Project.py	Wed May 08 18:44:00 2019 +0200
+++ b/eric6/Project/Project.py	Sat May 11 11:19:32 2019 +0200
@@ -4247,28 +4247,31 @@
         self.dbgActGrp.setEnabled(False)
         self.pluginGrp.setEnabled(False)
         
-    def initMenu(self):
-        """
-        Public slot to initialize the project menu.
-        
-        @return the menu generated (QMenu)
+    def initMenus(self):
+        """
+        Public slot to initialize the project menus.
+        
+        @return tuple of generated menus
+        @rtype tuple of (QMenu, QMenu)
         """
         menu = QMenu(self.tr('&Project'), self.parent())
         self.recentMenu = QMenu(self.tr('Open &Recent Projects'), menu)
-        self.vcsMenu = QMenu(self.tr('&Version Control'), menu)
+        self.sessionMenu = QMenu(self.tr('Session'), menu)
+        self.debuggerMenu = QMenu(self.tr('Debugger'), menu)
+        
+        toolsMenu = QMenu(self.tr('Project-T&ools'), self.parent())
+        self.vcsMenu = QMenu(self.tr('&Version Control'), toolsMenu)
         self.vcsMenu.setTearOffEnabled(True)
         self.vcsProjectHelper.initMenu(self.vcsMenu)
         self.vcsMenu.setEnabled(self.vcsSoftwareAvailable())
-        self.checksMenu = QMenu(self.tr('Chec&k'), menu)
+        self.checksMenu = QMenu(self.tr('Chec&k'), toolsMenu)
         self.checksMenu.setTearOffEnabled(True)
-        self.menuShow = QMenu(self.tr('Sho&w'), menu)
-        self.graphicsMenu = QMenu(self.tr('&Diagrams'), menu)
-        self.sessionMenu = QMenu(self.tr('Session'), menu)
-        self.apidocMenu = QMenu(self.tr('Source &Documentation'), menu)
+        self.menuShow = QMenu(self.tr('Sho&w'), toolsMenu)
+        self.graphicsMenu = QMenu(self.tr('&Diagrams'), toolsMenu)
+        self.packagersMenu = QMenu(self.tr('Pac&kagers'), toolsMenu)
+        self.apidocMenu = QMenu(self.tr('Source &Documentation'), toolsMenu)
         self.apidocMenu.setTearOffEnabled(True)
-        self.debuggerMenu = QMenu(self.tr('Debugger'), menu)
-        self.packagersMenu = QMenu(self.tr('Pac&kagers'), menu)
-        self.makeMenu = QMenu(self.tr('Make'), menu)
+        self.makeMenu = QMenu(self.tr('Make'), toolsMenu)
         
         self.__menus = {
             "Main": menu,
@@ -4328,7 +4331,7 @@
         self.makeMenu.addActions(self.makeGrp.actions())
         self.makeMenu.addSeparator()
         
-        # build the main menu
+        # build the project main menu
         menu.setTearOffEnabled(True)
         menu.addActions(self.actGrp1.actions())
         self.menuRecentAct = menu.addMenu(self.recentMenu)
@@ -4340,20 +4343,6 @@
         menu.addSeparator()
         menu.addActions(self.actGrp2.actions())
         menu.addSeparator()
-        self.menuMakeAct = menu.addMenu(self.makeMenu)
-        menu.addSeparator()
-        self.menuDiagramAct = menu.addMenu(self.graphicsMenu)
-        menu.addSeparator()
-        self.menuCheckAct = menu.addMenu(self.checksMenu)
-        menu.addSeparator()
-        menu.addMenu(self.vcsMenu)
-        menu.addSeparator()
-        self.menuShowAct = menu.addMenu(self.menuShow)
-        menu.addSeparator()
-        self.menuApidocAct = menu.addMenu(self.apidocMenu)
-        menu.addSeparator()
-        self.menuPackagersAct = menu.addMenu(self.packagersMenu)
-        menu.addSeparator()
         menu.addAction(self.propsAct)
         menu.addAction(self.userPropsAct)
         menu.addAction(self.filetypesAct)
@@ -4362,6 +4351,23 @@
         self.menuDebuggerAct = menu.addMenu(self.debuggerMenu)
         self.menuSessionAct = menu.addMenu(self.sessionMenu)
         
+        # build the project tools menu
+        toolsMenu.setTearOffEnabled(True)
+        toolsMenu.addSeparator()
+        self.menuMakeAct = toolsMenu.addMenu(self.makeMenu)
+        toolsMenu.addSeparator()
+        self.menuDiagramAct = toolsMenu.addMenu(self.graphicsMenu)
+        toolsMenu.addSeparator()
+        self.menuCheckAct = toolsMenu.addMenu(self.checksMenu)
+        toolsMenu.addSeparator()
+        toolsMenu.addMenu(self.vcsMenu)
+        toolsMenu.addSeparator()
+        self.menuShowAct = toolsMenu.addMenu(self.menuShow)
+        toolsMenu.addSeparator()
+        self.menuApidocAct = toolsMenu.addMenu(self.apidocMenu)
+        toolsMenu.addSeparator()
+        self.menuPackagersAct = toolsMenu.addMenu(self.packagersMenu)
+        
         self.menuCheckAct.setEnabled(False)
         self.menuShowAct.setEnabled(False)
         self.menuDiagramAct.setEnabled(False)
@@ -4371,8 +4377,10 @@
         self.menuPackagersAct.setEnabled(False)
         self.menuMakeAct.setEnabled(False)
         
-        self.menu = menu
-        return menu
+        self.__menu = menu
+        self.__toolsMenu = toolsMenu
+        
+        return menu, toolsMenu
         
     def initToolbars(self, toolbarManager):
         """
--- a/eric6/UI/UserInterface.py	Wed May 08 18:44:00 2019 +0200
+++ b/eric6/UI/UserInterface.py	Sat May 11 11:19:32 2019 +0200
@@ -2793,6 +2793,10 @@
            not Preferences.getUI("UseNativeMenuBar"):
             mb.setNativeMenuBar(False)
         
+        ##############################################################
+        ## File menu
+        ##############################################################
+        
         self.__menus["file"] = self.viewmanager.initFileMenu()
         mb.addMenu(self.__menus["file"])
         self.__menus["file"].addSeparator()
@@ -2806,20 +2810,104 @@
         self.__menus["file"].insertAction(sep, self.newWindowAct)
         self.__menus["file"].aboutToShow.connect(self.__showFileMenu)
         
+        ##############################################################
+        ## Edit menu
+        ##############################################################
+        
         self.__menus["edit"] = self.viewmanager.initEditMenu()
         mb.addMenu(self.__menus["edit"])
         
+        ##############################################################
+        ## Search menu
+        ##############################################################
+        
+        self.__menus["search"] = self.viewmanager.initSearchMenu()
+        mb.addMenu(self.__menus["search"])
+        
+        ##############################################################
+        ## View menu
+        ##############################################################
+        
         self.__menus["view"] = self.viewmanager.initViewMenu()
         mb.addMenu(self.__menus["view"])
+
+        ##############################################################
+        ## Bookmarks menu
+        ##############################################################
+        
+        self.__menus["bookmarks"] = self.viewmanager.initBookmarkMenu()
+        mb.addMenu(self.__menus["bookmarks"])
+        self.__menus["bookmarks"].setTearOffEnabled(True)
+        
+        ##############################################################
+        ## Multiproject menu
+        ##############################################################
+        
+        self.__menus["multiproject"] = self.multiProject.initMenu()
+        mb.addMenu(self.__menus["multiproject"])
+        
+        ##############################################################
+        ## Project menu
+        ##############################################################
+        
+        self.__menus["project"], self.__menus["project_tools"] = \
+            self.project.initMenus()
+        mb.addMenu(self.__menus["project"])
+        mb.addMenu(self.__menus["project_tools"])
+        
+        ##############################################################
+        ## Start and Debug menus
+        ##############################################################
         
         self.__menus["start"], self.__menus["debug"] = \
             self.debuggerUI.initMenus()
         mb.addMenu(self.__menus["start"])
         mb.addMenu(self.__menus["debug"])
         
+        ##############################################################
+        ## Tools menu
+        ##############################################################
+        
+        self.__menus["extras"] = QMenu(self.tr('E&xtras'), self)
+        self.__menus["extras"].setTearOffEnabled(True)
+        self.__menus["extras"].aboutToShow.connect(self.__showExtrasMenu)
+        mb.addMenu(self.__menus["extras"])
+        self.viewmanager.addToExtrasMenu(self.__menus["extras"])
+        
+        ##############################################################
+        ## Tools/Wizards menu
+        ##############################################################
+        
+        self.__menus["wizards"] = QMenu(self.tr('Wi&zards'), self)
+        self.__menus["wizards"].setTearOffEnabled(True)
+        self.__menus["wizards"].aboutToShow.connect(self.__showWizardsMenu)
+        self.wizardsMenuAct = self.__menus["extras"].addMenu(
+            self.__menus["wizards"])
+        self.wizardsMenuAct.setEnabled(False)
+        
+        ##############################################################
+        ## Tools/Macros menu
+        ##############################################################
+        
+        self.__menus["macros"] = self.viewmanager.initMacroMenu()
+        self.__menus["extras"].addMenu(self.__menus["macros"])
+        self.__menus["extras"].addSeparator()
+        
+        ##############################################################
+        ## Tools/VirtualEnv Manager menu
+        ##############################################################
+        
+        self.__menus["extras"].addAction(self.virtualenvManagerAct)
+        self.__menus["extras"].addAction(self.virtualenvConfigAct)
+        self.__menus["extras"].addSeparator()
+        
+        ##############################################################
+        ## Tools/Unittest menu
+        ##############################################################
+        
         self.__menus["unittest"] = QMenu(self.tr('&Unittest'), self)
         self.__menus["unittest"].setTearOffEnabled(True)
-        mb.addMenu(self.__menus["unittest"])
+        self.__menus["extras"].addMenu(self.__menus["unittest"])
         self.__menus["unittest"].addAction(self.utDialogAct)
         self.__menus["unittest"].addSeparator()
         self.__menus["unittest"].addAction(self.utRestartAct)
@@ -2828,28 +2916,10 @@
         self.__menus["unittest"].addAction(self.utScriptAct)
         self.__menus["unittest"].addAction(self.utProjectAct)
         
-        self.__menus["multiproject"] = self.multiProject.initMenu()
-        mb.addMenu(self.__menus["multiproject"])
-        
-        self.__menus["project"] = self.project.initMenu()
-        mb.addMenu(self.__menus["project"])
-        
-        self.__menus["extras"] = QMenu(self.tr('E&xtras'), self)
-        self.__menus["extras"].setTearOffEnabled(True)
-        self.__menus["extras"].aboutToShow.connect(self.__showExtrasMenu)
-        mb.addMenu(self.__menus["extras"])
-        self.viewmanager.addToExtrasMenu(self.__menus["extras"])
-        self.__menus["wizards"] = QMenu(self.tr('Wi&zards'), self)
-        self.__menus["wizards"].setTearOffEnabled(True)
-        self.__menus["wizards"].aboutToShow.connect(self.__showWizardsMenu)
-        self.wizardsMenuAct = self.__menus["extras"].addMenu(
-            self.__menus["wizards"])
-        self.wizardsMenuAct.setEnabled(False)
-        self.__menus["macros"] = self.viewmanager.initMacroMenu()
-        self.__menus["extras"].addMenu(self.__menus["macros"])
-        self.__menus["extras"].addSeparator()
-        self.__menus["extras"].addAction(self.virtualenvManagerAct)
-        self.__menus["extras"].addAction(self.virtualenvConfigAct)
+        ##############################################################
+        ## Tools/Builtin,Plugin,User tools menus
+        ##############################################################
+        
         self.toolGroupsMenu = QMenu(self.tr("Select Tool Group"), self)
         self.toolGroupsMenu.aboutToShow.connect(self.__showToolGroupsMenu)
         self.toolGroupsMenu.triggered.connect(self.__toolGroupSelected)
@@ -2858,13 +2928,40 @@
         self.__initToolsMenus(self.__menus["extras"])
         self.__menus["extras"].addSeparator()
         
+        ##############################################################
+        ## Settings menu
+        ##############################################################
+        
         self.__menus["settings"] = QMenu(self.tr('Se&ttings'), self)
         mb.addMenu(self.__menus["settings"])
         self.__menus["settings"].setTearOffEnabled(True)
+        
+        ##############################################################
+        ## Settings/Plugins menu
+        ##############################################################
+        
+        pluginsMenu = QMenu(self.tr('P&lugins'), self)
+        pluginsMenu.setIcon(UI.PixmapCache.getIcon("plugin.png"))
+        pluginsMenu.setTearOffEnabled(True)
+        pluginsMenu.addAction(self.pluginInfoAct)
+        pluginsMenu.addAction(self.pluginInstallAct)
+        pluginsMenu.addAction(self.pluginDeinstallAct)
+        pluginsMenu.addSeparator()
+        pluginsMenu.addAction(self.pluginRepoAct)
+        pluginsMenu.addSeparator()
+        pluginsMenu.addAction(
+            self.tr("Configure..."), self.__pluginsConfigure)
+
+        ##############################################################
+        ## Settings menu continued
+        ##############################################################
+        
         self.__menus["settings"].addAction(self.prefAct)
         self.__menus["settings"].addAction(self.prefExportAct)
         self.__menus["settings"].addAction(self.prefImportAct)
         self.__menus["settings"].addSeparator()
+        self.__menus["settings"].addMenu(pluginsMenu)
+        self.__menus["settings"].addSeparator()
         self.__menus["settings"].addAction(self.reloadAPIsAct)
         self.__menus["settings"].addSeparator()
         self.__menus["settings"].addAction(self.configViewProfilesAct)
@@ -2883,11 +2980,19 @@
         self.__menus["settings"].addSeparator()
         self.__menus["settings"].addAction(self.clearPrivateDataAct)
         
+        ##############################################################
+        ## Window menu
+        ##############################################################
+        
         self.__menus["window"] = QMenu(self.tr('&Window'), self)
         mb.addMenu(self.__menus["window"])
         self.__menus["window"].setTearOffEnabled(True)
         self.__menus["window"].aboutToShow.connect(self.__showWindowMenu)
         
+        ##############################################################
+        ## Window/Windows menu
+        ##############################################################
+        
         self.__menus["subwindow"] = QMenu(self.tr("&Windows"),
                                           self.__menus["window"])
         self.__menus["subwindow"].setTearOffEnabled(True)
@@ -2951,6 +3056,10 @@
             # Qt4
             self.__menus["subwindow"].addSeparator()
         
+        ##############################################################
+        ## Window/Toolbars menu
+        ##############################################################
+        
         self.__menus["toolbars"] = \
             QMenu(self.tr("&Toolbars"), self.__menus["window"])
         self.__menus["toolbars"].setTearOffEnabled(True)
@@ -2959,24 +3068,12 @@
         
         self.__showWindowMenu()  # to initialize these actions
 
-        self.__menus["bookmarks"] = self.viewmanager.initBookmarkMenu()
-        mb.addMenu(self.__menus["bookmarks"])
-        self.__menus["bookmarks"].setTearOffEnabled(True)
-
-        self.__menus["plugins"] = QMenu(self.tr('P&lugins'), self)
-        mb.addMenu(self.__menus["plugins"])
-        self.__menus["plugins"].setTearOffEnabled(True)
-        self.__menus["plugins"].addAction(self.pluginInfoAct)
-        self.__menus["plugins"].addAction(self.pluginInstallAct)
-        self.__menus["plugins"].addAction(self.pluginDeinstallAct)
-        self.__menus["plugins"].addSeparator()
-        self.__menus["plugins"].addAction(self.pluginRepoAct)
-        self.__menus["plugins"].addSeparator()
-        self.__menus["plugins"].addAction(
-            self.tr("Configure..."), self.__pluginsConfigure)
-
         mb.addSeparator()
 
+        ##############################################################
+        ## Help menu
+        ##############################################################
+        
         self.__menus["help"] = QMenu(self.tr('&Help'), self)
         mb.addMenu(self.__menus["help"])
         self.__menus["help"].setTearOffEnabled(True)
--- a/eric6/ViewManager/ViewManager.py	Wed May 08 18:44:00 2019 +0200
+++ b/eric6/ViewManager/ViewManager.py	Sat May 11 11:19:32 2019 +0200
@@ -2770,27 +2770,6 @@
         autocompletionMenu.addAction(self.autoCompleteFromAPIsAct)
         autocompletionMenu.addAction(self.autoCompleteFromAllAct)
         
-        searchMenu = QMenu(
-            QCoreApplication.translate('ViewManager', '&Search'),
-            self.ui)
-        searchMenu.setTearOffEnabled(True)
-        searchMenu.addAction(self.quickSearchAct)
-        searchMenu.addAction(self.quickSearchBackAct)
-        searchMenu.addAction(self.searchAct)
-        searchMenu.addAction(self.searchNextAct)
-        searchMenu.addAction(self.searchPrevAct)
-        searchMenu.addAction(self.searchNextWordAct)
-        searchMenu.addAction(self.searchPrevWordAct)
-        searchMenu.addAction(self.replaceAct)
-        searchMenu.addSeparator()
-        searchMenu.addAction(self.searchClearMarkersAct)
-        searchMenu.addSeparator()
-        searchMenu.addAction(self.searchFilesAct)
-        searchMenu.addAction(self.replaceFilesAct)
-        searchMenu.addSeparator()
-        searchMenu.addAction(self.searchOpenFilesAct)
-        searchMenu.addAction(self.replaceOpenFilesAct)
-        
         menu = QMenu(QCoreApplication.translate('ViewManager', '&Edit'),
                      self.ui)
         menu.setTearOffEnabled(True)
@@ -2821,8 +2800,6 @@
         menu.addAction(self.calltipsAct)
         menu.addAction(self.codeInfoAct)
         menu.addSeparator()
-        menu.addMenu(searchMenu)
-        menu.addSeparator()
         menu.addAction(self.gotoAct)
         menu.addAction(self.gotoBraceAct)
         menu.addAction(self.gotoLastEditAct)
@@ -3351,6 +3328,36 @@
         ))
         self.replaceOpenFilesAct.triggered.connect(self.__replaceOpenFiles)
         self.searchActions.append(self.replaceOpenFilesAct)
+    
+    def initSearchMenu(self):
+        """
+        Public method to create the Search menu.
+        
+        @return the generated menu
+        @rtype QMenu
+        """
+        menu = QMenu(
+            QCoreApplication.translate('ViewManager', '&Search'),
+            self.ui)
+        menu.setTearOffEnabled(True)
+        menu.addAction(self.quickSearchAct)
+        menu.addAction(self.quickSearchBackAct)
+        menu.addAction(self.searchAct)
+        menu.addAction(self.searchNextAct)
+        menu.addAction(self.searchPrevAct)
+        menu.addAction(self.searchNextWordAct)
+        menu.addAction(self.searchPrevWordAct)
+        menu.addAction(self.replaceAct)
+        menu.addSeparator()
+        menu.addAction(self.searchClearMarkersAct)
+        menu.addSeparator()
+        menu.addAction(self.searchFilesAct)
+        menu.addAction(self.replaceFilesAct)
+        menu.addSeparator()
+        menu.addAction(self.searchOpenFilesAct)
+        menu.addAction(self.replaceOpenFilesAct)
+        
+        return menu
         
     def initSearchToolbars(self, toolbarManager):
         """
@@ -4375,7 +4382,7 @@
     
     def addToExtrasMenu(self, menu):
         """
-        Public method to add some actions to the extras menu.
+        Public method to add some actions to the Extras menu.
         
         @param menu reference to the menu to add actions to (QMenu)
         """

eric ide

mercurial