LibGUI: Remove Window::try_add_menu()

And fall back to the infallible add_menu().
This commit is contained in:
Andreas Kling 2023-08-14 10:44:42 +02:00
parent 5300896095
commit bd61e75e0b
51 changed files with 294 additions and 302 deletions

View file

@ -372,9 +372,9 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
time.set_x(widget->width() - time.width() - 6); time.set_x(widget->width() - time.width() - 6);
widget->set_stat_label(time); widget->set_stat_label(time);
auto& file_menu = window->add_menu("&File"_string); auto file_menu = window->add_menu("&File"_string);
file_menu.add_action(GUI::CommonActions::make_open_action([&](auto&) { file_menu->add_action(GUI::CommonActions::make_open_action([&](auto&) {
FileSystemAccessClient::OpenFileOptions options { FileSystemAccessClient::OpenFileOptions options {
.allowed_file_types = { { GUI::FileTypeFilter { "Object Files", { { "obj" } } }, GUI::FileTypeFilter::all_files() } }, .allowed_file_types = { { GUI::FileTypeFilter { "Object Files", { { "obj" } } }, GUI::FileTypeFilter::all_files() } },
}; };
@ -385,17 +385,17 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
auto file = response.release_value(); auto file = response.release_value();
widget->load_file(file.filename(), file.release_stream()); widget->load_file(file.filename(), file.release_stream());
})); }));
file_menu.add_separator(); file_menu->add_separator();
file_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { file_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) {
app->quit(); app->quit();
})); }));
auto& view_menu = window->add_menu("&View"_string); auto view_menu = window->add_menu("&View"_string);
view_menu.add_action(GUI::CommonActions::make_fullscreen_action([&](auto&) { view_menu->add_action(GUI::CommonActions::make_fullscreen_action([&](auto&) {
window->set_fullscreen(!window->is_fullscreen()); window->set_fullscreen(!window->is_fullscreen());
})); }));
auto rotation_axis_menu = view_menu.add_submenu("Rotation &Axis"_string); auto rotation_axis_menu = view_menu->add_submenu("Rotation &Axis"_string);
auto rotation_x_action = GUI::Action::create_checkable("&X", [&widget](auto&) { auto rotation_x_action = GUI::Action::create_checkable("&X", [&widget](auto&) {
widget->toggle_rotate_x(); widget->toggle_rotate_x();
}); });
@ -413,7 +413,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
rotation_x_action->set_checked(true); rotation_x_action->set_checked(true);
rotation_z_action->set_checked(true); rotation_z_action->set_checked(true);
auto rotation_speed_menu = view_menu.add_submenu("Rotation &Speed"_string); auto rotation_speed_menu = view_menu->add_submenu("Rotation &Speed"_string);
GUI::ActionGroup rotation_speed_actions; GUI::ActionGroup rotation_speed_actions;
rotation_speed_actions.set_exclusive(true); rotation_speed_actions.set_exclusive(true);
@ -446,17 +446,17 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
widget->toggle_show_frame_rate(); widget->toggle_show_frame_rate();
}); });
view_menu.add_action(*show_frame_rate_action); view_menu->add_action(*show_frame_rate_action);
auto& texture_menu = window->add_menu("&Texture"_string); auto texture_menu = window->add_menu("&Texture"_string);
auto texture_enabled_action = GUI::Action::create_checkable("&Enable Texture", [&widget](auto& action) { auto texture_enabled_action = GUI::Action::create_checkable("&Enable Texture", [&widget](auto& action) {
widget->set_texture_enabled(action.is_checked()); widget->set_texture_enabled(action.is_checked());
}); });
texture_enabled_action->set_checked(true); texture_enabled_action->set_checked(true);
texture_menu.add_action(texture_enabled_action); texture_menu->add_action(texture_enabled_action);
auto wrap_u_menu = texture_menu.add_submenu("Wrap &S"_string); auto wrap_u_menu = texture_menu->add_submenu("Wrap &S"_string);
GUI::ActionGroup wrap_s_actions; GUI::ActionGroup wrap_s_actions;
wrap_s_actions.set_exclusive(true); wrap_s_actions.set_exclusive(true);
@ -480,7 +480,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
wrap_u_repeat_action->set_checked(true); wrap_u_repeat_action->set_checked(true);
auto wrap_t_menu = texture_menu.add_submenu("Wrap &T"_string); auto wrap_t_menu = texture_menu->add_submenu("Wrap &T"_string);
GUI::ActionGroup wrap_t_actions; GUI::ActionGroup wrap_t_actions;
wrap_t_actions.set_exclusive(true); wrap_t_actions.set_exclusive(true);
@ -504,7 +504,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
wrap_t_repeat_action->set_checked(true); wrap_t_repeat_action->set_checked(true);
auto texture_scale_menu = texture_menu.add_submenu("S&cale"_string); auto texture_scale_menu = texture_menu->add_submenu("S&cale"_string);
GUI::ActionGroup texture_scale_actions; GUI::ActionGroup texture_scale_actions;
texture_scale_actions.set_exclusive(true); texture_scale_actions.set_exclusive(true);
@ -542,7 +542,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
texture_scale_1_action->set_checked(true); texture_scale_1_action->set_checked(true);
auto texture_mag_filter_menu = texture_menu.add_submenu("Mag Filter"_string); auto texture_mag_filter_menu = texture_menu->add_submenu("Mag Filter"_string);
GUI::ActionGroup texture_mag_filter_actions; GUI::ActionGroup texture_mag_filter_actions;
texture_mag_filter_actions.set_exclusive(true); texture_mag_filter_actions.set_exclusive(true);
@ -562,9 +562,9 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
texture_mag_filter_nearest_action->set_checked(true); texture_mag_filter_nearest_action->set_checked(true);
auto& help_menu = window->add_menu("&Help"_string); auto help_menu = window->add_menu("&Help"_string);
help_menu.add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu.add_action(GUI::CommonActions::make_about_action("3D File Viewer", app_icon, window)); help_menu->add_action(GUI::CommonActions::make_about_action("3D File Viewer", app_icon, window));
window->show(); window->show();

View file

@ -151,26 +151,26 @@ BrowserWindow::BrowserWindow(CookieJar& cookie_jar, URL url)
void BrowserWindow::build_menus() void BrowserWindow::build_menus()
{ {
auto& file_menu = add_menu("&File"_string); auto file_menu = add_menu("&File"_string);
file_menu.add_action(WindowActions::the().create_new_tab_action()); file_menu->add_action(WindowActions::the().create_new_tab_action());
file_menu.add_action(WindowActions::the().create_new_window_action()); file_menu->add_action(WindowActions::the().create_new_window_action());
auto close_tab_action = GUI::CommonActions::make_close_tab_action([this](auto&) { auto close_tab_action = GUI::CommonActions::make_close_tab_action([this](auto&) {
active_tab().on_tab_close_request(active_tab()); active_tab().on_tab_close_request(active_tab());
}, },
this); this);
file_menu.add_action(close_tab_action); file_menu->add_action(close_tab_action);
file_menu.add_separator(); file_menu->add_separator();
file_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) { file_menu->add_action(GUI::CommonActions::make_quit_action([](auto&) {
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto& view_menu = add_menu("&View"_string); auto view_menu = add_menu("&View"_string);
view_menu.add_action(WindowActions::the().show_bookmarks_bar_action()); view_menu->add_action(WindowActions::the().show_bookmarks_bar_action());
view_menu.add_action(WindowActions::the().vertical_tabs_action()); view_menu->add_action(WindowActions::the().vertical_tabs_action());
view_menu.add_separator(); view_menu->add_separator();
m_zoom_menu = view_menu.add_submenu("&Zoom"_string); m_zoom_menu = view_menu->add_submenu("&Zoom"_string);
m_zoom_menu->add_action(GUI::CommonActions::make_zoom_in_action( m_zoom_menu->add_action(GUI::CommonActions::make_zoom_in_action(
[this](auto&) { [this](auto&) {
auto& tab = active_tab(); auto& tab = active_tab();
@ -192,8 +192,8 @@ void BrowserWindow::build_menus()
update_displayed_zoom_level(); update_displayed_zoom_level();
}, },
this)); this));
view_menu.add_separator(); view_menu->add_separator();
view_menu.add_action(GUI::CommonActions::make_fullscreen_action( view_menu->add_action(GUI::CommonActions::make_fullscreen_action(
[this](auto&) { [this](auto&) {
auto& tab = active_tab(); auto& tab = active_tab();
set_fullscreen(!is_fullscreen()); set_fullscreen(!is_fullscreen());
@ -217,12 +217,12 @@ void BrowserWindow::build_menus()
m_reload_action = GUI::CommonActions::make_reload_action([this](auto&) { active_tab().reload(); }, this); m_reload_action = GUI::CommonActions::make_reload_action([this](auto&) { active_tab().reload(); }, this);
m_reload_action->set_status_tip("Reload current page"_string); m_reload_action->set_status_tip("Reload current page"_string);
auto& go_menu = add_menu("&Go"_string); auto go_menu = add_menu("&Go"_string);
go_menu.add_action(*m_go_back_action); go_menu->add_action(*m_go_back_action);
go_menu.add_action(*m_go_forward_action); go_menu->add_action(*m_go_forward_action);
go_menu.add_action(*m_go_home_action); go_menu->add_action(*m_go_home_action);
go_menu.add_separator(); go_menu->add_separator();
go_menu.add_action(*m_reload_action); go_menu->add_action(*m_reload_action);
m_copy_selection_action = GUI::CommonActions::make_copy_action([this](auto&) { m_copy_selection_action = GUI::CommonActions::make_copy_action([this](auto&) {
auto& tab = active_tab(); auto& tab = active_tab();
@ -256,9 +256,9 @@ void BrowserWindow::build_menus()
this); this);
m_inspect_dom_node_action->set_status_tip("Open inspector for this element"_string); m_inspect_dom_node_action->set_status_tip("Open inspector for this element"_string);
auto& inspect_menu = add_menu("&Inspect"_string); auto inspect_menu = add_menu("&Inspect"_string);
inspect_menu.add_action(*m_view_source_action); inspect_menu->add_action(*m_view_source_action);
inspect_menu.add_action(*m_inspect_dom_tree_action); inspect_menu->add_action(*m_inspect_dom_tree_action);
auto js_console_action = GUI::Action::create( auto js_console_action = GUI::Action::create(
"Open &JS Console", { Mod_Ctrl, Key_I }, g_icon_bag.filetype_javascript, [this](auto&) { "Open &JS Console", { Mod_Ctrl, Key_I }, g_icon_bag.filetype_javascript, [this](auto&) {
@ -266,7 +266,7 @@ void BrowserWindow::build_menus()
}, },
this); this);
js_console_action->set_status_tip("Open JavaScript console for this page"_string); js_console_action->set_status_tip("Open JavaScript console for this page"_string);
inspect_menu.add_action(js_console_action); inspect_menu->add_action(js_console_action);
auto storage_window_action = GUI::Action::create( auto storage_window_action = GUI::Action::create(
"Open S&torage Inspector", g_icon_bag.cookie, [this](auto&) { "Open S&torage Inspector", g_icon_bag.cookie, [this](auto&) {
@ -274,7 +274,7 @@ void BrowserWindow::build_menus()
}, },
this); this);
storage_window_action->set_status_tip("Show Storage inspector for this page"_string); storage_window_action->set_status_tip("Show Storage inspector for this page"_string);
inspect_menu.add_action(storage_window_action); inspect_menu->add_action(storage_window_action);
auto history_window_action = GUI::Action::create( auto history_window_action = GUI::Action::create(
"Open &History Window", g_icon_bag.history, [this](auto&) { "Open &History Window", g_icon_bag.history, [this](auto&) {
@ -282,9 +282,9 @@ void BrowserWindow::build_menus()
}, },
this); this);
storage_window_action->set_status_tip("Show History inspector for this tab"_string); storage_window_action->set_status_tip("Show History inspector for this tab"_string);
inspect_menu.add_action(history_window_action); inspect_menu->add_action(history_window_action);
auto& settings_menu = add_menu("&Settings"_string); auto settings_menu = add_menu("&Settings"_string);
m_change_homepage_action = GUI::Action::create( m_change_homepage_action = GUI::Action::create(
"Set Homepage URL...", g_icon_bag.go_home, [this](auto&) { "Set Homepage URL...", g_icon_bag.go_home, [this](auto&) {
@ -300,14 +300,14 @@ void BrowserWindow::build_menus()
}, },
this); this);
settings_menu.add_action(*m_change_homepage_action); settings_menu->add_action(*m_change_homepage_action);
auto load_search_engines_result = load_search_engines(settings_menu); auto load_search_engines_result = load_search_engines(settings_menu);
if (load_search_engines_result.is_error()) { if (load_search_engines_result.is_error()) {
dbgln("Failed to open search-engines file: {}", load_search_engines_result.error()); dbgln("Failed to open search-engines file: {}", load_search_engines_result.error());
} }
auto color_scheme_menu = settings_menu.add_submenu("&Color Scheme"_string); auto color_scheme_menu = settings_menu->add_submenu("&Color Scheme"_string);
color_scheme_menu->set_icon(g_icon_bag.color_chooser); color_scheme_menu->set_icon(g_icon_bag.color_chooser);
{ {
auto current_setting = Web::CSS::preferred_color_scheme_from_string(Config::read_string("Browser"sv, "Preferences"sv, "ColorScheme"sv, Browser::default_color_scheme)); auto current_setting = Web::CSS::preferred_color_scheme_from_string(Config::read_string("Browser"sv, "Preferences"sv, "ColorScheme"sv, Browser::default_color_scheme));
@ -331,74 +331,74 @@ void BrowserWindow::build_menus()
add_color_scheme_action("Dark", Web::CSS::PreferredColorScheme::Dark); add_color_scheme_action("Dark", Web::CSS::PreferredColorScheme::Dark);
} }
settings_menu.add_separator(); settings_menu->add_separator();
auto open_settings_action = GUI::Action::create("Browser &Settings", Gfx::Bitmap::load_from_file("/res/icons/16x16/settings.png"sv).release_value_but_fixme_should_propagate_errors(), auto open_settings_action = GUI::Action::create("Browser &Settings", Gfx::Bitmap::load_from_file("/res/icons/16x16/settings.png"sv).release_value_but_fixme_should_propagate_errors(),
[this](auto&) { [this](auto&) {
GUI::Process::spawn_or_show_error(this, "/bin/BrowserSettings"sv); GUI::Process::spawn_or_show_error(this, "/bin/BrowserSettings"sv);
}); });
settings_menu.add_action(move(open_settings_action)); settings_menu->add_action(move(open_settings_action));
auto& debug_menu = add_menu("&Debug"_string); auto debug_menu = add_menu("&Debug"_string);
debug_menu.add_action(GUI::Action::create( debug_menu->add_action(GUI::Action::create(
"Dump &DOM Tree", g_icon_bag.dom_tree, [this](auto&) { "Dump &DOM Tree", g_icon_bag.dom_tree, [this](auto&) {
active_tab().view().debug_request("dump-dom-tree"); active_tab().view().debug_request("dump-dom-tree");
}, },
this)); this));
debug_menu.add_action(GUI::Action::create( debug_menu->add_action(GUI::Action::create(
"Dump &Layout Tree", g_icon_bag.layout, [this](auto&) { "Dump &Layout Tree", g_icon_bag.layout, [this](auto&) {
active_tab().view().debug_request("dump-layout-tree"); active_tab().view().debug_request("dump-layout-tree");
}, },
this)); this));
debug_menu.add_action(GUI::Action::create( debug_menu->add_action(GUI::Action::create(
"Dump &Paint Tree", g_icon_bag.layout, [this](auto&) { "Dump &Paint Tree", g_icon_bag.layout, [this](auto&) {
active_tab().view().debug_request("dump-paint-tree"); active_tab().view().debug_request("dump-paint-tree");
}, },
this)); this));
debug_menu.add_action(GUI::Action::create( debug_menu->add_action(GUI::Action::create(
"Dump S&tacking Context Tree", g_icon_bag.layers, [this](auto&) { "Dump S&tacking Context Tree", g_icon_bag.layers, [this](auto&) {
active_tab().view().debug_request("dump-stacking-context-tree"); active_tab().view().debug_request("dump-stacking-context-tree");
}, },
this)); this));
debug_menu.add_action(GUI::Action::create( debug_menu->add_action(GUI::Action::create(
"Dump &Style Sheets", g_icon_bag.filetype_css, [this](auto&) { "Dump &Style Sheets", g_icon_bag.filetype_css, [this](auto&) {
active_tab().view().debug_request("dump-style-sheets"); active_tab().view().debug_request("dump-style-sheets");
}, },
this)); this));
debug_menu.add_action(GUI::Action::create( debug_menu->add_action(GUI::Action::create(
"Dump &All Resolved Styles", g_icon_bag.filetype_css, [this](auto&) { "Dump &All Resolved Styles", g_icon_bag.filetype_css, [this](auto&) {
active_tab().view().debug_request("dump-all-resolved-styles"); active_tab().view().debug_request("dump-all-resolved-styles");
}, },
this)); this));
debug_menu.add_action(GUI::Action::create("Dump &History", { Mod_Ctrl, Key_H }, g_icon_bag.history, [this](auto&) { debug_menu->add_action(GUI::Action::create("Dump &History", { Mod_Ctrl, Key_H }, g_icon_bag.history, [this](auto&) {
active_tab().m_history.dump(); active_tab().m_history.dump();
})); }));
debug_menu.add_action(GUI::Action::create("Dump C&ookies", g_icon_bag.cookie, [this](auto&) { debug_menu->add_action(GUI::Action::create("Dump C&ookies", g_icon_bag.cookie, [this](auto&) {
auto& tab = active_tab(); auto& tab = active_tab();
if (tab.on_dump_cookies) if (tab.on_dump_cookies)
tab.on_dump_cookies(); tab.on_dump_cookies();
})); }));
debug_menu.add_action(GUI::Action::create("Dump Loc&al Storage", g_icon_bag.local_storage, [this](auto&) { debug_menu->add_action(GUI::Action::create("Dump Loc&al Storage", g_icon_bag.local_storage, [this](auto&) {
active_tab().view().debug_request("dump-local-storage"); active_tab().view().debug_request("dump-local-storage");
})); }));
debug_menu.add_separator(); debug_menu->add_separator();
auto line_box_borders_action = GUI::Action::create_checkable( auto line_box_borders_action = GUI::Action::create_checkable(
"Line &Box Borders", [this](auto& action) { "Line &Box Borders", [this](auto& action) {
active_tab().view().debug_request("set-line-box-borders", action.is_checked() ? "on" : "off"); active_tab().view().debug_request("set-line-box-borders", action.is_checked() ? "on" : "off");
}, },
this); this);
line_box_borders_action->set_checked(false); line_box_borders_action->set_checked(false);
debug_menu.add_action(line_box_borders_action); debug_menu->add_action(line_box_borders_action);
debug_menu.add_separator(); debug_menu->add_separator();
debug_menu.add_action(GUI::Action::create("Collect &Garbage", { Mod_Ctrl | Mod_Shift, Key_G }, g_icon_bag.trash_can, [this](auto&) { debug_menu->add_action(GUI::Action::create("Collect &Garbage", { Mod_Ctrl | Mod_Shift, Key_G }, g_icon_bag.trash_can, [this](auto&) {
active_tab().view().debug_request("collect-garbage"); active_tab().view().debug_request("collect-garbage");
})); }));
debug_menu.add_action(GUI::Action::create("Clear &Cache", { Mod_Ctrl | Mod_Shift, Key_C }, g_icon_bag.clear_cache, [this](auto&) { debug_menu->add_action(GUI::Action::create("Clear &Cache", { Mod_Ctrl | Mod_Shift, Key_C }, g_icon_bag.clear_cache, [this](auto&) {
active_tab().view().debug_request("clear-cache"); active_tab().view().debug_request("clear-cache");
})); }));
m_user_agent_spoof_actions.set_exclusive(true); m_user_agent_spoof_actions.set_exclusive(true);
auto spoof_user_agent_menu = debug_menu.add_submenu("Spoof &User Agent"_string); auto spoof_user_agent_menu = debug_menu->add_submenu("Spoof &User Agent"_string);
m_disable_user_agent_spoofing = GUI::Action::create_checkable("Disabled", [this](auto&) { m_disable_user_agent_spoofing = GUI::Action::create_checkable("Disabled", [this](auto&) {
active_tab().view().debug_request("spoof-user-agent", Web::default_user_agent); active_tab().view().debug_request("spoof-user-agent", Web::default_user_agent);
}); });
@ -435,14 +435,14 @@ void BrowserWindow::build_menus()
spoof_user_agent_menu->add_action(custom_user_agent); spoof_user_agent_menu->add_action(custom_user_agent);
m_user_agent_spoof_actions.add_action(custom_user_agent); m_user_agent_spoof_actions.add_action(custom_user_agent);
debug_menu.add_separator(); debug_menu->add_separator();
auto scripting_enabled_action = GUI::Action::create_checkable( auto scripting_enabled_action = GUI::Action::create_checkable(
"Enable Scripting", [this](auto& action) { "Enable Scripting", [this](auto& action) {
active_tab().view().debug_request("scripting", action.is_checked() ? "on" : "off"); active_tab().view().debug_request("scripting", action.is_checked() ? "on" : "off");
}, },
this); this);
scripting_enabled_action->set_checked(true); scripting_enabled_action->set_checked(true);
debug_menu.add_action(scripting_enabled_action); debug_menu->add_action(scripting_enabled_action);
auto block_pop_ups_action = GUI::Action::create_checkable( auto block_pop_ups_action = GUI::Action::create_checkable(
"Block Pop-ups", [this](auto& action) { "Block Pop-ups", [this](auto& action) {
@ -450,7 +450,7 @@ void BrowserWindow::build_menus()
}, },
this); this);
block_pop_ups_action->set_checked(true); block_pop_ups_action->set_checked(true);
debug_menu.add_action(block_pop_ups_action); debug_menu->add_action(block_pop_ups_action);
auto same_origin_policy_action = GUI::Action::create_checkable( auto same_origin_policy_action = GUI::Action::create_checkable(
"Enable Same-Origin &Policy", [this](auto& action) { "Enable Same-Origin &Policy", [this](auto& action) {
@ -458,11 +458,11 @@ void BrowserWindow::build_menus()
}, },
this); this);
same_origin_policy_action->set_checked(false); same_origin_policy_action->set_checked(false);
debug_menu.add_action(same_origin_policy_action); debug_menu->add_action(same_origin_policy_action);
auto& help_menu = add_menu("&Help"_string); auto help_menu = add_menu("&Help"_string);
help_menu.add_action(GUI::CommonActions::make_command_palette_action(this)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(this));
help_menu.add_action(WindowActions::the().about_action()); help_menu->add_action(WindowActions::the().about_action());
} }
ErrorOr<void> BrowserWindow::load_search_engines(GUI::Menu& settings_menu) ErrorOr<void> BrowserWindow::load_search_engines(GUI::Menu& settings_menu)

View file

@ -39,16 +39,16 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
window->set_icon(app_icon.bitmap_for_size(16)); window->set_icon(app_icon.bitmap_for_size(16));
auto& file_menu = window->add_menu("&File"_string); auto file_menu = window->add_menu("&File"_string);
file_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) { file_menu->add_action(GUI::CommonActions::make_quit_action([](auto&) {
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto& edit_menu = window->add_menu("&Edit"_string); auto edit_menu = window->add_menu("&Edit"_string);
edit_menu.add_action(GUI::CommonActions::make_copy_action([&](auto&) { edit_menu->add_action(GUI::CommonActions::make_copy_action([&](auto&) {
GUI::Clipboard::the().set_plain_text(widget->get_entry()); GUI::Clipboard::the().set_plain_text(widget->get_entry());
})); }));
edit_menu.add_action(GUI::CommonActions::make_paste_action([&](auto&) { edit_menu->add_action(GUI::CommonActions::make_paste_action([&](auto&) {
auto clipboard = GUI::Clipboard::the().fetch_data_and_type(); auto clipboard = GUI::Clipboard::the().fetch_data_and_type();
if (clipboard.mime_type == "text/plain") { if (clipboard.mime_type == "text/plain") {
if (!clipboard.data.is_empty()) { if (!clipboard.data.is_empty()) {
@ -58,20 +58,20 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
} }
})); }));
auto& constants_menu = window->add_menu("&Constants"_string); auto constants_menu = window->add_menu("&Constants"_string);
auto const power = Crypto::NumberTheory::Power("10"_bigint, "10"_bigint); auto const power = Crypto::NumberTheory::Power("10"_bigint, "10"_bigint);
constants_menu.add_action(GUI::Action::create("&Pi", TRY(Gfx::Bitmap::load_from_file("/res/icons/calculator/pi.png"sv)), [&](auto&) { constants_menu->add_action(GUI::Action::create("&Pi", TRY(Gfx::Bitmap::load_from_file("/res/icons/calculator/pi.png"sv)), [&](auto&) {
widget->set_typed_entry(Crypto::BigFraction { Crypto::SignedBigInteger(31415926535), power }); widget->set_typed_entry(Crypto::BigFraction { Crypto::SignedBigInteger(31415926535), power });
})); }));
constants_menu.add_action(GUI::Action::create("&Euler's Number", TRY(Gfx::Bitmap::load_from_file("/res/icons/calculator/eulers_number.png"sv)), [&](auto&) { constants_menu->add_action(GUI::Action::create("&Euler's Number", TRY(Gfx::Bitmap::load_from_file("/res/icons/calculator/eulers_number.png"sv)), [&](auto&) {
widget->set_typed_entry(Crypto::BigFraction { Crypto::SignedBigInteger(27182818284), power }); widget->set_typed_entry(Crypto::BigFraction { Crypto::SignedBigInteger(27182818284), power });
})); }));
constants_menu.add_action(GUI::Action::create("&Phi", TRY(Gfx::Bitmap::load_from_file("/res/icons/calculator/phi.png"sv)), [&](auto&) { constants_menu->add_action(GUI::Action::create("&Phi", TRY(Gfx::Bitmap::load_from_file("/res/icons/calculator/phi.png"sv)), [&](auto&) {
widget->set_typed_entry(Crypto::BigFraction { Crypto::SignedBigInteger(16180339887), power }); widget->set_typed_entry(Crypto::BigFraction { Crypto::SignedBigInteger(16180339887), power });
})); }));
auto& round_menu = window->add_menu("&Round"_string); auto round_menu = window->add_menu("&Round"_string);
GUI::ActionGroup preview_actions; GUI::ActionGroup preview_actions;
static constexpr auto rounding_modes = Array { 0, 2, 4 }; static constexpr auto rounding_modes = Array { 0, 2, 4 };
@ -85,7 +85,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
}); });
preview_actions.add_action(*round_action); preview_actions.add_action(*round_action);
round_menu.add_action(*round_action); round_menu->add_action(*round_action);
} }
constexpr auto format { "&Custom - {}..."sv }; constexpr auto format { "&Custom - {}..."sv };
@ -97,7 +97,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
widget->set_rounding_length(custom_rounding_length); widget->set_rounding_length(custom_rounding_length);
last_rounding_mode.clear(); last_rounding_mode.clear();
} else if (last_rounding_mode.has_value()) } else if (last_rounding_mode.has_value())
round_menu.action_at(last_rounding_mode.value()) round_menu->action_at(last_rounding_mode.value())
->activate(); ->activate();
}); });
@ -116,14 +116,14 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
preview_actions.add_action(*round_custom); preview_actions.add_action(*round_custom);
preview_actions.set_exclusive(true); preview_actions.set_exclusive(true);
round_menu.add_action(*round_custom); round_menu->add_action(*round_custom);
round_menu.add_action(*shrink_action); round_menu->add_action(*shrink_action);
round_menu.action_at(last_rounding_mode.value())->activate(); round_menu->action_at(last_rounding_mode.value())->activate();
auto& help_menu = window->add_menu("&Help"_string); auto help_menu = window->add_menu("&Help"_string);
help_menu.add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu.add_action(GUI::CommonActions::make_about_action("Calculator", app_icon, window)); help_menu->add_action(GUI::CommonActions::make_about_action("Calculator", app_icon, window));
window->show(); window->show();

View file

@ -83,27 +83,27 @@ ErrorOr<NonnullRefPtr<CalendarWidget>> CalendarWidget::create(GUI::Window* paren
auto save_as_action = widget->create_save_as_action(); auto save_as_action = widget->create_save_as_action();
auto save_action = widget->create_save_action(save_as_action); auto save_action = widget->create_save_action(save_as_action);
auto& file_menu = parent_window->add_menu("&File"_string); auto file_menu = parent_window->add_menu("&File"_string);
file_menu.add_action(open_settings_action); file_menu->add_action(open_settings_action);
file_menu.add_action(new_calendar_action); file_menu->add_action(new_calendar_action);
file_menu.add_action(open_calendar_action); file_menu->add_action(open_calendar_action);
file_menu.add_action(save_as_action); file_menu->add_action(save_as_action);
file_menu.add_action(save_action); file_menu->add_action(save_action);
file_menu.add_separator(); file_menu->add_separator();
file_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) { file_menu->add_action(GUI::CommonActions::make_quit_action([](auto&) {
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto& event_menu = parent_window->add_menu("&Event"_string); auto event_menu = parent_window->add_menu("&Event"_string);
event_menu.add_action(add_event_action); event_menu->add_action(add_event_action);
auto view_menu = TRY(parent_window->try_add_menu("&View"_string)); auto view_menu = parent_window->add_menu("&View"_string);
view_menu->add_action(*view_month_action); view_menu->add_action(*view_month_action);
view_menu->add_action(*view_year_action); view_menu->add_action(*view_year_action);
auto help_menu = TRY(parent_window->try_add_menu("&Help"_string)); auto help_menu = parent_window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(parent_window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(parent_window));
help_menu->add_action(GUI::CommonActions::make_about_action("Calendar", TRY(GUI::Icon::try_create_default_icon("app-calendar"sv)), parent_window)); help_menu->add_action(GUI::CommonActions::make_about_action("Calendar", TRY(GUI::Icon::try_create_default_icon("app-calendar"sv)), parent_window));

View file

@ -159,12 +159,12 @@ CharacterMapWidget::CharacterMapWidget()
ErrorOr<void> CharacterMapWidget::initialize_menubar(GUI::Window& window) ErrorOr<void> CharacterMapWidget::initialize_menubar(GUI::Window& window)
{ {
auto file_menu = TRY(window.try_add_menu("&File"_string)); auto file_menu = window.add_menu("&File"_string);
file_menu->add_action(GUI::CommonActions::make_quit_action([](GUI::Action&) { file_menu->add_action(GUI::CommonActions::make_quit_action([](GUI::Action&) {
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto help_menu = TRY(window.try_add_menu("&Help"_string)); auto help_menu = window.add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window));
help_menu->add_action(GUI::CommonActions::make_help_action([&](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([&](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/CharacterMap.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/CharacterMap.md"), "/bin/Help");

View file

@ -1009,7 +1009,7 @@ ErrorOr<int> run_in_windowed_mode(DeprecatedString const& initial_location, Depr
refresh_tree_view(); refresh_tree_view();
}); });
auto file_menu = TRY(window->try_add_menu("&File"_string)); auto file_menu = window->add_menu("&File"_string);
file_menu->add_action(mkdir_action); file_menu->add_action(mkdir_action);
file_menu->add_action(touch_action); file_menu->add_action(touch_action);
file_menu->add_action(focus_dependent_delete_action); file_menu->add_action(focus_dependent_delete_action);
@ -1021,7 +1021,7 @@ ErrorOr<int> run_in_windowed_mode(DeprecatedString const& initial_location, Depr
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto edit_menu = TRY(window->try_add_menu("&Edit"_string)); auto edit_menu = window->add_menu("&Edit"_string);
edit_menu->add_action(cut_action); edit_menu->add_action(cut_action);
edit_menu->add_action(copy_action); edit_menu->add_action(copy_action);
edit_menu->add_action(paste_action); edit_menu->add_action(paste_action);
@ -1044,7 +1044,7 @@ ErrorOr<int> run_in_windowed_mode(DeprecatedString const& initial_location, Depr
show_dotfiles_action->set_checked(show_dotfiles); show_dotfiles_action->set_checked(show_dotfiles);
show_dotfiles_in_view(show_dotfiles); show_dotfiles_in_view(show_dotfiles);
auto view_menu = TRY(window->try_add_menu("&View"_string)); auto view_menu = window->add_menu("&View"_string);
auto layout_menu = view_menu->add_submenu("&Layout"_string); auto layout_menu = view_menu->add_submenu("&Layout"_string);
layout_menu->add_action(*layout_toolbar_action); layout_menu->add_action(*layout_toolbar_action);
layout_menu->add_action(*layout_location_action); layout_menu->add_action(*layout_location_action);
@ -1065,7 +1065,7 @@ ErrorOr<int> run_in_windowed_mode(DeprecatedString const& initial_location, Depr
breadcrumbbar.show_location_text_box(); breadcrumbbar.show_location_text_box();
}); });
auto go_menu = TRY(window->try_add_menu("&Go"_string)); auto go_menu = window->add_menu("&Go"_string);
go_menu->add_action(go_back_action); go_menu->add_action(go_back_action);
go_menu->add_action(go_forward_action); go_menu->add_action(go_forward_action);
go_menu->add_action(open_parent_directory_action); go_menu->add_action(open_parent_directory_action);
@ -1075,7 +1075,7 @@ ErrorOr<int> run_in_windowed_mode(DeprecatedString const& initial_location, Depr
go_menu->add_separator(); go_menu->add_separator();
go_menu->add_action(directory_view->open_terminal_action()); go_menu->add_action(directory_view->open_terminal_action());
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_about_action("File Manager"sv, GUI::Icon::default_icon("app-file-manager"sv), window)); help_menu->add_action(GUI::CommonActions::make_about_action("File Manager"sv, GUI::Icon::default_icon("app-file-manager"sv), window));

View file

@ -733,7 +733,7 @@ ErrorOr<void> MainWidget::initialize(StringView path, RefPtr<Gfx::BitmapFont>&&
ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window) ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
{ {
auto file_menu = TRY(window.try_add_menu("&File"_string)); auto file_menu = window.add_menu("&File"_string);
file_menu->add_action(*m_new_action); file_menu->add_action(*m_new_action);
file_menu->add_action(*m_open_action); file_menu->add_action(*m_open_action);
file_menu->add_action(*m_save_action); file_menu->add_action(*m_save_action);
@ -755,7 +755,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto edit_menu = TRY(window.try_add_menu("&Edit"_string)); auto edit_menu = window.add_menu("&Edit"_string);
edit_menu->add_action(*m_undo_action); edit_menu->add_action(*m_undo_action);
edit_menu->add_action(*m_redo_action); edit_menu->add_action(*m_redo_action);
edit_menu->add_separator(); edit_menu->add_separator();
@ -770,12 +770,12 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
m_context_menu = edit_menu; m_context_menu = edit_menu;
auto go_menu = TRY(window.try_add_menu("&Go"_string)); auto go_menu = window.add_menu("&Go"_string);
go_menu->add_action(*m_previous_glyph_action); go_menu->add_action(*m_previous_glyph_action);
go_menu->add_action(*m_next_glyph_action); go_menu->add_action(*m_next_glyph_action);
go_menu->add_action(*m_go_to_glyph_action); go_menu->add_action(*m_go_to_glyph_action);
auto view_menu = TRY(window.try_add_menu("&View"_string)); auto view_menu = window.add_menu("&View"_string);
auto layout_menu = view_menu->add_submenu("&Layout"_string); auto layout_menu = view_menu->add_submenu("&Layout"_string);
layout_menu->add_action(*m_show_toolbar_action); layout_menu->add_action(*m_show_toolbar_action);
layout_menu->add_action(*m_show_statusbar_action); layout_menu->add_action(*m_show_statusbar_action);
@ -793,7 +793,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
scale_menu->add_action(*m_scale_ten_action); scale_menu->add_action(*m_scale_ten_action);
scale_menu->add_action(*m_scale_fifteen_action); scale_menu->add_action(*m_scale_fifteen_action);
auto help_menu = TRY(window.try_add_menu("&Help"_string)); auto help_menu = window.add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/FontEditor.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/FontEditor.md"), "/bin/Help");

View file

@ -204,17 +204,17 @@ ErrorOr<void> MainWidget::initialize_fallibles(GUI::Window& window)
(void)TRY(m_toolbar->try_add_action(*m_go_forward_action)); (void)TRY(m_toolbar->try_add_action(*m_go_forward_action));
(void)TRY(m_toolbar->try_add_action(*m_go_home_action)); (void)TRY(m_toolbar->try_add_action(*m_go_home_action));
auto file_menu = TRY(window.try_add_menu("&File"_string)); auto file_menu = window.add_menu("&File"_string);
file_menu->add_action(GUI::CommonActions::make_quit_action([](auto&) { file_menu->add_action(GUI::CommonActions::make_quit_action([](auto&) {
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto go_menu = TRY(window.try_add_menu("&Go"_string)); auto go_menu = window.add_menu("&Go"_string);
go_menu->add_action(*m_go_back_action); go_menu->add_action(*m_go_back_action);
go_menu->add_action(*m_go_forward_action); go_menu->add_action(*m_go_forward_action);
go_menu->add_action(*m_go_home_action); go_menu->add_action(*m_go_home_action);
auto help_menu = TRY(window.try_add_menu("&Help"_string)); auto help_menu = window.add_menu("&Help"_string);
String help_page_path = TRY(TRY(try_make_ref_counted<Manual::PageNode>(Manual::sections[1 - 1], "Applications/Help"_string))->path()); String help_page_path = TRY(TRY(try_make_ref_counted<Manual::PageNode>(Manual::sections[1 - 1], "Applications/Help"_string))->path());
help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window));
help_menu->add_action(GUI::Action::create("&Contents", { Key_F1 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/filetype-unknown.png"sv)), [this, help_page_path = move(help_page_path)](auto&) { help_menu->add_action(GUI::Action::create("&Contents", { Key_F1 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/filetype-unknown.png"sv)), [this, help_page_path = move(help_page_path)](auto&) {

View file

@ -412,7 +412,7 @@ void HexEditorWidget::update_inspector_values(size_t position)
ErrorOr<void> HexEditorWidget::initialize_menubar(GUI::Window& window) ErrorOr<void> HexEditorWidget::initialize_menubar(GUI::Window& window)
{ {
auto file_menu = TRY(window.try_add_menu("&File"_string)); auto file_menu = window.add_menu("&File"_string);
file_menu->add_action(*m_new_action); file_menu->add_action(*m_new_action);
file_menu->add_action(*m_open_action); file_menu->add_action(*m_open_action);
file_menu->add_action(*m_save_action); file_menu->add_action(*m_save_action);
@ -433,7 +433,7 @@ ErrorOr<void> HexEditorWidget::initialize_menubar(GUI::Window& window)
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto edit_menu = TRY(window.try_add_menu("&Edit"_string)); auto edit_menu = window.add_menu("&Edit"_string);
edit_menu->add_action(*m_undo_action); edit_menu->add_action(*m_undo_action);
edit_menu->add_action(*m_redo_action); edit_menu->add_action(*m_redo_action);
edit_menu->add_separator(); edit_menu->add_separator();
@ -480,7 +480,7 @@ ErrorOr<void> HexEditorWidget::initialize_menubar(GUI::Window& window)
edit_menu->add_separator(); edit_menu->add_separator();
edit_menu->add_action(*m_goto_offset_action); edit_menu->add_action(*m_goto_offset_action);
auto view_menu = TRY(window.try_add_menu("&View"_string)); auto view_menu = window.add_menu("&View"_string);
auto show_toolbar = Config::read_bool("HexEditor"sv, "Layout"sv, "ShowToolbar"sv, true); auto show_toolbar = Config::read_bool("HexEditor"sv, "Layout"sv, "ShowToolbar"sv, true);
m_layout_toolbar_action->set_checked(show_toolbar); m_layout_toolbar_action->set_checked(show_toolbar);
@ -541,7 +541,7 @@ ErrorOr<void> HexEditorWidget::initialize_menubar(GUI::Window& window)
little_endian_mode->set_checked(use_little_endian); little_endian_mode->set_checked(use_little_endian);
big_endian_mode->set_checked(!use_little_endian); big_endian_mode->set_checked(!use_little_endian);
auto help_menu = TRY(window.try_add_menu("&Help"_string)); auto help_menu = window.add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/HexEditor.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/HexEditor.md"), "/bin/Help");

View file

@ -306,7 +306,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
(void)TRY(main_toolbar->try_add_action(reset_zoom_action)); (void)TRY(main_toolbar->try_add_action(reset_zoom_action));
(void)TRY(main_toolbar->try_add_action(zoom_out_action)); (void)TRY(main_toolbar->try_add_action(zoom_out_action));
auto file_menu = TRY(window->try_add_menu("&File"_string)); auto file_menu = window->add_menu("&File"_string);
file_menu->add_action(open_action); file_menu->add_action(open_action);
file_menu->add_action(delete_action); file_menu->add_action(delete_action);
file_menu->add_separator(); file_menu->add_separator();
@ -323,7 +323,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
file_menu->add_action(quit_action); file_menu->add_action(quit_action);
auto image_menu = TRY(window->try_add_menu("&Image"_string)); auto image_menu = window->add_menu("&Image"_string);
image_menu->add_action(rotate_counterclockwise_action); image_menu->add_action(rotate_counterclockwise_action);
image_menu->add_action(rotate_clockwise_action); image_menu->add_action(rotate_clockwise_action);
image_menu->add_action(vertical_flip_action); image_menu->add_action(vertical_flip_action);
@ -331,13 +331,13 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
image_menu->add_separator(); image_menu->add_separator();
image_menu->add_action(desktop_wallpaper_action); image_menu->add_action(desktop_wallpaper_action);
auto navigate_menu = TRY(window->try_add_menu("&Navigate"_string)); auto navigate_menu = window->add_menu("&Navigate"_string);
navigate_menu->add_action(go_first_action); navigate_menu->add_action(go_first_action);
navigate_menu->add_action(go_back_action); navigate_menu->add_action(go_back_action);
navigate_menu->add_action(go_forward_action); navigate_menu->add_action(go_forward_action);
navigate_menu->add_action(go_last_action); navigate_menu->add_action(go_last_action);
auto view_menu = TRY(window->try_add_menu("&View"_string)); auto view_menu = window->add_menu("&View"_string);
view_menu->add_action(full_screen_action); view_menu->add_action(full_screen_action);
view_menu->add_separator(); view_menu->add_separator();
view_menu->add_action(zoom_in_action); view_menu->add_action(zoom_in_action);
@ -364,7 +364,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
view_menu->add_separator(); view_menu->add_separator();
view_menu->add_action(hide_show_toolbar_action); view_menu->add_action(hide_show_toolbar_action);
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/ImageViewer.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/ImageViewer.md"), "/bin/Help");

View file

@ -83,19 +83,19 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
auto_modifier_action->set_checkable(true); auto_modifier_action->set_checkable(true);
auto_modifier_action->set_checked(false); auto_modifier_action->set_checked(false);
auto& file_menu = window->add_menu("&File"_string); auto file_menu = window->add_menu("&File"_string);
file_menu.add_action(open_action); file_menu->add_action(open_action);
file_menu.add_action(save_action); file_menu->add_action(save_action);
file_menu.add_action(save_as_action); file_menu->add_action(save_as_action);
file_menu.add_separator(); file_menu->add_separator();
file_menu.add_action(quit_action); file_menu->add_action(quit_action);
auto& settings_menu = window->add_menu("&Settings"_string); auto settings_menu = window->add_menu("&Settings"_string);
settings_menu.add_action(auto_modifier_action); settings_menu->add_action(auto_modifier_action);
auto& help_menu = window->add_menu("&Help"_string); auto help_menu = window->add_menu("&Help"_string);
help_menu.add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu.add_action(GUI::CommonActions::make_about_action("Keyboard Mapper", app_icon, window)); help_menu->add_action(GUI::CommonActions::make_about_action("Keyboard Mapper", app_icon, window));
window->on_close_request = [&]() -> GUI::Window::CloseRequestDecision { window->on_close_request = [&]() -> GUI::Window::CloseRequestDecision {
if (keyboard_mapper_widget->request_close()) if (keyboard_mapper_widget->request_close())

View file

@ -61,7 +61,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
window->set_icon(app_icon.bitmap_for_size(16)); window->set_icon(app_icon.bitmap_for_size(16));
auto magnifier = TRY(window->set_main_widget<MagnifierWidget>()); auto magnifier = TRY(window->set_main_widget<MagnifierWidget>());
auto file_menu = TRY(window->try_add_menu("&File"_string)); auto file_menu = window->add_menu("&File"_string);
file_menu->add_action(GUI::CommonActions::make_save_as_action([&](auto&) { file_menu->add_action(GUI::CommonActions::make_save_as_action([&](auto&) {
AK::DeprecatedString filename = "file for saving"; AK::DeprecatedString filename = "file for saving";
auto do_save = [&]() -> ErrorOr<void> { auto do_save = [&]() -> ErrorOr<void> {
@ -142,7 +142,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
size_action_group->add_action(eight_x_action); size_action_group->add_action(eight_x_action);
size_action_group->set_exclusive(true); size_action_group->set_exclusive(true);
auto view_menu = TRY(window->try_add_menu("&View"_string)); auto view_menu = window->add_menu("&View"_string);
view_menu->add_action(two_x_action); view_menu->add_action(two_x_action);
view_menu->add_action(four_x_action); view_menu->add_action(four_x_action);
view_menu->add_action(eight_x_action); view_menu->add_action(eight_x_action);
@ -154,7 +154,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
view_menu->add_action(show_grid_action); view_menu->add_action(show_grid_action);
view_menu->add_action(choose_grid_color_action); view_menu->add_action(choose_grid_color_action);
auto timeline_menu = TRY(window->try_add_menu("&Timeline"_string)); auto timeline_menu = window->add_menu("&Timeline"_string);
auto previous_frame_action = GUI::Action::create( auto previous_frame_action = GUI::Action::create(
"&Previous frame", { Key_Left }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/go-back.png"sv)), [&](auto&) { "&Previous frame", { Key_Left }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/go-back.png"sv)), [&](auto&) {
pause_action->set_checked(true); pause_action->set_checked(true);
@ -170,9 +170,9 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
timeline_menu->add_action(previous_frame_action); timeline_menu->add_action(previous_frame_action);
timeline_menu->add_action(next_frame_action); timeline_menu->add_action(next_frame_action);
TRY(window->try_add_menu(GUI::CommonMenus::make_accessibility_menu(magnifier))); window->add_menu(GUI::CommonMenus::make_accessibility_menu(magnifier));
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/Magnifier.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/Magnifier.md"), "/bin/Help");

View file

@ -45,16 +45,16 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
window->set_title("Mail"); window->set_title("Mail");
window->resize(640, 400); window->resize(640, 400);
auto& file_menu = window->add_menu("&File"_string); auto file_menu = window->add_menu("&File"_string);
file_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { file_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) {
mail_widget->on_window_close(); mail_widget->on_window_close();
app->quit(); app->quit();
})); }));
auto& help_menu = window->add_menu("&Help"_string); auto help_menu = window->add_menu("&Help"_string);
help_menu.add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu.add_action(GUI::CommonActions::make_about_action("Mail", app_icon, window)); help_menu->add_action(GUI::CommonActions::make_about_action("Mail", app_icon, window));
window->on_close_request = [&] { window->on_close_request = [&] {
mail_widget->on_window_close(); mail_widget->on_window_close();

View file

@ -208,7 +208,7 @@ PDFViewerWidget::PDFViewerWidget()
ErrorOr<void> PDFViewerWidget::initialize_menubar(GUI::Window& window) ErrorOr<void> PDFViewerWidget::initialize_menubar(GUI::Window& window)
{ {
auto file_menu = TRY(window.try_add_menu("&File"_string)); auto file_menu = window.add_menu("&File"_string);
file_menu->add_action(GUI::CommonActions::make_open_action([&](auto&) { file_menu->add_action(GUI::CommonActions::make_open_action([&](auto&) {
FileSystemAccessClient::OpenFileOptions options { FileSystemAccessClient::OpenFileOptions options {
.allowed_file_types = Vector { .allowed_file_types = Vector {
@ -230,7 +230,7 @@ ErrorOr<void> PDFViewerWidget::initialize_menubar(GUI::Window& window)
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto view_menu = TRY(window.try_add_menu("&View"_string)); auto view_menu = window.add_menu("&View"_string);
view_menu->add_action(*m_toggle_sidebar_action); view_menu->add_action(*m_toggle_sidebar_action);
view_menu->add_separator(); view_menu->add_separator();
auto view_mode_menu = view_menu->add_submenu("View &Mode"_string); auto view_mode_menu = view_menu->add_submenu("View &Mode"_string);
@ -241,7 +241,7 @@ ErrorOr<void> PDFViewerWidget::initialize_menubar(GUI::Window& window)
view_menu->add_action(*m_zoom_out_action); view_menu->add_action(*m_zoom_out_action);
view_menu->add_action(*m_reset_zoom_action); view_menu->add_action(*m_reset_zoom_action);
auto help_menu = TRY(window.try_add_menu("&Help"_string)); auto help_menu = window.add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window));
help_menu->add_action(GUI::CommonActions::make_about_action("PDF Viewer", GUI::Icon::default_icon("app-pdf-viewer"sv), &window)); help_menu->add_action(GUI::CommonActions::make_about_action("PDF Viewer", GUI::Icon::default_icon("app-pdf-viewer"sv), &window));
return {}; return {};

View file

@ -80,12 +80,12 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
partition_table_view.set_model(partition_model); partition_table_view.set_model(partition_model);
partition_table_view.set_focus(true); partition_table_view.set_focus(true);
auto& file_menu = window->add_menu("&File"_string); auto file_menu = window->add_menu("&File"_string);
file_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) { file_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) {
app->quit(); app->quit();
})); }));
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_about_action("Partition Editor", app_icon, window)); help_menu->add_action(GUI::CommonActions::make_about_action("Partition Editor", app_icon, window));

View file

@ -58,7 +58,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
})); }));
main_widget_updater->start(); main_widget_updater->start();
auto file_menu = TRY(window->try_add_menu("&File"_string)); auto file_menu = window->add_menu("&File"_string);
file_menu->add_action(GUI::Action::create("Export...", { Mod_Ctrl, Key_E }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/file-export.png"sv)), [&](const GUI::Action&) { file_menu->add_action(GUI::Action::create("Export...", { Mod_Ctrl, Key_E }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/file-export.png"sv)), [&](const GUI::Action&) {
save_path = GUI::FilePicker::get_save_filepath(window, "Untitled", "wav"); save_path = GUI::FilePicker::get_save_filepath(window, "Untitled", "wav");
if (!save_path.has_value()) if (!save_path.has_value())
@ -83,10 +83,10 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
return; return;
})); }));
auto edit_menu = TRY(window->try_add_menu("&Edit"_string)); auto edit_menu = window->add_menu("&Edit"_string);
TRY(main_widget->add_track_actions(edit_menu)); TRY(main_widget->add_track_actions(edit_menu));
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_about_action("Piano", app_icon, window)); help_menu->add_action(GUI::CommonActions::make_about_action("Piano", app_icon, window));

View file

@ -149,7 +149,7 @@ static constexpr int s_zoom_level_fit_image = 10;
ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window) ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
{ {
auto file_menu = TRY(window.try_add_menu("&File"_string)); auto file_menu = window.add_menu("&File"_string);
m_new_image_action = GUI::Action::create( m_new_image_action = GUI::Action::create(
"&New Image...", { Mod_Ctrl, Key_N }, g_icon_bag.filetype_pixelpaint, [&](auto&) { "&New Image...", { Mod_Ctrl, Key_N }, g_icon_bag.filetype_pixelpaint, [&](auto&) {
@ -292,7 +292,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
m_edit_menu = TRY(window.try_add_menu("&Edit"_string)); m_edit_menu = window.add_menu("&Edit"_string);
m_cut_action = GUI::CommonActions::make_cut_action([&](auto&) { m_cut_action = GUI::CommonActions::make_cut_action([&](auto&) {
auto* editor = current_image_editor(); auto* editor = current_image_editor();
@ -488,7 +488,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
GUI::MessageBox::show_error(&window, MUST(String::formatted("Writing color palette failed: {}", result.release_error()))); GUI::MessageBox::show_error(&window, MUST(String::formatted("Writing color palette failed: {}", result.release_error())));
})); }));
m_view_menu = TRY(window.try_add_menu("&View"_string)); m_view_menu = window.add_menu("&View"_string);
m_zoom_in_action = GUI::CommonActions::make_zoom_in_action( m_zoom_in_action = GUI::CommonActions::make_zoom_in_action(
[&](auto&) { [&](auto&) {
@ -604,14 +604,14 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
scopes_menu->add_action(histogram_action); scopes_menu->add_action(histogram_action);
scopes_menu->add_action(vectorscope_action); scopes_menu->add_action(vectorscope_action);
m_tool_menu = TRY(window.try_add_menu("&Tool"_string)); m_tool_menu = window.add_menu("&Tool"_string);
m_toolbox->for_each_tool([&](auto& tool) { m_toolbox->for_each_tool([&](auto& tool) {
if (tool.action()) if (tool.action())
m_tool_menu->add_action(*tool.action()); m_tool_menu->add_action(*tool.action());
return IterationDecision::Continue; return IterationDecision::Continue;
}); });
m_image_menu = TRY(window.try_add_menu("&Image"_string)); m_image_menu = window.add_menu("&Image"_string);
m_image_menu->add_action(GUI::Action::create( m_image_menu->add_action(GUI::Action::create(
"Flip Image &Vertically", g_icon_bag.edit_flip_vertical, [&](auto&) { "Flip Image &Vertically", g_icon_bag.edit_flip_vertical, [&](auto&) {
auto* editor = current_image_editor(); auto* editor = current_image_editor();
@ -713,7 +713,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
editor->did_complete_action("Crop Image to Content"sv); editor->did_complete_action("Crop Image to Content"sv);
})); }));
m_layer_menu = TRY(window.try_add_menu("&Layer"_string)); m_layer_menu = window.add_menu("&Layer"_string);
m_layer_menu->on_visibility_change = [this](bool visible) { m_layer_menu->on_visibility_change = [this](bool visible) {
if (!visible) if (!visible)
@ -1140,7 +1140,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
editor->did_complete_action("Crop Layer to Content"sv); editor->did_complete_action("Crop Layer to Content"sv);
})); }));
m_filter_menu = TRY(window.try_add_menu("&Filter"_string)); m_filter_menu = window.add_menu("&Filter"_string);
m_filter_menu->add_action(GUI::Action::create("Filter &Gallery", g_icon_bag.filter, [&](auto&) { m_filter_menu->add_action(GUI::Action::create("Filter &Gallery", g_icon_bag.filter, [&](auto&) {
auto* editor = current_image_editor(); auto* editor = current_image_editor();
@ -1164,7 +1164,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
} }
})); }));
auto help_menu = TRY(window.try_add_menu("&Help"_string)); auto help_menu = window.add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window));
help_menu->add_action(GUI::CommonActions::make_about_action("Pixel Paint", GUI::Icon::default_icon("app-pixel-paint"sv), &window)); help_menu->add_action(GUI::CommonActions::make_about_action("Pixel Paint", GUI::Icon::default_icon("app-pixel-paint"sv), &window));

View file

@ -55,7 +55,7 @@ ErrorOr<void> PresenterWidget::initialize_menubar()
{ {
auto* window = this->window(); auto* window = this->window();
// Set up the menu bar. // Set up the menu bar.
auto file_menu = TRY(window->try_add_menu("&File"_string)); auto file_menu = window->add_menu("&File"_string);
auto open_action = GUI::CommonActions::make_open_action([this](auto&) { auto open_action = GUI::CommonActions::make_open_action([this](auto&) {
FileSystemAccessClient::OpenFileOptions options { FileSystemAccessClient::OpenFileOptions options {
.allowed_file_types = { { GUI::FileTypeFilter { "Presentation Files", { { "presenter" } } }, GUI::FileTypeFilter::all_files() } }, .allowed_file_types = { { GUI::FileTypeFilter { "Presentation Files", { { "presenter" } } }, GUI::FileTypeFilter::all_files() } },
@ -71,7 +71,7 @@ ErrorOr<void> PresenterWidget::initialize_menubar()
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto presentation_menu = TRY(window->try_add_menu("&Presentation"_string)); auto presentation_menu = window->add_menu("&Presentation"_string);
m_next_slide_action = GUI::Action::create("&Next", { KeyCode::Key_Right }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/go-forward.png"sv)), [this](auto&) { m_next_slide_action = GUI::Action::create("&Next", { KeyCode::Key_Right }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/go-forward.png"sv)), [this](auto&) {
if (m_current_presentation) { if (m_current_presentation) {
m_current_presentation->next_frame(); m_current_presentation->next_frame();
@ -98,7 +98,7 @@ ErrorOr<void> PresenterWidget::initialize_menubar()
presentation_menu->add_action(*m_previous_slide_action); presentation_menu->add_action(*m_previous_slide_action);
presentation_menu->add_action(*m_present_from_first_slide_action); presentation_menu->add_action(*m_present_from_first_slide_action);
auto view_menu = TRY(window->try_add_menu("&View"_string)); auto view_menu = window->add_menu("&View"_string);
m_full_screen_action = GUI::Action::create("Toggle &Full Screen", { KeyModifier::Mod_Shift, KeyCode::Key_F5 }, { KeyCode::Key_F11 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/fullscreen.png"sv)), [this](auto&) { m_full_screen_action = GUI::Action::create("Toggle &Full Screen", { KeyModifier::Mod_Shift, KeyCode::Key_F5 }, { KeyCode::Key_F11 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/fullscreen.png"sv)), [this](auto&) {
auto* window = this->window(); auto* window = this->window();
window->set_fullscreen(!window->is_fullscreen()); window->set_fullscreen(!window->is_fullscreen());
@ -117,7 +117,7 @@ ErrorOr<void> PresenterWidget::initialize_menubar()
update_slides_actions(); update_slides_actions();
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_about_action("Presenter", GUI::Icon::default_icon("app-presenter"sv))); help_menu->add_action(GUI::CommonActions::make_about_action("Presenter", GUI::Icon::default_icon("app-presenter"sv)));
return {}; return {};

View file

@ -92,12 +92,12 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
window->set_title("Settings"); window->set_title("Settings");
window->resize(420, 265); window->resize(420, 265);
auto file_menu = TRY(window->try_add_menu("&File"_string)); auto file_menu = window->add_menu("&File"_string);
file_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) { file_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) {
app->quit(); app->quit();
})); }));
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_about_action("Settings", app_icon, window)); help_menu->add_action(GUI::CommonActions::make_about_action("Settings", app_icon, window));

View file

@ -60,7 +60,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
player->set_loop_mode(Player::LoopMode::Playlist); player->set_loop_mode(Player::LoopMode::Playlist);
} }
auto file_menu = TRY(window->try_add_menu("&File"_string)); auto file_menu = window->add_menu("&File"_string);
file_menu->add_action(GUI::CommonActions::make_open_action([&](auto&) { file_menu->add_action(GUI::CommonActions::make_open_action([&](auto&) {
Optional<DeprecatedString> path = GUI::FilePicker::get_open_filepath(window); Optional<DeprecatedString> path = GUI::FilePicker::get_open_filepath(window);
if (path.has_value()) { if (path.has_value()) {
@ -73,7 +73,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
app->quit(); app->quit();
})); }));
auto playback_menu = TRY(window->try_add_menu("&Playback"_string)); auto playback_menu = window->add_menu("&Playback"_string);
GUI::ActionGroup loop_actions; GUI::ActionGroup loop_actions;
loop_actions.set_exclusive(true); loop_actions.set_exclusive(true);
auto loop_none = GUI::Action::create_checkable("&No Loop", { Mod_Ctrl, Key_N }, [&](auto&) { auto loop_none = GUI::Action::create_checkable("&No Loop", { Mod_Ctrl, Key_N }, [&](auto&) {
@ -120,7 +120,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
}); });
playback_menu->add_action(shuffle_mode); playback_menu->add_action(shuffle_mode);
auto visualization_menu = TRY(window->try_add_menu("&Visualization"_string)); auto visualization_menu = window->add_menu("&Visualization"_string);
GUI::ActionGroup visualization_actions; GUI::ActionGroup visualization_actions;
visualization_actions.set_exclusive(true); visualization_actions.set_exclusive(true);
@ -163,7 +163,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
selected_visualization_widget->set_checked(true); selected_visualization_widget->set_checked(true);
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_about_action("Sound Player", app_icon, window)); help_menu->add_action(GUI::CommonActions::make_about_action("Sound Player", app_icon, window));

View file

@ -67,7 +67,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
tree_map_widget.set_focus(true); tree_map_widget.set_focus(true);
auto file_menu = TRY(window->try_add_menu("&File"_string)); auto file_menu = window->add_menu("&File"_string);
file_menu->add_action(GUI::Action::create("&Analyze", { KeyCode::Key_F5 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) { file_menu->add_action(GUI::Action::create("&Analyze", { KeyCode::Key_F5 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) {
// FIXME: Just modify the tree in memory instead of traversing the entire file system // FIXME: Just modify the tree in memory instead of traversing the entire file system
if (auto result = tree_map_widget.analyze(statusbar); result.is_error()) { if (auto result = tree_map_widget.analyze(statusbar); result.is_error()) {
@ -79,7 +79,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
app->quit(); app->quit();
})); }));
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_about_action(APP_NAME, app_icon, window)); help_menu->add_action(GUI::CommonActions::make_about_action(APP_NAME, app_icon, window));

View file

@ -718,7 +718,7 @@ void SpreadsheetWidget::clipboard_action(bool is_cut)
ErrorOr<void> SpreadsheetWidget::initialize_menubar(GUI::Window& window) ErrorOr<void> SpreadsheetWidget::initialize_menubar(GUI::Window& window)
{ {
auto file_menu = TRY(window.try_add_menu("&File"_string)); auto file_menu = window.add_menu("&File"_string);
file_menu->add_action(*m_new_action); file_menu->add_action(*m_new_action);
file_menu->add_action(*m_open_action); file_menu->add_action(*m_open_action);
file_menu->add_action(*m_save_action); file_menu->add_action(*m_save_action);
@ -737,7 +737,7 @@ ErrorOr<void> SpreadsheetWidget::initialize_menubar(GUI::Window& window)
}); });
file_menu->add_action(*m_quit_action); file_menu->add_action(*m_quit_action);
auto edit_menu = TRY(window.try_add_menu("&Edit"_string)); auto edit_menu = window.add_menu("&Edit"_string);
edit_menu->add_action(*m_undo_action); edit_menu->add_action(*m_undo_action);
edit_menu->add_action(*m_redo_action); edit_menu->add_action(*m_redo_action);
edit_menu->add_separator(); edit_menu->add_separator();
@ -746,7 +746,7 @@ ErrorOr<void> SpreadsheetWidget::initialize_menubar(GUI::Window& window)
edit_menu->add_action(*m_paste_action); edit_menu->add_action(*m_paste_action);
edit_menu->add_action(*m_insert_emoji_action); edit_menu->add_action(*m_insert_emoji_action);
auto help_menu = TRY(window.try_add_menu("&Help"_string)); auto help_menu = window.add_menu("&Help"_string);
help_menu->add_action(*m_search_action); help_menu->add_action(*m_search_action);
help_menu->add_action(*m_functions_help_action); help_menu->add_action(*m_functions_help_action);
help_menu->add_action(*m_about_action); help_menu->add_action(*m_about_action);

View file

@ -427,7 +427,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
}, },
&process_table_view); &process_table_view);
auto file_menu = TRY(window->try_add_menu("&File"_string)); auto file_menu = window->add_menu("&File"_string);
file_menu->add_action(GUI::CommonActions::make_quit_action([](auto&) { file_menu->add_action(GUI::CommonActions::make_quit_action([](auto&) {
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
@ -446,7 +446,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
process_context_menu->popup(event.screen_position(), process_properties_action); process_context_menu->popup(event.screen_position(), process_properties_action);
}; };
auto frequency_menu = TRY(window->try_add_menu("F&requency"_string)); auto frequency_menu = window->add_menu("F&requency"_string);
GUI::ActionGroup frequency_action_group; GUI::ActionGroup frequency_action_group;
frequency_action_group.set_exclusive(true); frequency_action_group.set_exclusive(true);
@ -466,7 +466,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
TRY(make_frequency_action(3)); TRY(make_frequency_action(3));
TRY(make_frequency_action(5)); TRY(make_frequency_action(5));
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_about_action("System Monitor", app_icon, window)); help_menu->add_action(GUI::CommonActions::make_about_action("System Monitor", app_icon, window));

View file

@ -335,7 +335,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
terminal->context_menu().add_separator(); terminal->context_menu().add_separator();
terminal->context_menu().add_action(open_settings_action); terminal->context_menu().add_action(open_settings_action);
auto file_menu = TRY(window->try_add_menu("&File"_string)); auto file_menu = window->add_menu("&File"_string);
file_menu->add_action(GUI::Action::create("Open New &Terminal", { Mod_Ctrl | Mod_Shift, Key_N }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/app-terminal.png"sv)), [&](auto&) { file_menu->add_action(GUI::Action::create("Open New &Terminal", { Mod_Ctrl | Mod_Shift, Key_N }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/app-terminal.png"sv)), [&](auto&) {
GUI::Process::spawn_or_show_error(window, "/bin/Terminal"sv); GUI::Process::spawn_or_show_error(window, "/bin/Terminal"sv);
})); }));
@ -384,7 +384,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto edit_menu = TRY(window->try_add_menu("&Edit"_string)); auto edit_menu = window->add_menu("&Edit"_string);
edit_menu->add_action(terminal->copy_action()); edit_menu->add_action(terminal->copy_action());
edit_menu->add_action(terminal->paste_action()); edit_menu->add_action(terminal->paste_action());
edit_menu->add_separator(); edit_menu->add_separator();
@ -394,7 +394,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
find_window->move_to_front(); find_window->move_to_front();
})); }));
auto view_menu = TRY(window->try_add_menu("&View"_string)); auto view_menu = window->add_menu("&View"_string);
view_menu->add_action(GUI::CommonActions::make_fullscreen_action([&](auto&) { view_menu->add_action(GUI::CommonActions::make_fullscreen_action([&](auto&) {
window->set_fullscreen(!window->is_fullscreen()); window->set_fullscreen(!window->is_fullscreen());
})); }));
@ -418,7 +418,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
adjust_font_size(-1); adjust_font_size(-1);
})); }));
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/Terminal.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/Terminal.md"), "/bin/Help");

View file

@ -365,7 +365,7 @@ WebView::OutOfProcessWebView& MainWidget::ensure_web_view()
ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window) ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
{ {
auto file_menu = TRY(window.try_add_menu("&File"_string)); auto file_menu = window.add_menu("&File"_string);
file_menu->add_action(*m_new_action); file_menu->add_action(*m_new_action);
file_menu->add_action(*m_open_action); file_menu->add_action(*m_open_action);
file_menu->add_action(*m_save_action); file_menu->add_action(*m_save_action);
@ -396,7 +396,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto edit_menu = TRY(window.try_add_menu("&Edit"_string)); auto edit_menu = window.add_menu("&Edit"_string);
edit_menu->add_action(m_editor->undo_action()); edit_menu->add_action(m_editor->undo_action());
edit_menu->add_action(m_editor->redo_action()); edit_menu->add_action(m_editor->redo_action());
edit_menu->add_separator(); edit_menu->add_separator();
@ -460,7 +460,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
m_layout_ruler_action->set_checked(show_ruler); m_layout_ruler_action->set_checked(show_ruler);
m_editor->set_ruler_visible(show_ruler); m_editor->set_ruler_visible(show_ruler);
auto view_menu = TRY(window.try_add_menu("&View"_string)); auto view_menu = window.add_menu("&View"_string);
auto layout_menu = view_menu->add_submenu("&Layout"_string); auto layout_menu = view_menu->add_submenu("&Layout"_string);
layout_menu->add_action(*m_layout_toolbar_action); layout_menu->add_action(*m_layout_toolbar_action);
layout_menu->add_action(*m_layout_statusbar_action); layout_menu->add_action(*m_layout_statusbar_action);
@ -689,7 +689,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
syntax_actions.add_action(*m_sql_highlight); syntax_actions.add_action(*m_sql_highlight);
syntax_menu->add_action(*m_sql_highlight); syntax_menu->add_action(*m_sql_highlight);
auto help_menu = TRY(window.try_add_menu("&Help"_string)); auto help_menu = window.add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/TextEditor.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/TextEditor.md"), "/bin/Help");

View file

@ -245,7 +245,7 @@ MainWidget::MainWidget(NonnullRefPtr<AlignmentModel> alignment_model)
ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window) ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
{ {
auto file_menu = TRY(window.try_add_menu("&File"_string)); auto file_menu = window.add_menu("&File"_string);
file_menu->add_action(GUI::CommonActions::make_open_action([&](auto&) { file_menu->add_action(GUI::CommonActions::make_open_action([&](auto&) {
if (request_close() == GUI::Window::CloseRequestDecision::StayOpen) if (request_close() == GUI::Window::CloseRequestDecision::StayOpen)
return; return;
@ -305,9 +305,9 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
TRY(window.try_add_menu(GUI::CommonMenus::make_accessibility_menu(*m_preview_widget))); window.add_menu(GUI::CommonMenus::make_accessibility_menu(*m_preview_widget));
auto help_menu = TRY(window.try_add_menu("&Help"_string)); auto help_menu = window.add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window));
help_menu->add_action(GUI::CommonActions::make_about_action("Theme Editor", GUI::Icon::default_icon("app-theme-editor"sv), &window)); help_menu->add_action(GUI::CommonActions::make_about_action("Theme Editor", GUI::Icon::default_icon("app-theme-editor"sv), &window));

View file

@ -382,7 +382,7 @@ void VideoPlayerWidget::set_sizing_mode(VideoSizingMode sizing_mode)
ErrorOr<void> VideoPlayerWidget::initialize_menubar(GUI::Window& window) ErrorOr<void> VideoPlayerWidget::initialize_menubar(GUI::Window& window)
{ {
// File menu // File menu
auto file_menu = TRY(window.try_add_menu("&File"_string)); auto file_menu = window.add_menu("&File"_string);
file_menu->add_action(GUI::CommonActions::make_open_action([&](auto&) { file_menu->add_action(GUI::CommonActions::make_open_action([&](auto&) {
FileSystemAccessClient::OpenFileOptions options { FileSystemAccessClient::OpenFileOptions options {
.allowed_file_types = { { GUI::FileTypeFilter { "Video Files", { { "mkv", "webm" } } }, GUI::FileTypeFilter::all_files() } }, .allowed_file_types = { { GUI::FileTypeFilter { "Video Files", { { "mkv", "webm" } } }, GUI::FileTypeFilter::all_files() } },
@ -399,7 +399,7 @@ ErrorOr<void> VideoPlayerWidget::initialize_menubar(GUI::Window& window)
})); }));
// Playback menu // Playback menu
auto playback_menu = TRY(window.try_add_menu("&Playback"_string)); auto playback_menu = window.add_menu("&Playback"_string);
// FIXME: Maybe seek mode should be in an options dialog instead. The playback menu may get crowded. // FIXME: Maybe seek mode should be in an options dialog instead. The playback menu may get crowded.
// For now, leave it here for convenience. // For now, leave it here for convenience.
@ -408,7 +408,7 @@ ErrorOr<void> VideoPlayerWidget::initialize_menubar(GUI::Window& window)
set_seek_mode(Video::PlaybackManager::DEFAULT_SEEK_MODE); set_seek_mode(Video::PlaybackManager::DEFAULT_SEEK_MODE);
// View menu // View menu
auto view_menu = TRY(window.try_add_menu("&View"_string)); auto view_menu = window.add_menu("&View"_string);
view_menu->add_action(*m_toggle_fullscreen_action); view_menu->add_action(*m_toggle_fullscreen_action);
auto sizing_mode_menu = view_menu->add_submenu("&Sizing Mode"_string); auto sizing_mode_menu = view_menu->add_submenu("&Sizing Mode"_string);
@ -427,7 +427,7 @@ ErrorOr<void> VideoPlayerWidget::initialize_menubar(GUI::Window& window)
sizing_mode_menu->add_action(*m_size_fullsize_action); sizing_mode_menu->add_action(*m_size_fullsize_action);
// Help menu // Help menu
auto help_menu = TRY(window.try_add_menu("&Help"_string)); auto help_menu = window.add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_about_action("Video Player", TRY(GUI::Icon::try_create_default_icon("app-video-player"sv)), &window)); help_menu->add_action(GUI::CommonActions::make_about_action("Video Player", TRY(GUI::Icon::try_create_default_icon("app-video-player"sv)), &window));
return {}; return {};

View file

@ -84,12 +84,12 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
set_window_frame_enabled(!hide_window_frame); set_window_frame_enabled(!hide_window_frame);
show_window_frame_action->set_checked(window_frame_enabled); show_window_frame_action->set_checked(window_frame_enabled);
auto file_menu = TRY(window->try_add_menu("&File"_string)); auto file_menu = window->add_menu("&File"_string);
file_menu->add_action(move(show_window_frame_action)); file_menu->add_action(move(show_window_frame_action));
file_menu->add_separator(); file_menu->add_separator();
file_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); file_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); }));
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/Eyes.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/Eyes.md"), "/bin/Help");

View file

@ -197,7 +197,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
window->set_resizable(false); window->set_resizable(false);
window->resize(WIDTH, HEIGHT); window->resize(WIDTH, HEIGHT);
auto file_menu = TRY(window->try_add_menu("&File"_string)); auto file_menu = window->add_menu("&File"_string);
file_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); file_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); }));
auto app_icon = TRY(GUI::Icon::try_create_default_icon("app-libgfx-demo"sv)); auto app_icon = TRY(GUI::Icon::try_create_default_icon("app-libgfx-demo"sv));

View file

@ -116,7 +116,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
window->set_resizable(false); window->set_resizable(false);
window->resize(WIDTH * 2, HEIGHT * 3); window->resize(WIDTH * 2, HEIGHT * 3);
auto file_menu = TRY(window->try_add_menu("&File"_string)); auto file_menu = window->add_menu("&File"_string);
file_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); file_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); }));
auto app_icon = TRY(GUI::Icon::try_create_default_icon("app-libgfx-demo"sv)); auto app_icon = TRY(GUI::Icon::try_create_default_icon("app-libgfx-demo"sv));

View file

@ -413,7 +413,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
window->resize(window->minimum_size() * 2); window->resize(window->minimum_size() * 2);
auto mandelbrot = TRY(window->set_main_widget<Mandelbrot>()); auto mandelbrot = TRY(window->set_main_widget<Mandelbrot>());
auto file_menu = TRY(window->try_add_menu("&File"_string)); auto file_menu = window->add_menu("&File"_string);
auto export_submenu = file_menu->add_submenu("&Export"_string); auto export_submenu = file_menu->add_submenu("&Export"_string);
@ -469,12 +469,12 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
auto app_icon = GUI::Icon::default_icon("app-mandelbrot"sv); auto app_icon = GUI::Icon::default_icon("app-mandelbrot"sv);
window->set_icon(app_icon.bitmap_for_size(16)); window->set_icon(app_icon.bitmap_for_size(16));
auto view_menu = TRY(window->try_add_menu("&View"_string)); auto view_menu = window->add_menu("&View"_string);
view_menu->add_action(zoom_in_action); view_menu->add_action(zoom_in_action);
view_menu->add_action(reset_zoom_action); view_menu->add_action(reset_zoom_action);
view_menu->add_action(zoom_out_action); view_menu->add_action(zoom_out_action);
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_about_action("Mandelbrot Demo", app_icon, window)); help_menu->add_action(GUI::CommonActions::make_about_action("Mandelbrot Demo", app_icon, window));

View file

@ -76,12 +76,12 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
window->set_title("Screensaver"); window->set_title("Screensaver");
window->resize(360, 240); window->resize(360, 240);
auto file_menu = TRY(window->try_add_menu("&File"_string)); auto file_menu = window->add_menu("&File"_string);
file_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) { file_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) {
app->quit(); app->quit();
})); }));
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_about_action("Screensaver", app_icon, window)); help_menu->add_action(GUI::CommonActions::make_about_action("Screensaver", app_icon, window));

View file

@ -134,7 +134,7 @@ void MainWidget::load_file(FileSystemAccessClient::File file)
ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window) ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
{ {
auto file_menu = TRY(window.try_add_menu("&File"_string)); auto file_menu = window.add_menu("&File"_string);
m_save_as_action = GUI::CommonActions::make_save_as_action([&](auto&) { m_save_as_action = GUI::CommonActions::make_save_as_action([&](auto&) {
LexicalPath initial_path(m_file_path.is_empty() ? "Untitled.gml" : m_file_path); LexicalPath initial_path(m_file_path.is_empty() ? "Untitled.gml" : m_file_path);
@ -206,7 +206,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto edit_menu = TRY(window.try_add_menu("&Edit"_string)); auto edit_menu = window.add_menu("&Edit"_string);
edit_menu->add_action(m_editor->undo_action()); edit_menu->add_action(m_editor->undo_action());
edit_menu->add_action(m_editor->redo_action()); edit_menu->add_action(m_editor->redo_action());
edit_menu->add_separator(); edit_menu->add_separator();
@ -241,7 +241,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
vim_emulation_setting_action->set_checked(false); vim_emulation_setting_action->set_checked(false);
edit_menu->add_action(vim_emulation_setting_action); edit_menu->add_action(vim_emulation_setting_action);
auto view_menu = TRY(window.try_add_menu("&View"_string)); auto view_menu = window.add_menu("&View"_string);
m_views_group.set_exclusive(true); m_views_group.set_exclusive(true);
m_views_group.set_unchecking_allowed(false); m_views_group.set_unchecking_allowed(false);
@ -272,7 +272,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window)
m_view_frame_action->activate(); m_view_frame_action->activate();
}; };
auto help_menu = TRY(window.try_add_menu("&Help"_string)); auto help_menu = window.add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/GMLPlayground.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/GMLPlayground.md"), "/bin/Help");

View file

@ -1414,9 +1414,9 @@ void HackStudioWidget::update_recent_projects_submenu()
ErrorOr<void> HackStudioWidget::create_file_menu(GUI::Window& window) ErrorOr<void> HackStudioWidget::create_file_menu(GUI::Window& window)
{ {
auto& file_menu = window.add_menu("&File"_string); auto file_menu = window.add_menu("&File"_string);
auto new_submenu = file_menu.add_submenu("&New..."_string); auto new_submenu = file_menu->add_submenu("&New..."_string);
new_submenu->add_action(*m_new_project_action); new_submenu->add_action(*m_new_project_action);
new_submenu->add_separator(); new_submenu->add_separator();
for (auto& new_file_action : m_new_file_actions) { for (auto& new_file_action : m_new_file_actions) {
@ -1431,17 +1431,17 @@ ErrorOr<void> HackStudioWidget::create_file_menu(GUI::Window& window)
new_submenu->add_separator(); new_submenu->add_separator();
new_submenu->add_action(*m_new_directory_action); new_submenu->add_action(*m_new_directory_action);
file_menu.add_action(*m_open_action); file_menu->add_action(*m_open_action);
m_recent_projects_submenu = file_menu.add_submenu("Open &Recent"_string); m_recent_projects_submenu = file_menu->add_submenu("Open &Recent"_string);
{ {
auto icon = TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/open-recent.png"sv)); auto icon = TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/open-recent.png"sv));
m_recent_projects_submenu->set_icon(icon); m_recent_projects_submenu->set_icon(icon);
} }
update_recent_projects_submenu(); update_recent_projects_submenu();
file_menu.add_action(*m_save_action); file_menu->add_action(*m_save_action);
file_menu.add_action(*m_save_as_action); file_menu->add_action(*m_save_as_action);
file_menu.add_separator(); file_menu->add_separator();
file_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) { file_menu->add_action(GUI::CommonActions::make_quit_action([](auto&) {
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
return {}; return {};
@ -1449,14 +1449,14 @@ ErrorOr<void> HackStudioWidget::create_file_menu(GUI::Window& window)
ErrorOr<void> HackStudioWidget::create_edit_menu(GUI::Window& window) ErrorOr<void> HackStudioWidget::create_edit_menu(GUI::Window& window)
{ {
auto& edit_menu = window.add_menu("&Edit"_string); auto edit_menu = window.add_menu("&Edit"_string);
auto icon = TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/find.png"sv)); auto icon = TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/find.png"sv));
edit_menu.add_action(GUI::Action::create("&Find in Files...", { Mod_Ctrl | Mod_Shift, Key_F }, icon, [this](auto&) { edit_menu->add_action(GUI::Action::create("&Find in Files...", { Mod_Ctrl | Mod_Shift, Key_F }, icon, [this](auto&) {
reveal_action_tab(*m_find_in_files_widget); reveal_action_tab(*m_find_in_files_widget);
m_find_in_files_widget->focus_textbox_and_select_all(); m_find_in_files_widget->focus_textbox_and_select_all();
})); }));
edit_menu.add_separator(); edit_menu->add_separator();
auto vim_emulation_setting_action = GUI::Action::create_checkable("&Vim Emulation", { Mod_Ctrl | Mod_Shift | Mod_Alt, Key_V }, [this](auto& action) { auto vim_emulation_setting_action = GUI::Action::create_checkable("&Vim Emulation", { Mod_Ctrl | Mod_Shift | Mod_Alt, Key_V }, [this](auto& action) {
if (action.is_checked()) { if (action.is_checked()) {
@ -1468,22 +1468,22 @@ ErrorOr<void> HackStudioWidget::create_edit_menu(GUI::Window& window)
} }
}); });
vim_emulation_setting_action->set_checked(false); vim_emulation_setting_action->set_checked(false);
edit_menu.add_action(vim_emulation_setting_action); edit_menu->add_action(vim_emulation_setting_action);
edit_menu.add_separator(); edit_menu->add_separator();
edit_menu.add_action(*m_open_project_configuration_action); edit_menu->add_action(*m_open_project_configuration_action);
return {}; return {};
} }
void HackStudioWidget::create_build_menu(GUI::Window& window) void HackStudioWidget::create_build_menu(GUI::Window& window)
{ {
auto& build_menu = window.add_menu("&Build"_string); auto build_menu = window.add_menu("&Build"_string);
build_menu.add_action(*m_build_action); build_menu->add_action(*m_build_action);
build_menu.add_separator(); build_menu->add_separator();
build_menu.add_action(*m_run_action); build_menu->add_action(*m_run_action);
build_menu.add_action(*m_stop_action); build_menu->add_action(*m_stop_action);
build_menu.add_separator(); build_menu->add_separator();
build_menu.add_action(*m_debug_action); build_menu->add_action(*m_debug_action);
} }
ErrorOr<void> HackStudioWidget::create_view_menu(GUI::Window& window) ErrorOr<void> HackStudioWidget::create_view_menu(GUI::Window& window)
@ -1500,18 +1500,18 @@ ErrorOr<void> HackStudioWidget::create_view_menu(GUI::Window& window)
}); });
show_dotfiles_action->set_checked(Config::read_bool("HackStudio"sv, "Global"sv, "ShowDotfiles"sv, false)); show_dotfiles_action->set_checked(Config::read_bool("HackStudio"sv, "Global"sv, "ShowDotfiles"sv, false));
auto& view_menu = window.add_menu("&View"_string); auto view_menu = window.add_menu("&View"_string);
view_menu.add_action(hide_action_tabs_action); view_menu->add_action(hide_action_tabs_action);
view_menu.add_action(open_locator_action); view_menu->add_action(open_locator_action);
view_menu.add_action(show_dotfiles_action); view_menu->add_action(show_dotfiles_action);
m_toggle_semantic_highlighting_action = TRY(create_toggle_syntax_highlighting_mode_action()); m_toggle_semantic_highlighting_action = TRY(create_toggle_syntax_highlighting_mode_action());
view_menu.add_action(*m_toggle_semantic_highlighting_action); view_menu->add_action(*m_toggle_semantic_highlighting_action);
m_toggle_view_file_in_single_click_action = TRY(create_toggle_open_file_in_single_click_action()); m_toggle_view_file_in_single_click_action = TRY(create_toggle_open_file_in_single_click_action());
view_menu.add_action(*m_toggle_view_file_in_single_click_action); view_menu->add_action(*m_toggle_view_file_in_single_click_action);
view_menu.add_separator(); view_menu->add_separator();
m_wrapping_mode_actions.set_exclusive(true); m_wrapping_mode_actions.set_exclusive(true);
auto wrapping_mode_menu = view_menu.add_submenu("&Wrapping Mode"_string); auto wrapping_mode_menu = view_menu->add_submenu("&Wrapping Mode"_string);
m_no_wrapping_action = GUI::Action::create_checkable("&No Wrapping", [&](auto&) { m_no_wrapping_action = GUI::Action::create_checkable("&No Wrapping", [&](auto&) {
m_wrapping_mode = GUI::TextEditor::WrappingMode::NoWrap; m_wrapping_mode = GUI::TextEditor::WrappingMode::NoWrap;
for (auto& wrapper : m_all_editor_wrappers) for (auto& wrapper : m_all_editor_wrappers)
@ -1556,24 +1556,24 @@ ErrorOr<void> HackStudioWidget::create_view_menu(GUI::Window& window)
change_editor_font(picker->font()); change_editor_font(picker->font());
} }
}); });
view_menu.add_action(*m_editor_font_action); view_menu->add_action(*m_editor_font_action);
view_menu.add_separator(); view_menu->add_separator();
view_menu.add_action(*m_add_editor_tab_widget_action); view_menu->add_action(*m_add_editor_tab_widget_action);
view_menu.add_action(*m_add_editor_action); view_menu->add_action(*m_add_editor_action);
view_menu.add_action(*m_remove_current_editor_action); view_menu->add_action(*m_remove_current_editor_action);
view_menu.add_action(*m_add_terminal_action); view_menu->add_action(*m_add_terminal_action);
view_menu.add_action(*m_remove_current_terminal_action); view_menu->add_action(*m_remove_current_terminal_action);
view_menu.add_separator(); view_menu->add_separator();
TRY(create_location_history_actions()); TRY(create_location_history_actions());
view_menu.add_action(*m_locations_history_back_action); view_menu->add_action(*m_locations_history_back_action);
view_menu.add_action(*m_locations_history_forward_action); view_menu->add_action(*m_locations_history_forward_action);
view_menu.add_separator(); view_menu->add_separator();
view_menu.add_action(GUI::CommonActions::make_fullscreen_action([&](auto&) { view_menu->add_action(GUI::CommonActions::make_fullscreen_action([&](auto&) {
window.set_fullscreen(!window.is_fullscreen()); window.set_fullscreen(!window.is_fullscreen());
})); }));
return {}; return {};
@ -1581,9 +1581,9 @@ ErrorOr<void> HackStudioWidget::create_view_menu(GUI::Window& window)
void HackStudioWidget::create_help_menu(GUI::Window& window) void HackStudioWidget::create_help_menu(GUI::Window& window)
{ {
auto& help_menu = window.add_menu("&Help"_string); auto help_menu = window.add_menu("&Help"_string);
help_menu.add_action(GUI::CommonActions::make_command_palette_action(&window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window));
help_menu.add_action(GUI::CommonActions::make_about_action("Hack Studio", GUI::Icon::default_icon("app-hack-studio"sv), &window)); help_menu->add_action(GUI::CommonActions::make_about_action("Hack Studio", GUI::Icon::default_icon("app-hack-studio"sv), &window));
} }
ErrorOr<NonnullRefPtr<GUI::Action>> HackStudioWidget::create_stop_action() ErrorOr<NonnullRefPtr<GUI::Action>> HackStudioWidget::create_stop_action()

View file

@ -265,10 +265,10 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
filesystem_events_tree_view->set_selection_behavior(GUI::TreeView::SelectionBehavior::SelectRows); filesystem_events_tree_view->set_selection_behavior(GUI::TreeView::SelectionBehavior::SelectRows);
filesystem_events_tree_view->set_model(profile->file_event_model()); filesystem_events_tree_view->set_model(profile->file_event_model());
auto file_menu = TRY(window->try_add_menu("&File"_string)); auto file_menu = window->add_menu("&File"_string);
file_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); file_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); }));
auto view_menu = TRY(window->try_add_menu("&View"_string)); auto view_menu = window->add_menu("&View"_string);
auto invert_action = GUI::Action::create_checkable("&Invert Tree", { Mod_Ctrl, Key_I }, [&](auto& action) { auto invert_action = GUI::Action::create_checkable("&Invert Tree", { Mod_Ctrl, Key_I }, [&](auto& action) {
profile->set_inverted(action.is_checked()); profile->set_inverted(action.is_checked());
@ -294,7 +294,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
view_menu->add_action(disassembly_action); view_menu->add_action(disassembly_action);
view_menu->add_action(source_action); view_menu->add_action(source_action);
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/Profiler.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/Profiler.md"), "/bin/Help");

View file

@ -301,7 +301,7 @@ ErrorOr<void> MainWidget::setup()
ErrorOr<void> MainWidget::initialize_menu(GUI::Window* window) ErrorOr<void> MainWidget::initialize_menu(GUI::Window* window)
{ {
auto file_menu = TRY(window->try_add_menu("&File"_string)); auto file_menu = window->add_menu("&File"_string);
file_menu->add_action(*m_new_action); file_menu->add_action(*m_new_action);
file_menu->add_action(*m_open_action); file_menu->add_action(*m_open_action);
file_menu->add_action(*m_save_action); file_menu->add_action(*m_save_action);
@ -312,7 +312,7 @@ ErrorOr<void> MainWidget::initialize_menu(GUI::Window* window)
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto edit_menu = TRY(window->try_add_menu("&Edit"_string)); auto edit_menu = window->add_menu("&Edit"_string);
edit_menu->add_action(*m_copy_action); edit_menu->add_action(*m_copy_action);
edit_menu->add_action(*m_cut_action); edit_menu->add_action(*m_cut_action);
edit_menu->add_action(*m_paste_action); edit_menu->add_action(*m_paste_action);
@ -322,7 +322,7 @@ ErrorOr<void> MainWidget::initialize_menu(GUI::Window* window)
edit_menu->add_separator(); edit_menu->add_separator();
edit_menu->add_action(*m_run_script_action); edit_menu->add_action(*m_run_script_action);
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/SQLStudio.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man1/Applications/SQLStudio.md"), "/bin/Help");

View file

@ -165,7 +165,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
} }
}; };
auto game_menu = TRY(window->try_add_menu("&Game"_string)); auto game_menu = window->add_menu("&Game"_string);
game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) { game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) {
start_a_new_game(); start_a_new_game();
@ -197,7 +197,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man6/2048.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man6/2048.md"), "/bin/Help");

View file

@ -51,7 +51,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
auto game = TRY(window->set_main_widget<BrickGame>(app_name)); auto game = TRY(window->set_main_widget<BrickGame>(app_name));
auto game_menu = TRY(window->try_add_menu("&Game"_string)); auto game_menu = window->add_menu("&Game"_string);
game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) { game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) {
game->reset(); game->reset();
@ -73,7 +73,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_help_action([&man_file](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([&man_file](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme(man_file), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme(man_file), "/bin/Help");

View file

@ -89,7 +89,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
widget->set_show_available_moves(Config::read_bool("Games"sv, "Chess"sv, "ShowAvailableMoves"sv, true)); widget->set_show_available_moves(Config::read_bool("Games"sv, "Chess"sv, "ShowAvailableMoves"sv, true));
widget->set_highlight_checks(Config::read_bool("Games"sv, "Chess"sv, "HighlightChecks"sv, true)); widget->set_highlight_checks(Config::read_bool("Games"sv, "Chess"sv, "HighlightChecks"sv, true));
auto game_menu = TRY(window->try_add_menu("&Game"_string)); auto game_menu = window->add_menu("&Game"_string);
game_menu->add_action(GUI::Action::create("&Resign", { Mod_None, Key_F3 }, [&](auto&) { game_menu->add_action(GUI::Action::create("&Resign", { Mod_None, Key_F3 }, [&](auto&) {
widget->resign(); widget->resign();
@ -161,7 +161,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto engine_menu = TRY(window->try_add_menu("&Engine"_string)); auto engine_menu = window->add_menu("&Engine"_string);
GUI::ActionGroup engines_action_group; GUI::ActionGroup engines_action_group;
engines_action_group.set_exclusive(true); engines_action_group.set_exclusive(true);
@ -193,7 +193,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
engine_submenu->add_action(*action); engine_submenu->add_action(*action);
} }
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man6/Chess.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man6/Chess.md"), "/bin/Help");

View file

@ -50,7 +50,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
auto game = TRY(window->set_main_widget<ColorLines>(app_name)); auto game = TRY(window->set_main_widget<ColorLines>(app_name));
auto game_menu = TRY(window->try_add_menu("&Game"_string)); auto game_menu = window->add_menu("&Game"_string);
game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) { game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) {
game->reset(); game->reset();
@ -60,7 +60,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_help_action([&man_file](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([&man_file](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme(man_file), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme(man_file), "/bin/Help");

View file

@ -55,12 +55,12 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
return high_score; return high_score;
}; };
auto game_menu = TRY(window->try_add_menu("&Game"_string)); auto game_menu = window->add_menu("&Game"_string);
game_menu->add_action(GUI::CommonActions::make_quit_action([](auto&) { game_menu->add_action(GUI::CommonActions::make_quit_action([](auto&) {
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man6/FlappyBug.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man6/FlappyBug.md"), "/bin/Help");

View file

@ -164,7 +164,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
} }
}; };
auto game_menu = TRY(window->try_add_menu("&Game"_string)); auto game_menu = window->add_menu("&Game"_string);
game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) { game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) {
start_a_new_game(); start_a_new_game();
@ -180,7 +180,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man6/Flood.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man6/Flood.md"), "/bin/Help");

View file

@ -132,7 +132,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
rotate_pattern_action->set_enabled(false); rotate_pattern_action->set_enabled(false);
(void)TRY(main_toolbar.try_add_action(rotate_pattern_action)); (void)TRY(main_toolbar.try_add_action(rotate_pattern_action));
auto game_menu = TRY(window->try_add_menu("&Game"_string)); auto game_menu = window->add_menu("&Game"_string);
game_menu->add_action(clear_board_action); game_menu->add_action(clear_board_action);
game_menu->add_action(randomize_cells_action); game_menu->add_action(randomize_cells_action);
@ -144,7 +144,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man6/GameOfLife.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man6/GameOfLife.md"), "/bin/Help");

View file

@ -85,7 +85,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
GUI::MessageBox::show(settings_dialog, "Settings have been successfully saved and will take effect in the next game."sv, "Settings Changed Successfully"sv, GUI::MessageBox::Type::Information); GUI::MessageBox::show(settings_dialog, "Settings have been successfully saved and will take effect in the next game."sv, "Settings Changed Successfully"sv, GUI::MessageBox::Type::Information);
}; };
auto game_menu = TRY(window->try_add_menu("&Game"_string)); auto game_menu = window->add_menu("&Game"_string);
game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) { game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) {
game.setup(player_name); game.setup(player_name);
@ -98,7 +98,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
game_menu->add_separator(); game_menu->add_separator();
game_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); game_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); }));
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man6/Hearts.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man6/Hearts.md"), "/bin/Help");

View file

@ -66,7 +66,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
window->set_focused_widget(&game); window->set_focused_widget(&game);
auto game_menu = TRY(window->try_add_menu("&Game"_string)); auto game_menu = window->add_menu("&Game"_string);
game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, [&](auto&) { game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, [&](auto&) {
game.reset(); game.reset();
@ -77,7 +77,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto settings_menu = TRY(window->try_add_menu("&Settings"_string)); auto settings_menu = window->add_menu("&Settings"_string);
settings_menu->add_action(GUI::Action::create("Set &Word Length...", [&](auto&) { settings_menu->add_action(GUI::Action::create("Set &Word Length...", [&](auto&) {
auto word_length = Config::read_i32("MasterWord"sv, ""sv, "word_length"sv, 5); auto word_length = Config::read_i32("MasterWord"sv, ""sv, "word_length"sv, 5);
@ -104,7 +104,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
toggle_check_guesses->set_checked(game.is_checking_guesses()); toggle_check_guesses->set_checked(game.is_checking_guesses());
settings_menu->add_action(toggle_check_guesses); settings_menu->add_action(toggle_check_guesses);
auto theme_menu = TRY(window->try_add_menu("&Theme"_string)); auto theme_menu = window->add_menu("&Theme"_string);
auto system_theme_action = GUI::Action::create("&System", [&](auto&) { auto system_theme_action = GUI::Action::create("&System", [&](auto&) {
game.set_use_system_theme(true); game.set_use_system_theme(true);
Config::write_bool("MasterWord"sv, ""sv, "use_system_theme"sv, true); Config::write_bool("MasterWord"sv, ""sv, "use_system_theme"sv, true);
@ -127,7 +127,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
theme_actions.add_action(system_theme_action); theme_actions.add_action(system_theme_action);
theme_actions.add_action(wordle_theme_action); theme_actions.add_action(wordle_theme_action);
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man6/MasterWord.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man6/MasterWord.md"), "/bin/Help");

View file

@ -58,7 +58,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
auto field = TRY(Field::create(flag_label, time_label, face_button)); auto field = TRY(Field::create(flag_label, time_label, face_button));
TRY(widget->try_add_child(field)); TRY(widget->try_add_child(field));
auto game_menu = TRY(window->try_add_menu("&Game"_string)); auto game_menu = window->add_menu("&Game"_string);
game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) { game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) {
field->reset(); field->reset();
@ -78,7 +78,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto difficulty_menu = TRY(window->try_add_menu("&Difficulty"_string)); auto difficulty_menu = window->add_menu("&Difficulty"_string);
GUI::ActionGroup difficulty_actions; GUI::ActionGroup difficulty_actions;
difficulty_actions.set_exclusive(true); difficulty_actions.set_exclusive(true);
@ -118,7 +118,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
difficulty_menu->add_action(action); difficulty_menu->add_action(action);
difficulty_actions.add_action(action); difficulty_actions.add_action(action);
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man6/Minesweeper.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man6/Minesweeper.md"), "/bin/Help");

View file

@ -83,7 +83,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
return true; return true;
}; };
auto game_menu = TRY(window->try_add_menu("&Game"_string)); auto game_menu = window->add_menu("&Game"_string);
game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) { game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) {
game.reset(); game.reset();
@ -151,7 +151,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); }));
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) { help_menu->add_action(GUI::CommonActions::make_help_action([](auto&) {
Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man6/Snake.md"), "/bin/Help"); Desktop::Launcher::open(URL::create_with_file_scheme("/usr/share/man/man6/Snake.md"), "/bin/Help");

View file

@ -197,7 +197,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
toggle_auto_collect_action->set_checked(game.is_auto_collecting()); toggle_auto_collect_action->set_checked(game.is_auto_collecting());
toggle_auto_collect_action->set_status_tip("Auto-collect to foundation piles"_string); toggle_auto_collect_action->set_status_tip("Auto-collect to foundation piles"_string);
auto game_menu = TRY(window->try_add_menu("&Game"_string)); auto game_menu = window->add_menu("&Game"_string);
game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) { game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) {
if (!confirm_end_current_game()) if (!confirm_end_current_game())
@ -220,7 +220,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
game_menu->add_separator(); game_menu->add_separator();
game_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); game_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); }));
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_about_action("Solitaire", app_icon, window)); help_menu->add_action(GUI::CommonActions::make_about_action("Solitaire", app_icon, window));

View file

@ -235,7 +235,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
two_suit_action->set_checked(mode == Spider::Mode::TwoSuit); two_suit_action->set_checked(mode == Spider::Mode::TwoSuit);
suit_actions.add_action(two_suit_action); suit_actions.add_action(two_suit_action);
auto game_menu = TRY(window->try_add_menu("&Game"_string)); auto game_menu = window->add_menu("&Game"_string);
game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) { game_menu->add_action(GUI::Action::create("&New Game", { Mod_None, Key_F2 }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"sv)), [&](auto&) {
if (!confirm_end_current_game()) if (!confirm_end_current_game())
return; return;
@ -255,7 +255,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
game_menu->add_separator(); game_menu->add_separator();
game_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); })); game_menu->add_action(GUI::CommonActions::make_quit_action([&](auto&) { app->quit(); }));
auto view_menu = TRY(window->try_add_menu("&View"_string)); auto view_menu = window->add_menu("&View"_string);
GUI::ActionGroup statistic_display_actions; GUI::ActionGroup statistic_display_actions;
statistic_display_actions.set_exclusive(true); statistic_display_actions.set_exclusive(true);
@ -277,7 +277,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
view_menu->add_action(high_score_action); view_menu->add_action(high_score_action);
view_menu->add_action(best_time_actions); view_menu->add_action(best_time_actions);
auto help_menu = TRY(window->try_add_menu("&Help"_string)); auto help_menu = window->add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(window)); help_menu->add_action(GUI::CommonActions::make_command_palette_action(window));
help_menu->add_action(GUI::CommonActions::make_about_action("Spider", app_icon, window)); help_menu->add_action(GUI::CommonActions::make_about_action("Spider", app_icon, window));

View file

@ -1318,17 +1318,16 @@ Gfx::Bitmap* Window::back_bitmap()
return m_back_store ? &m_back_store->bitmap() : nullptr; return m_back_store ? &m_back_store->bitmap() : nullptr;
} }
ErrorOr<void> Window::try_add_menu(NonnullRefPtr<Menu> menu) void Window::add_menu(NonnullRefPtr<Menu> menu)
{ {
m_menubar->add_menu({}, move(menu)); m_menubar->add_menu({}, move(menu));
if (m_window_id) { if (m_window_id) {
menu->realize_menu_if_needed(); menu->realize_menu_if_needed();
ConnectionToWindowServer::the().async_add_menu(m_window_id, menu->menu_id()); ConnectionToWindowServer::the().async_add_menu(m_window_id, menu->menu_id());
} }
return {};
} }
ErrorOr<NonnullRefPtr<Menu>> Window::try_add_menu(String name) NonnullRefPtr<Menu> Window::add_menu(String name)
{ {
auto menu = m_menubar->add_menu({}, move(name)); auto menu = m_menubar->add_menu({}, move(name));
if (m_window_id) { if (m_window_id) {
@ -1338,12 +1337,6 @@ ErrorOr<NonnullRefPtr<Menu>> Window::try_add_menu(String name)
return menu; return menu;
} }
Menu& Window::add_menu(String name)
{
auto menu = MUST(try_add_menu(move(name)));
return *menu;
}
void Window::flash_menubar_menu_for(MenuItem const& menu_item) void Window::flash_menubar_menu_for(MenuItem const& menu_item)
{ {
if (!Desktop::the().system_effects().flash_menus()) if (!Desktop::the().system_effects().flash_menus())

View file

@ -219,9 +219,8 @@ public:
void did_disable_focused_widget(Badge<Widget>); void did_disable_focused_widget(Badge<Widget>);
Menu& add_menu(String name); [[nodiscard]] NonnullRefPtr<Menu> add_menu(String name);
ErrorOr<NonnullRefPtr<Menu>> try_add_menu(String name); void add_menu(NonnullRefPtr<Menu> menu);
ErrorOr<void> try_add_menu(NonnullRefPtr<Menu> menu);
void flash_menubar_menu_for(MenuItem const&); void flash_menubar_menu_for(MenuItem const&);
void flush_pending_paints_immediately(); void flush_pending_paints_immediately();