1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 01:37:36 +00:00

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

@ -151,26 +151,26 @@ BrowserWindow::BrowserWindow(CookieJar& cookie_jar, URL url)
void BrowserWindow::build_menus()
{
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_window_action());
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_window_action());
auto close_tab_action = GUI::CommonActions::make_close_tab_action([this](auto&) {
active_tab().on_tab_close_request(active_tab());
},
this);
file_menu.add_action(close_tab_action);
file_menu->add_action(close_tab_action);
file_menu.add_separator();
file_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) {
file_menu->add_separator();
file_menu->add_action(GUI::CommonActions::make_quit_action([](auto&) {
GUI::Application::the()->quit();
}));
auto& view_menu = add_menu("&View"_string);
view_menu.add_action(WindowActions::the().show_bookmarks_bar_action());
view_menu.add_action(WindowActions::the().vertical_tabs_action());
view_menu.add_separator();
m_zoom_menu = view_menu.add_submenu("&Zoom"_string);
auto view_menu = add_menu("&View"_string);
view_menu->add_action(WindowActions::the().show_bookmarks_bar_action());
view_menu->add_action(WindowActions::the().vertical_tabs_action());
view_menu->add_separator();
m_zoom_menu = view_menu->add_submenu("&Zoom"_string);
m_zoom_menu->add_action(GUI::CommonActions::make_zoom_in_action(
[this](auto&) {
auto& tab = active_tab();
@ -192,8 +192,8 @@ void BrowserWindow::build_menus()
update_displayed_zoom_level();
},
this));
view_menu.add_separator();
view_menu.add_action(GUI::CommonActions::make_fullscreen_action(
view_menu->add_separator();
view_menu->add_action(GUI::CommonActions::make_fullscreen_action(
[this](auto&) {
auto& tab = active_tab();
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->set_status_tip("Reload current page"_string);
auto& go_menu = add_menu("&Go"_string);
go_menu.add_action(*m_go_back_action);
go_menu.add_action(*m_go_forward_action);
go_menu.add_action(*m_go_home_action);
go_menu.add_separator();
go_menu.add_action(*m_reload_action);
auto go_menu = add_menu("&Go"_string);
go_menu->add_action(*m_go_back_action);
go_menu->add_action(*m_go_forward_action);
go_menu->add_action(*m_go_home_action);
go_menu->add_separator();
go_menu->add_action(*m_reload_action);
m_copy_selection_action = GUI::CommonActions::make_copy_action([this](auto&) {
auto& tab = active_tab();
@ -256,9 +256,9 @@ void BrowserWindow::build_menus()
this);
m_inspect_dom_node_action->set_status_tip("Open inspector for this element"_string);
auto& inspect_menu = add_menu("&Inspect"_string);
inspect_menu.add_action(*m_view_source_action);
inspect_menu.add_action(*m_inspect_dom_tree_action);
auto inspect_menu = add_menu("&Inspect"_string);
inspect_menu->add_action(*m_view_source_action);
inspect_menu->add_action(*m_inspect_dom_tree_action);
auto js_console_action = GUI::Action::create(
"Open &JS Console", { Mod_Ctrl, Key_I }, g_icon_bag.filetype_javascript, [this](auto&) {
@ -266,7 +266,7 @@ void BrowserWindow::build_menus()
},
this);
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(
"Open S&torage Inspector", g_icon_bag.cookie, [this](auto&) {
@ -274,7 +274,7 @@ void BrowserWindow::build_menus()
},
this);
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(
"Open &History Window", g_icon_bag.history, [this](auto&) {
@ -282,9 +282,9 @@ void BrowserWindow::build_menus()
},
this);
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(
"Set Homepage URL...", g_icon_bag.go_home, [this](auto&) {
@ -300,14 +300,14 @@ void BrowserWindow::build_menus()
},
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);
if (load_search_engines_result.is_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);
{
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);
}
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(),
[this](auto&) {
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);
debug_menu.add_action(GUI::Action::create(
auto debug_menu = add_menu("&Debug"_string);
debug_menu->add_action(GUI::Action::create(
"Dump &DOM Tree", g_icon_bag.dom_tree, [this](auto&) {
active_tab().view().debug_request("dump-dom-tree");
},
this));
debug_menu.add_action(GUI::Action::create(
debug_menu->add_action(GUI::Action::create(
"Dump &Layout Tree", g_icon_bag.layout, [this](auto&) {
active_tab().view().debug_request("dump-layout-tree");
},
this));
debug_menu.add_action(GUI::Action::create(
debug_menu->add_action(GUI::Action::create(
"Dump &Paint Tree", g_icon_bag.layout, [this](auto&) {
active_tab().view().debug_request("dump-paint-tree");
},
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&) {
active_tab().view().debug_request("dump-stacking-context-tree");
},
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&) {
active_tab().view().debug_request("dump-style-sheets");
},
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&) {
active_tab().view().debug_request("dump-all-resolved-styles");
},
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();
}));
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();
if (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");
}));
debug_menu.add_separator();
debug_menu->add_separator();
auto line_box_borders_action = GUI::Action::create_checkable(
"Line &Box Borders", [this](auto& action) {
active_tab().view().debug_request("set-line-box-borders", action.is_checked() ? "on" : "off");
},
this);
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_action(GUI::Action::create("Collect &Garbage", { Mod_Ctrl | Mod_Shift, Key_G }, g_icon_bag.trash_can, [this](auto&) {
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&) {
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");
}));
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&) {
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);
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(
"Enable Scripting", [this](auto& action) {
active_tab().view().debug_request("scripting", action.is_checked() ? "on" : "off");
},
this);
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(
"Block Pop-ups", [this](auto& action) {
@ -450,7 +450,7 @@ void BrowserWindow::build_menus()
},
this);
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(
"Enable Same-Origin &Policy", [this](auto& action) {
@ -458,11 +458,11 @@ void BrowserWindow::build_menus()
},
this);
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);
help_menu.add_action(GUI::CommonActions::make_command_palette_action(this));
help_menu.add_action(WindowActions::the().about_action());
auto help_menu = add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(this));
help_menu->add_action(WindowActions::the().about_action());
}
ErrorOr<void> BrowserWindow::load_search_engines(GUI::Menu& settings_menu)