From fbd9699e17e6e49e89909373d3282621d0d81350 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Andr=C3=A9s=20Margffoy=20Tuay?= Date: Tue, 31 Aug 2021 17:34:59 -0500 Subject: [PATCH] Disconnect from main menu --- spyder/api/widgets/menus.py | 5 +++-- spyder/plugins/application/plugin.py | 31 ++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/spyder/api/widgets/menus.py b/spyder/api/widgets/menus.py index adde4df4799..8b866c8ba93 100644 --- a/spyder/api/widgets/menus.py +++ b/spyder/api/widgets/menus.py @@ -167,8 +167,9 @@ def add_action(self: T, action: Union[SpyderAction, T], self._actions_map[item_id] = action def remove_action(self, item_id: str): - action = self._actions_map.pop(item_id) - self._actions.remove(action) + if item_id in self._actions_map: + action = self._actions_map.pop(item_id) + self._actions.remove(action) def get_title(self): """ diff --git a/spyder/plugins/application/plugin.py b/spyder/plugins/application/plugin.py index 66895bcc3de..518b01c9c3c 100644 --- a/spyder/plugins/application/plugin.py +++ b/spyder/plugins/application/plugin.py @@ -29,6 +29,7 @@ from spyder.plugins.application.container import ( ApplicationActions, ApplicationContainer, ApplicationPluginMenus, WinUserEnvDialog) +from spyder.plugins.console.api import ConsoleActions from spyder.plugins.mainmenu.api import ( ApplicationMenus, FileMenuSections, HelpMenuSections, ToolsMenuSections) from spyder.utils.qthelpers import add_actions @@ -120,6 +121,13 @@ def on_shortcuts_teardown(self): if self.is_plugin_available(Plugins.MainMenu): self._depopulate_help_menu() + @on_plugin_teardown(plugin=Plugins.MainMenu) + def on_main_menu_teardown(self): + self._depopulate_file_menu() + self._depopulate_tools_menu() + self._depopulate_help_menu() + self.report_action.setVisible(False) + def on_close(self, _unused=True): self.get_container().on_close() @@ -228,6 +236,7 @@ def _depopulate_help_menu_support_section(self): mainmenu = self.get_plugin(Plugins.MainMenu) for support_action in [ ApplicationActions.SpyderTroubleshootingAction, + ConsoleActions.SpyderReportAction, ApplicationActions.SpyderDependenciesAction, ApplicationActions.SpyderCheckUpdatesAction, ApplicationActions.SpyderSupportAction]: @@ -241,6 +250,28 @@ def _depopulate_help_menu_about_section(self): ApplicationActions.SpyderAbout, menu_id=ApplicationMenus.Help) + def _depopulate_file_menu(self): + mainmenu = self.get_plugin(Plugins.MainMenu) + mainmenu.remove_item_from_application_menu( + ApplicationActions.SpyderRestart, + menu_id=ApplicationMenus.File) + mainmenu.remove_item_from_application_menu( + ApplicationActions.SpyderRestartDebug, + menu_id=ApplicationMenus.File) + + def _depopulate_tools_menu(self): + """Add base actions and menus to the Tools menu.""" + mainmenu = self.get_plugin(Plugins.MainMenu) + if WinUserEnvDialog is not None: + mainmenu.remove_item_from_application_menu( + ApplicationActions.SpyderWindowsEnvVariables, + menu_id=ApplicationMenus.Tools) + + if get_debug_level() >= 2: + mainmenu.remove_item_from_application_menu( + ApplicationPluginMenus.DebugLogsMenu, + menu_id=ApplicationMenus.Tools) + # ---- Public API # ------------------------------------------------------------------------ def get_application_context_menu(self, parent=None):