From dbfe385879601146c22c54973d980e0d82b27eab Mon Sep 17 00:00:00 2001 From: Marco Cutecchia Date: Mon, 14 Feb 2022 14:06:57 +0100 Subject: [PATCH] LibGUI: Add 'remove_all_actions' method to 'Menu' --- Userland/Libraries/LibGUI/Menu.cpp | 8 ++++++++ Userland/Libraries/LibGUI/Menu.h | 1 + 2 files changed, 9 insertions(+) diff --git a/Userland/Libraries/LibGUI/Menu.cpp b/Userland/Libraries/LibGUI/Menu.cpp index 7eaca2aacd..b84323e823 100644 --- a/Userland/Libraries/LibGUI/Menu.cpp +++ b/Userland/Libraries/LibGUI/Menu.cpp @@ -64,6 +64,14 @@ void Menu::add_action(NonnullRefPtr action) MUST(try_add_action(move(action))); } +void Menu::remove_all_actions() +{ + for (auto& item : m_items) { + WindowServerConnection::the().async_remove_menu_item(m_menu_id, item.identifier()); + } + m_items.clear(); +} + ErrorOr> Menu::try_add_submenu(String name) { // NOTE: We grow the vector first, to get allocation failure handled immediately. diff --git a/Userland/Libraries/LibGUI/Menu.h b/Userland/Libraries/LibGUI/Menu.h index 2f144b6e60..3950ca4448 100644 --- a/Userland/Libraries/LibGUI/Menu.h +++ b/Userland/Libraries/LibGUI/Menu.h @@ -39,6 +39,7 @@ public: void add_action(NonnullRefPtr); void add_separator(); Menu& add_submenu(String name); + void remove_all_actions(); void popup(const Gfx::IntPoint& screen_position, const RefPtr& default_action = nullptr); void dismiss();