Skip to content

Commit

Permalink
Update calls to main menu and toolbar to use ids
Browse files Browse the repository at this point in the history
  • Loading branch information
andfoy committed Aug 31, 2021
1 parent 6a9aa90 commit da787d6
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 30 deletions.
29 changes: 12 additions & 17 deletions spyder/plugins/layout/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@
from spyder.api.translations import get_translation
from spyder.api.utils import get_class_values
from spyder.plugins.mainmenu.api import ApplicationMenus, ViewMenuSections
from spyder.plugins.layout.container import LayoutContainer
from spyder.plugins.layout.container import (
LayoutContainer, LayoutContainerActions)
from spyder.plugins.layout.layouts import (DefaultLayouts,
HorizontalSplitLayout,
MatlabLayout, RLayout,
Expand Down Expand Up @@ -150,43 +151,37 @@ def on_toolbar_available(self):
@on_plugin_teardown(plugin=Plugins.MainMenu)
def on_main_menu_teardown(self):
mainmenu = self.get_plugin(Plugins.MainMenu)
container = self.get_container()
# Remove Panes related actions from the View application menu
panes_items = [
container._plugins_menu,
container._lock_interface_action,
container._close_dockwidget_action,
container._maximize_dockwidget_action]
"plugins_menu",
LayoutContainerActions.LockDockwidgetsAndToolbars,
LayoutContainerActions.CloseCurrentDockwidget,
LayoutContainerActions.MaximizeCurrentDockwidget]
for panes_item in panes_items:
mainmenu.remove_item_from_application_menu(
panes_item,
menu_id=ApplicationMenus.View)
# Remove layouts menu from the View application menu
layout_items = [
container._layouts_menu,
container._toggle_next_layout_action,
container._toggle_previous_layout_action]
'layouts_menu',
LayoutContainerActions.NextLayout,
LayoutContainerActions.PreviousLayout]
for layout_item in layout_items:
mainmenu.remove_item_from_application_menu(
layout_item,
menu_id=ApplicationMenus.View)
# Remove fullscreen action from the View application menu
mainmenu.remove_item_from_application_menu(
container._fullscreen_action,
LayoutContainerActions.Fullscreen,
menu_id=ApplicationMenus.View)

@on_plugin_teardown(plugin=Plugins.Toolbar)
def on_toolbar_teardown(self):
container = self.get_container()
toolbars = self.get_plugin(Plugins.Toolbar)
# Remove actions from the Main application toolbar
before_action = self.get_action(
PreferencesActions.Show,
plugin=Plugins.Preferences
)

# Remove actions from the Main application toolbar
toolbars.remove_item_from_application_toolbar(
container._maximize_dockwidget_action,
LayoutContainerActions.MaximizeCurrentDockwidget,
toolbar_id=ApplicationToolbars.Main
)

Expand Down
19 changes: 6 additions & 13 deletions spyder/plugins/toolbar/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,27 +184,20 @@ def add_item_to_application_toolbar(self,
omit_id=omit_id
)

def remove_item_from_application_toolbar(self, item, toolbar=None,
toolbar_id=None):
def remove_item_from_application_toolbar(self, item_id: str,
toolbar_id: Optional[str] = None):
"""
Remove action or widget `item` from given application menu.
Remove action or widget `item` from given application menu by id.
Parameters
----------
item: SpyderAction or QWidget
The item to add to the `toolbar`.
toolbar: ApplicationToolbar or None
Instance of a Spyder application toolbar.
item_id: str
The item to remove from the toolbar.
toolbar_id: str or None
The application toolbar unique string identifier.
Notes
-----
Must provide a `toolbar` or a `toolbar_id`.
"""
self.get_container().remove_item_from_application_toolbar(
item,
toolbar=toolbar,
item_id,
toolbar_id=toolbar_id
)

Expand Down

0 comments on commit da787d6

Please sign in to comment.