Sat, 11 May 2019 11:19:32 +0200
Project, UserInterface,ViewManager: rearranged the menus.
--- 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) """