mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 10:42:45 +00:00 
			
		
		
		
	LibGUI+Userland: Port Action status tips to String
This commit is contained in:
		
							parent
							
								
									4b169cf25f
								
							
						
					
					
						commit
						5234a30731
					
				
					 16 changed files with 86 additions and 85 deletions
				
			
		|  | @ -214,9 +214,9 @@ void BrowserWindow::build_menus() | ||||||
|     m_go_back_action = GUI::CommonActions::make_go_back_action([this](auto&) { active_tab().go_back(); }, this); |     m_go_back_action = GUI::CommonActions::make_go_back_action([this](auto&) { active_tab().go_back(); }, this); | ||||||
|     m_go_forward_action = GUI::CommonActions::make_go_forward_action([this](auto&) { active_tab().go_forward(); }, this); |     m_go_forward_action = GUI::CommonActions::make_go_forward_action([this](auto&) { active_tab().go_forward(); }, this); | ||||||
|     m_go_home_action = GUI::CommonActions::make_go_home_action([this](auto&) { active_tab().load(Browser::url_from_user_input(g_home_url)); }, this); |     m_go_home_action = GUI::CommonActions::make_go_home_action([this](auto&) { active_tab().load(Browser::url_from_user_input(g_home_url)); }, this); | ||||||
|     m_go_home_action->set_status_tip("Go to home page"); |     m_go_home_action->set_status_tip("Go to home page"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     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"); |     m_reload_action->set_status_tip("Reload current page"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     auto& go_menu = add_menu("&Go"_short_string); |     auto& go_menu = add_menu("&Go"_short_string); | ||||||
|     go_menu.add_action(*m_go_back_action); |     go_menu.add_action(*m_go_back_action); | ||||||
|  | @ -241,21 +241,21 @@ void BrowserWindow::build_menus() | ||||||
|             active_tab().view().get_source(); |             active_tab().view().get_source(); | ||||||
|         }, |         }, | ||||||
|         this); |         this); | ||||||
|     m_view_source_action->set_status_tip("View source code of the current page"); |     m_view_source_action->set_status_tip("View source code of the current page"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     m_inspect_dom_tree_action = GUI::Action::create( |     m_inspect_dom_tree_action = GUI::Action::create( | ||||||
|         "Inspect &DOM Tree", { Mod_None, Key_F12 }, g_icon_bag.dom_tree, [this](auto&) { |         "Inspect &DOM Tree", { Mod_None, Key_F12 }, g_icon_bag.dom_tree, [this](auto&) { | ||||||
|             active_tab().show_inspector_window(Tab::InspectorTarget::Document); |             active_tab().show_inspector_window(Tab::InspectorTarget::Document); | ||||||
|         }, |         }, | ||||||
|         this); |         this); | ||||||
|     m_inspect_dom_tree_action->set_status_tip("Open inspector window for this page"); |     m_inspect_dom_tree_action->set_status_tip("Open inspector window for this page"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     m_inspect_dom_node_action = GUI::Action::create( |     m_inspect_dom_node_action = GUI::Action::create( | ||||||
|         "&Inspect Element", g_icon_bag.inspect, [this](auto&) { |         "&Inspect Element", g_icon_bag.inspect, [this](auto&) { | ||||||
|             active_tab().show_inspector_window(Tab::InspectorTarget::HoveredElement); |             active_tab().show_inspector_window(Tab::InspectorTarget::HoveredElement); | ||||||
|         }, |         }, | ||||||
|         this); |         this); | ||||||
|     m_inspect_dom_node_action->set_status_tip("Open inspector for this element"); |     m_inspect_dom_node_action->set_status_tip("Open inspector for this element"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     auto& inspect_menu = add_menu("&Inspect"_string.release_value_but_fixme_should_propagate_errors()); |     auto& inspect_menu = add_menu("&Inspect"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     inspect_menu.add_action(*m_view_source_action); |     inspect_menu.add_action(*m_view_source_action); | ||||||
|  | @ -266,7 +266,7 @@ void BrowserWindow::build_menus() | ||||||
|             active_tab().show_console_window(); |             active_tab().show_console_window(); | ||||||
|         }, |         }, | ||||||
|         this); |         this); | ||||||
|     js_console_action->set_status_tip("Open JavaScript console for this page"); |     js_console_action->set_status_tip("Open JavaScript console for this page"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     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( | ||||||
|  | @ -274,7 +274,7 @@ void BrowserWindow::build_menus() | ||||||
|             active_tab().show_storage_inspector(); |             active_tab().show_storage_inspector(); | ||||||
|         }, |         }, | ||||||
|         this); |         this); | ||||||
|     storage_window_action->set_status_tip("Show Storage inspector for this page"); |     storage_window_action->set_status_tip("Show Storage inspector for this page"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     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( | ||||||
|  | @ -282,7 +282,7 @@ void BrowserWindow::build_menus() | ||||||
|             active_tab().show_history_inspector(); |             active_tab().show_history_inspector(); | ||||||
|         }, |         }, | ||||||
|         this); |         this); | ||||||
|     storage_window_action->set_status_tip("Show History inspector for this tab"); |     storage_window_action->set_status_tip("Show History inspector for this tab"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     inspect_menu.add_action(history_window_action); |     inspect_menu.add_action(history_window_action); | ||||||
| 
 | 
 | ||||||
|     auto& settings_menu = add_menu("&Settings"_string.release_value_but_fixme_should_propagate_errors()); |     auto& settings_menu = add_menu("&Settings"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|  | @ -403,26 +403,26 @@ void BrowserWindow::build_menus() | ||||||
|     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); | ||||||
|     }); |     }); | ||||||
|     m_disable_user_agent_spoofing->set_status_tip(Web::default_user_agent); |     m_disable_user_agent_spoofing->set_status_tip(String::from_utf8(Web::default_user_agent).release_value_but_fixme_should_propagate_errors()); | ||||||
|     spoof_user_agent_menu.add_action(*m_disable_user_agent_spoofing); |     spoof_user_agent_menu.add_action(*m_disable_user_agent_spoofing); | ||||||
|     spoof_user_agent_menu.set_icon(g_icon_bag.spoof); |     spoof_user_agent_menu.set_icon(g_icon_bag.spoof); | ||||||
|     m_user_agent_spoof_actions.add_action(*m_disable_user_agent_spoofing); |     m_user_agent_spoof_actions.add_action(*m_disable_user_agent_spoofing); | ||||||
|     m_disable_user_agent_spoofing->set_checked(true); |     m_disable_user_agent_spoofing->set_checked(true); | ||||||
| 
 | 
 | ||||||
|     auto add_user_agent = [this, &spoof_user_agent_menu](auto& name, auto& user_agent) { |     auto add_user_agent = [this, &spoof_user_agent_menu](auto& name, auto user_agent) { | ||||||
|         auto action = GUI::Action::create_checkable(name, [this, user_agent](auto&) { |         auto action = GUI::Action::create_checkable(name, [this, user_agent](auto&) { | ||||||
|             active_tab().view().debug_request("spoof-user-agent", user_agent); |             active_tab().view().debug_request("spoof-user-agent", user_agent); | ||||||
|         }); |         }); | ||||||
|         action->set_status_tip(user_agent); |         action->set_status_tip(String::from_utf8(user_agent).release_value_but_fixme_should_propagate_errors()); | ||||||
|         spoof_user_agent_menu.add_action(action); |         spoof_user_agent_menu.add_action(action); | ||||||
|         m_user_agent_spoof_actions.add_action(action); |         m_user_agent_spoof_actions.add_action(action); | ||||||
|     }; |     }; | ||||||
|     add_user_agent("Chrome Linux Desktop", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36"); |     add_user_agent("Chrome Linux Desktop", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36"sv); | ||||||
|     add_user_agent("Firefox Linux Desktop", "Mozilla/5.0 (X11; Linux x86_64; rv:87.0) Gecko/20100101 Firefox/87.0"); |     add_user_agent("Firefox Linux Desktop", "Mozilla/5.0 (X11; Linux x86_64; rv:87.0) Gecko/20100101 Firefox/87.0"sv); | ||||||
|     add_user_agent("Safari macOS Desktop", "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15"); |     add_user_agent("Safari macOS Desktop", "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15"sv); | ||||||
|     add_user_agent("Chrome Android Mobile", "Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.66 Mobile Safari/537.36"); |     add_user_agent("Chrome Android Mobile", "Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.66 Mobile Safari/537.36"sv); | ||||||
|     add_user_agent("Firefox Android Mobile", "Mozilla/5.0 (Android 11; Mobile; rv:68.0) Gecko/68.0 Firefox/86.0"); |     add_user_agent("Firefox Android Mobile", "Mozilla/5.0 (Android 11; Mobile; rv:68.0) Gecko/68.0 Firefox/86.0"sv); | ||||||
|     add_user_agent("Safari iOS Mobile", "Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1"); |     add_user_agent("Safari iOS Mobile", "Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1"sv); | ||||||
| 
 | 
 | ||||||
|     auto custom_user_agent = GUI::Action::create_checkable("Custom...", [this](auto& action) { |     auto custom_user_agent = GUI::Action::create_checkable("Custom...", [this](auto& action) { | ||||||
|         String user_agent; |         String user_agent; | ||||||
|  | @ -431,7 +431,7 @@ void BrowserWindow::build_menus() | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|         active_tab().view().debug_request("spoof-user-agent", user_agent.to_deprecated_string()); |         active_tab().view().debug_request("spoof-user-agent", user_agent.to_deprecated_string()); | ||||||
|         action.set_status_tip(user_agent.to_deprecated_string()); |         action.set_status_tip(user_agent); | ||||||
|     }); |     }); | ||||||
|     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); | ||||||
|  | @ -510,7 +510,7 @@ ErrorOr<void> BrowserWindow::load_search_engines(GUI::Menu& settings_menu) | ||||||
|                     action->set_checked(true); |                     action->set_checked(true); | ||||||
|                     search_engine_set = true; |                     search_engine_set = true; | ||||||
|                 } |                 } | ||||||
|                 action->set_status_tip(url_format); |                 action->set_status_tip(TRY(String::from_deprecated_string(url_format))); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | @ -531,14 +531,14 @@ ErrorOr<void> BrowserWindow::load_search_engines(GUI::Menu& settings_menu) | ||||||
| 
 | 
 | ||||||
|         g_search_engine = search_engine.to_deprecated_string(); |         g_search_engine = search_engine.to_deprecated_string(); | ||||||
|         Config::write_string("Browser"sv, "Preferences"sv, "SearchEngine"sv, g_search_engine); |         Config::write_string("Browser"sv, "Preferences"sv, "SearchEngine"sv, g_search_engine); | ||||||
|         action.set_status_tip(search_engine.to_deprecated_string()); |         action.set_status_tip(search_engine); | ||||||
|     }); |     }); | ||||||
|     search_engine_menu.add_action(custom_search_engine_action); |     search_engine_menu.add_action(custom_search_engine_action); | ||||||
|     m_search_engine_actions.add_action(custom_search_engine_action); |     m_search_engine_actions.add_action(custom_search_engine_action); | ||||||
| 
 | 
 | ||||||
|     if (!search_engine_set && !g_search_engine.is_empty()) { |     if (!search_engine_set && !g_search_engine.is_empty()) { | ||||||
|         custom_search_engine_action->set_checked(true); |         custom_search_engine_action->set_checked(true); | ||||||
|         custom_search_engine_action->set_status_tip(g_search_engine); |         custom_search_engine_action->set_status_tip(TRY(String::from_deprecated_string(g_search_engine))); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return {}; |     return {}; | ||||||
|  |  | ||||||
|  | @ -562,7 +562,7 @@ Tab::Tab(BrowserWindow& window) | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         this); |         this); | ||||||
|     take_visible_screenshot_action->set_status_tip("Save a screenshot of the visible portion of the current tab to the Downloads directory"sv); |     take_visible_screenshot_action->set_status_tip("Save a screenshot of the visible portion of the current tab to the Downloads directory"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     auto take_full_screenshot_action = GUI::Action::create( |     auto take_full_screenshot_action = GUI::Action::create( | ||||||
|         "Take &Full Screenshot"sv, g_icon_bag.filetype_image, [this](auto&) { |         "Take &Full Screenshot"sv, g_icon_bag.filetype_image, [this](auto&) { | ||||||
|  | @ -572,7 +572,7 @@ Tab::Tab(BrowserWindow& window) | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         this); |         this); | ||||||
|     take_full_screenshot_action->set_status_tip("Save a screenshot of the entirety of the current tab to the Downloads directory"sv); |     take_full_screenshot_action->set_status_tip("Save a screenshot of the entirety of the current tab to the Downloads directory"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     m_page_context_menu = GUI::Menu::construct(); |     m_page_context_menu = GUI::Menu::construct(); | ||||||
|     m_page_context_menu->add_action(window.go_back_action()); |     m_page_context_menu->add_action(window.go_back_action()); | ||||||
|  |  | ||||||
|  | @ -31,7 +31,7 @@ WindowActions::WindowActions(GUI::Window& window) | ||||||
|                 on_create_new_tab(); |                 on_create_new_tab(); | ||||||
|         }, |         }, | ||||||
|         &window); |         &window); | ||||||
|     m_create_new_tab_action->set_status_tip("Open a new tab"); |     m_create_new_tab_action->set_status_tip("Open a new tab"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     m_create_new_window_action = GUI::Action::create( |     m_create_new_window_action = GUI::Action::create( | ||||||
|         "&New Window", { Mod_Ctrl, Key_N }, g_icon_bag.new_window, [this](auto&) { |         "&New Window", { Mod_Ctrl, Key_N }, g_icon_bag.new_window, [this](auto&) { | ||||||
|  | @ -40,7 +40,7 @@ WindowActions::WindowActions(GUI::Window& window) | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         &window); |         &window); | ||||||
|     m_create_new_window_action->set_status_tip("Open a new browser window"); |     m_create_new_window_action->set_status_tip("Open a new browser window"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     m_next_tab_action = GUI::Action::create( |     m_next_tab_action = GUI::Action::create( | ||||||
|         "&Next Tab", { Mod_Ctrl, Key_PageDown }, [this](auto&) { |         "&Next Tab", { Mod_Ctrl, Key_PageDown }, [this](auto&) { | ||||||
|  | @ -48,7 +48,7 @@ WindowActions::WindowActions(GUI::Window& window) | ||||||
|                 on_next_tab(); |                 on_next_tab(); | ||||||
|         }, |         }, | ||||||
|         &window); |         &window); | ||||||
|     m_next_tab_action->set_status_tip("Switch to the next tab"); |     m_next_tab_action->set_status_tip("Switch to the next tab"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     m_previous_tab_action = GUI::Action::create( |     m_previous_tab_action = GUI::Action::create( | ||||||
|         "&Previous Tab", { Mod_Ctrl, Key_PageUp }, [this](auto&) { |         "&Previous Tab", { Mod_Ctrl, Key_PageUp }, [this](auto&) { | ||||||
|  | @ -56,7 +56,7 @@ WindowActions::WindowActions(GUI::Window& window) | ||||||
|                 on_previous_tab(); |                 on_previous_tab(); | ||||||
|         }, |         }, | ||||||
|         &window); |         &window); | ||||||
|     m_previous_tab_action->set_status_tip("Switch to the previous tab"); |     m_previous_tab_action->set_status_tip("Switch to the previous tab"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     for (auto i = 0; i <= 7; ++i) { |     for (auto i = 0; i <= 7; ++i) { | ||||||
|         m_tab_actions.append(GUI::Action::create( |         m_tab_actions.append(GUI::Action::create( | ||||||
|  | @ -65,7 +65,7 @@ WindowActions::WindowActions(GUI::Window& window) | ||||||
|                     on_tabs[i](); |                     on_tabs[i](); | ||||||
|             }, |             }, | ||||||
|             &window)); |             &window)); | ||||||
|         m_tab_actions.last()->set_status_tip(DeprecatedString::formatted("Switch to tab {}", i + 1)); |         m_tab_actions.last()->set_status_tip(String::formatted("Switch to tab {}", i + 1).release_value_but_fixme_should_propagate_errors()); | ||||||
|     } |     } | ||||||
|     m_tab_actions.append(GUI::Action::create( |     m_tab_actions.append(GUI::Action::create( | ||||||
|         "Last tab", { Mod_Ctrl, Key_9 }, [this](auto&) { |         "Last tab", { Mod_Ctrl, Key_9 }, [this](auto&) { | ||||||
|  | @ -73,7 +73,7 @@ WindowActions::WindowActions(GUI::Window& window) | ||||||
|                 on_tabs[8](); |                 on_tabs[8](); | ||||||
|         }, |         }, | ||||||
|         &window)); |         &window)); | ||||||
|     m_tab_actions.last()->set_status_tip("Switch to last tab"); |     m_tab_actions.last()->set_status_tip("Switch to last tab"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     m_about_action = GUI::CommonActions::make_about_action("Ladybird", GUI::Icon::default_icon("app-browser"sv), &window); |     m_about_action = GUI::CommonActions::make_about_action("Ladybird", GUI::Icon::default_icon("app-browser"sv), &window); | ||||||
| 
 | 
 | ||||||
|  | @ -84,7 +84,7 @@ WindowActions::WindowActions(GUI::Window& window) | ||||||
|                 on_show_bookmarks_bar(action); |                 on_show_bookmarks_bar(action); | ||||||
|         }, |         }, | ||||||
|         &window); |         &window); | ||||||
|     m_show_bookmarks_bar_action->set_status_tip("Show/hide the bookmarks bar"); |     m_show_bookmarks_bar_action->set_status_tip("Show/hide the bookmarks bar"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     m_vertical_tabs_action = GUI::Action::create_checkable( |     m_vertical_tabs_action = GUI::Action::create_checkable( | ||||||
|         "&Vertical Tabs", { Mod_Ctrl, Key_Comma }, |         "&Vertical Tabs", { Mod_Ctrl, Key_Comma }, | ||||||
|  | @ -93,7 +93,7 @@ WindowActions::WindowActions(GUI::Window& window) | ||||||
|                 on_vertical_tabs(action); |                 on_vertical_tabs(action); | ||||||
|         }, |         }, | ||||||
|         &window); |         &window); | ||||||
|     m_vertical_tabs_action->set_status_tip("Enable/Disable vertical tabs"); |     m_vertical_tabs_action->set_status_tip("Enable/Disable vertical tabs"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -56,17 +56,17 @@ CharacterMapWidget::CharacterMapWidget() | ||||||
|         } |         } | ||||||
|         GUI::Clipboard::the().set_plain_text(builder.to_deprecated_string()); |         GUI::Clipboard::the().set_plain_text(builder.to_deprecated_string()); | ||||||
|     }); |     }); | ||||||
|     m_copy_selection_action->set_status_tip("Copy the highlighted characters to the clipboard"); |     m_copy_selection_action->set_status_tip("Copy the highlighted characters to the clipboard"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     m_previous_glyph_action = GUI::Action::create("&Previous Glyph", { Mod_Alt, Key_Left }, Gfx::Bitmap::load_from_file("/res/icons/16x16/go-back.png"sv).release_value_but_fixme_should_propagate_errors(), [&](auto&) { |     m_previous_glyph_action = GUI::Action::create("&Previous Glyph", { Mod_Alt, Key_Left }, Gfx::Bitmap::load_from_file("/res/icons/16x16/go-back.png"sv).release_value_but_fixme_should_propagate_errors(), [&](auto&) { | ||||||
|         m_glyph_map->select_previous_existing_glyph(); |         m_glyph_map->select_previous_existing_glyph(); | ||||||
|     }); |     }); | ||||||
|     m_previous_glyph_action->set_status_tip("Seek the previous visible glyph"); |     m_previous_glyph_action->set_status_tip("Seek the previous visible glyph"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     m_next_glyph_action = GUI::Action::create("&Next Glyph", { Mod_Alt, Key_Right }, Gfx::Bitmap::load_from_file("/res/icons/16x16/go-forward.png"sv).release_value_but_fixme_should_propagate_errors(), [&](auto&) { |     m_next_glyph_action = GUI::Action::create("&Next Glyph", { Mod_Alt, Key_Right }, Gfx::Bitmap::load_from_file("/res/icons/16x16/go-forward.png"sv).release_value_but_fixme_should_propagate_errors(), [&](auto&) { | ||||||
|         m_glyph_map->select_next_existing_glyph(); |         m_glyph_map->select_next_existing_glyph(); | ||||||
|     }); |     }); | ||||||
|     m_next_glyph_action->set_status_tip("Seek the next visible glyph"); |     m_next_glyph_action->set_status_tip("Seek the next visible glyph"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     m_go_to_glyph_action = GUI::Action::create("&Go to Glyph...", { Mod_Ctrl, Key_G }, Gfx::Bitmap::load_from_file("/res/icons/16x16/go-to.png"sv).release_value_but_fixme_should_propagate_errors(), [&](auto&) { |     m_go_to_glyph_action = GUI::Action::create("&Go to Glyph...", { Mod_Ctrl, Key_G }, Gfx::Bitmap::load_from_file("/res/icons/16x16/go-to.png"sv).release_value_but_fixme_should_propagate_errors(), [&](auto&) { | ||||||
|         String input; |         String input; | ||||||
|  | @ -81,7 +81,7 @@ CharacterMapWidget::CharacterMapWidget() | ||||||
|             m_glyph_map->scroll_to_glyph(code_point); |             m_glyph_map->scroll_to_glyph(code_point); | ||||||
|         } |         } | ||||||
|     }); |     }); | ||||||
|     m_go_to_glyph_action->set_status_tip("Go to the specified code point"); |     m_go_to_glyph_action->set_status_tip("Go to the specified code point"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     m_find_glyphs_action = GUI::Action::create("&Find Glyphs...", { Mod_Ctrl, Key_F }, Gfx::Bitmap::load_from_file("/res/icons/16x16/find.png"sv).release_value_but_fixme_should_propagate_errors(), [&](auto&) { |     m_find_glyphs_action = GUI::Action::create("&Find Glyphs...", { Mod_Ctrl, Key_F }, Gfx::Bitmap::load_from_file("/res/icons/16x16/find.png"sv).release_value_but_fixme_should_propagate_errors(), [&](auto&) { | ||||||
|         if (m_find_window.is_null()) { |         if (m_find_window.is_null()) { | ||||||
|  |  | ||||||
|  | @ -128,7 +128,7 @@ ErrorOr<void> MainWidget::create_actions() | ||||||
|         if (auto result = initialize({}, move(maybe_font.value())); result.is_error()) |         if (auto result = initialize({}, move(maybe_font.value())); result.is_error()) | ||||||
|             show_error(result.release_error(), "Initializing new font failed"sv); |             show_error(result.release_error(), "Initializing new font failed"sv); | ||||||
|     }); |     }); | ||||||
|     m_new_action->set_status_tip("Create a new font"); |     m_new_action->set_status_tip(TRY("Create a new font"_string)); | ||||||
| 
 | 
 | ||||||
|     m_open_action = GUI::CommonActions::make_open_action([this](auto&) { |     m_open_action = GUI::CommonActions::make_open_action([this](auto&) { | ||||||
|         if (!request_close()) |         if (!request_close()) | ||||||
|  | @ -221,7 +221,7 @@ ErrorOr<void> MainWidget::create_actions() | ||||||
|         if (m_font_preview_window) |         if (m_font_preview_window) | ||||||
|             m_font_preview_window->show(); |             m_font_preview_window->show(); | ||||||
|     }); |     }); | ||||||
|     m_open_preview_action->set_status_tip("Preview the current font"); |     m_open_preview_action->set_status_tip(TRY("Preview the current font"_string)); | ||||||
| 
 | 
 | ||||||
|     bool show_metadata = Config::read_bool("FontEditor"sv, "Layout"sv, "ShowMetadata"sv, true); |     bool show_metadata = Config::read_bool("FontEditor"sv, "Layout"sv, "ShowMetadata"sv, true); | ||||||
|     m_font_metadata_groupbox->set_visible(show_metadata); |     m_font_metadata_groupbox->set_visible(show_metadata); | ||||||
|  | @ -230,7 +230,7 @@ ErrorOr<void> MainWidget::create_actions() | ||||||
|         Config::write_bool("FontEditor"sv, "Layout"sv, "ShowMetadata"sv, action.is_checked()); |         Config::write_bool("FontEditor"sv, "Layout"sv, "ShowMetadata"sv, action.is_checked()); | ||||||
|     }); |     }); | ||||||
|     m_show_metadata_action->set_checked(show_metadata); |     m_show_metadata_action->set_checked(show_metadata); | ||||||
|     m_show_metadata_action->set_status_tip("Show or hide metadata about the current font"); |     m_show_metadata_action->set_status_tip(TRY("Show or hide metadata about the current font"_string)); | ||||||
| 
 | 
 | ||||||
|     bool show_unicode_blocks = Config::read_bool("FontEditor"sv, "Layout"sv, "ShowUnicodeBlocks"sv, true); |     bool show_unicode_blocks = Config::read_bool("FontEditor"sv, "Layout"sv, "ShowUnicodeBlocks"sv, true); | ||||||
|     m_unicode_block_container->set_visible(show_unicode_blocks); |     m_unicode_block_container->set_visible(show_unicode_blocks); | ||||||
|  | @ -243,7 +243,7 @@ ErrorOr<void> MainWidget::create_actions() | ||||||
|         Config::write_bool("FontEditor"sv, "Layout"sv, "ShowUnicodeBlocks"sv, action.is_checked()); |         Config::write_bool("FontEditor"sv, "Layout"sv, "ShowUnicodeBlocks"sv, action.is_checked()); | ||||||
|     }); |     }); | ||||||
|     m_show_unicode_blocks_action->set_checked(show_unicode_blocks); |     m_show_unicode_blocks_action->set_checked(show_unicode_blocks); | ||||||
|     m_show_unicode_blocks_action->set_status_tip("Show or hide the Unicode block list"); |     m_show_unicode_blocks_action->set_status_tip(TRY("Show or hide the Unicode block list"_string)); | ||||||
| 
 | 
 | ||||||
|     bool show_toolbar = Config::read_bool("FontEditor"sv, "Layout"sv, "ShowToolbar"sv, true); |     bool show_toolbar = Config::read_bool("FontEditor"sv, "Layout"sv, "ShowToolbar"sv, true); | ||||||
|     m_toolbar_container->set_visible(show_toolbar); |     m_toolbar_container->set_visible(show_toolbar); | ||||||
|  | @ -252,7 +252,7 @@ ErrorOr<void> MainWidget::create_actions() | ||||||
|         Config::write_bool("FontEditor"sv, "Layout"sv, "ShowToolbar"sv, action.is_checked()); |         Config::write_bool("FontEditor"sv, "Layout"sv, "ShowToolbar"sv, action.is_checked()); | ||||||
|     }); |     }); | ||||||
|     m_show_toolbar_action->set_checked(show_toolbar); |     m_show_toolbar_action->set_checked(show_toolbar); | ||||||
|     m_show_toolbar_action->set_status_tip("Show or hide the toolbar"); |     m_show_toolbar_action->set_status_tip(TRY("Show or hide the toolbar"_string)); | ||||||
| 
 | 
 | ||||||
|     bool show_statusbar = Config::read_bool("FontEditor"sv, "Layout"sv, "ShowStatusbar"sv, true); |     bool show_statusbar = Config::read_bool("FontEditor"sv, "Layout"sv, "ShowStatusbar"sv, true); | ||||||
|     m_statusbar->set_visible(show_statusbar); |     m_statusbar->set_visible(show_statusbar); | ||||||
|  | @ -262,7 +262,7 @@ ErrorOr<void> MainWidget::create_actions() | ||||||
|         Config::write_bool("FontEditor"sv, "Layout"sv, "ShowStatusbar"sv, action.is_checked()); |         Config::write_bool("FontEditor"sv, "Layout"sv, "ShowStatusbar"sv, action.is_checked()); | ||||||
|     }); |     }); | ||||||
|     m_show_statusbar_action->set_checked(show_statusbar); |     m_show_statusbar_action->set_checked(show_statusbar); | ||||||
|     m_show_statusbar_action->set_status_tip("Show or hide the status bar"); |     m_show_statusbar_action->set_status_tip(TRY("Show or hide the status bar"_string)); | ||||||
| 
 | 
 | ||||||
|     bool highlight_modifications = Config::read_bool("FontEditor"sv, "GlyphMap"sv, "HighlightModifications"sv, true); |     bool highlight_modifications = Config::read_bool("FontEditor"sv, "GlyphMap"sv, "HighlightModifications"sv, true); | ||||||
|     m_glyph_map_widget->set_highlight_modifications(highlight_modifications); |     m_glyph_map_widget->set_highlight_modifications(highlight_modifications); | ||||||
|  | @ -271,7 +271,7 @@ ErrorOr<void> MainWidget::create_actions() | ||||||
|         Config::write_bool("FontEditor"sv, "GlyphMap"sv, "HighlightModifications"sv, action.is_checked()); |         Config::write_bool("FontEditor"sv, "GlyphMap"sv, "HighlightModifications"sv, action.is_checked()); | ||||||
|     }); |     }); | ||||||
|     m_highlight_modifications_action->set_checked(highlight_modifications); |     m_highlight_modifications_action->set_checked(highlight_modifications); | ||||||
|     m_highlight_modifications_action->set_status_tip("Show or hide highlights on modified glyphs"); |     m_highlight_modifications_action->set_status_tip(TRY("Show or hide highlights on modified glyphs"_string)); | ||||||
| 
 | 
 | ||||||
|     bool show_system_emoji = Config::read_bool("FontEditor"sv, "GlyphMap"sv, "ShowSystemEmoji"sv, true); |     bool show_system_emoji = Config::read_bool("FontEditor"sv, "GlyphMap"sv, "ShowSystemEmoji"sv, true); | ||||||
|     m_glyph_map_widget->set_show_system_emoji(show_system_emoji); |     m_glyph_map_widget->set_show_system_emoji(show_system_emoji); | ||||||
|  | @ -280,7 +280,7 @@ ErrorOr<void> MainWidget::create_actions() | ||||||
|         Config::write_bool("FontEditor"sv, "GlyphMap"sv, "ShowSystemEmoji"sv, action.is_checked()); |         Config::write_bool("FontEditor"sv, "GlyphMap"sv, "ShowSystemEmoji"sv, action.is_checked()); | ||||||
|     }); |     }); | ||||||
|     m_show_system_emoji_action->set_checked(show_system_emoji); |     m_show_system_emoji_action->set_checked(show_system_emoji); | ||||||
|     m_show_system_emoji_action->set_status_tip("Show or hide system emoji"); |     m_show_system_emoji_action->set_status_tip(TRY("Show or hide system emoji"_string)); | ||||||
| 
 | 
 | ||||||
|     m_go_to_glyph_action = GUI::Action::create("&Go to Glyph...", { Mod_Ctrl, Key_G }, g_resources.go_to_glyph, [this](auto&) { |     m_go_to_glyph_action = GUI::Action::create("&Go to Glyph...", { Mod_Ctrl, Key_G }, g_resources.go_to_glyph, [this](auto&) { | ||||||
|         String input; |         String input; | ||||||
|  | @ -296,17 +296,17 @@ ErrorOr<void> MainWidget::create_actions() | ||||||
|             m_glyph_map_widget->scroll_to_glyph(code_point); |             m_glyph_map_widget->scroll_to_glyph(code_point); | ||||||
|         } |         } | ||||||
|     }); |     }); | ||||||
|     m_go_to_glyph_action->set_status_tip("Go to the specified code point"); |     m_go_to_glyph_action->set_status_tip(TRY("Go to the specified code point"_string)); | ||||||
| 
 | 
 | ||||||
|     m_previous_glyph_action = GUI::Action::create("Pre&vious Glyph", { Mod_Alt, Key_Left }, g_resources.previous_glyph, [this](auto&) { |     m_previous_glyph_action = GUI::Action::create("Pre&vious Glyph", { Mod_Alt, Key_Left }, g_resources.previous_glyph, [this](auto&) { | ||||||
|         m_glyph_map_widget->select_previous_existing_glyph(); |         m_glyph_map_widget->select_previous_existing_glyph(); | ||||||
|     }); |     }); | ||||||
|     m_previous_glyph_action->set_status_tip("Seek the previous visible glyph"); |     m_previous_glyph_action->set_status_tip(TRY("Seek the previous visible glyph"_string)); | ||||||
| 
 | 
 | ||||||
|     m_next_glyph_action = GUI::Action::create("&Next Glyph", { Mod_Alt, Key_Right }, g_resources.next_glyph, [this](auto&) { |     m_next_glyph_action = GUI::Action::create("&Next Glyph", { Mod_Alt, Key_Right }, g_resources.next_glyph, [this](auto&) { | ||||||
|         m_glyph_map_widget->select_next_existing_glyph(); |         m_glyph_map_widget->select_next_existing_glyph(); | ||||||
|     }); |     }); | ||||||
|     m_next_glyph_action->set_status_tip("Seek the next visible glyph"); |     m_next_glyph_action->set_status_tip(TRY("Seek the next visible glyph"_string)); | ||||||
| 
 | 
 | ||||||
|     i32 scale = Config::read_i32("FontEditor"sv, "GlyphEditor"sv, "Scale"sv, 10); |     i32 scale = Config::read_i32("FontEditor"sv, "GlyphEditor"sv, "Scale"sv, 10); | ||||||
|     m_glyph_editor_widget->set_scale(scale); |     m_glyph_editor_widget->set_scale(scale); | ||||||
|  | @ -314,17 +314,17 @@ ErrorOr<void> MainWidget::create_actions() | ||||||
|         set_scale_and_save(5); |         set_scale_and_save(5); | ||||||
|     }); |     }); | ||||||
|     m_scale_five_action->set_checked(scale == 5); |     m_scale_five_action->set_checked(scale == 5); | ||||||
|     m_scale_five_action->set_status_tip("Scale the editor in proportion to the current font"); |     m_scale_five_action->set_status_tip(TRY("Scale the editor in proportion to the current font"_string)); | ||||||
|     m_scale_ten_action = GUI::Action::create_checkable("1000%", { Mod_Ctrl, Key_2 }, [this](auto&) { |     m_scale_ten_action = GUI::Action::create_checkable("1000%", { Mod_Ctrl, Key_2 }, [this](auto&) { | ||||||
|         set_scale_and_save(10); |         set_scale_and_save(10); | ||||||
|     }); |     }); | ||||||
|     m_scale_ten_action->set_checked(scale == 10); |     m_scale_ten_action->set_checked(scale == 10); | ||||||
|     m_scale_ten_action->set_status_tip("Scale the editor in proportion to the current font"); |     m_scale_ten_action->set_status_tip(TRY("Scale the editor in proportion to the current font"_string)); | ||||||
|     m_scale_fifteen_action = GUI::Action::create_checkable("1500%", { Mod_Ctrl, Key_3 }, [this](auto&) { |     m_scale_fifteen_action = GUI::Action::create_checkable("1500%", { Mod_Ctrl, Key_3 }, [this](auto&) { | ||||||
|         set_scale_and_save(15); |         set_scale_and_save(15); | ||||||
|     }); |     }); | ||||||
|     m_scale_fifteen_action->set_checked(scale == 15); |     m_scale_fifteen_action->set_checked(scale == 15); | ||||||
|     m_scale_fifteen_action->set_status_tip("Scale the editor in proportion to the current font"); |     m_scale_fifteen_action->set_status_tip(TRY("Scale the editor in proportion to the current font"_string)); | ||||||
| 
 | 
 | ||||||
|     m_glyph_editor_scale_actions.add_action(*m_scale_five_action); |     m_glyph_editor_scale_actions.add_action(*m_scale_five_action); | ||||||
|     m_glyph_editor_scale_actions.add_action(*m_scale_ten_action); |     m_glyph_editor_scale_actions.add_action(*m_scale_ten_action); | ||||||
|  | @ -370,7 +370,7 @@ ErrorOr<void> MainWidget::create_actions() | ||||||
|         } |         } | ||||||
|         GUI::Clipboard::the().set_plain_text(builder.to_deprecated_string()); |         GUI::Clipboard::the().set_plain_text(builder.to_deprecated_string()); | ||||||
|     }); |     }); | ||||||
|     m_copy_text_action->set_status_tip("Copy to clipboard as text"); |     m_copy_text_action->set_status_tip(TRY("Copy to clipboard as text"_string)); | ||||||
| 
 | 
 | ||||||
|     return {}; |     return {}; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -79,7 +79,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments) | ||||||
|     auto auto_modifier_action = GUI::Action::create("Auto-Modifier", [&](auto& act) { |     auto auto_modifier_action = GUI::Action::create("Auto-Modifier", [&](auto& act) { | ||||||
|         keyboard_mapper_widget->set_automatic_modifier(act.is_checked()); |         keyboard_mapper_widget->set_automatic_modifier(act.is_checked()); | ||||||
|     }); |     }); | ||||||
|     auto_modifier_action->set_status_tip("Toggle automatic modifier"); |     auto_modifier_action->set_status_tip(TRY("Toggle automatic modifier"_string)); | ||||||
|     auto_modifier_action->set_checkable(true); |     auto_modifier_action->set_checkable(true); | ||||||
|     auto_modifier_action->set_checked(false); |     auto_modifier_action->set_checked(false); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -323,12 +323,12 @@ void PDFViewerWidget::initialize_toolbar(GUI::Toolbar& toolbar) | ||||||
|     m_page_view_mode_single = GUI::Action::create_checkable("Single", [&](auto&) { |     m_page_view_mode_single = GUI::Action::create_checkable("Single", [&](auto&) { | ||||||
|         m_viewer->set_page_view_mode(PDFViewer::PageViewMode::Single); |         m_viewer->set_page_view_mode(PDFViewer::PageViewMode::Single); | ||||||
|     }); |     }); | ||||||
|     m_page_view_mode_single->set_status_tip("Show single page at a time"); |     m_page_view_mode_single->set_status_tip("Show single page at a time"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     m_page_view_mode_multiple = GUI::Action::create_checkable("Multiple", [&](auto&) { |     m_page_view_mode_multiple = GUI::Action::create_checkable("Multiple", [&](auto&) { | ||||||
|         m_viewer->set_page_view_mode(PDFViewer::PageViewMode::Multiple); |         m_viewer->set_page_view_mode(PDFViewer::PageViewMode::Multiple); | ||||||
|     }); |     }); | ||||||
|     m_page_view_mode_multiple->set_status_tip("Show multiple pages at a time"); |     m_page_view_mode_multiple->set_status_tip("Show multiple pages at a time"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     if (m_viewer->page_view_mode() == PDFViewer::PageViewMode::Single) { |     if (m_viewer->page_view_mode() == PDFViewer::PageViewMode::Single) { | ||||||
|         m_page_view_mode_single->set_checked(true); |         m_page_view_mode_single->set_checked(true); | ||||||
|  |  | ||||||
|  | @ -455,7 +455,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments) | ||||||
|             Config::write_i32("SystemMonitor"sv, "Monitor"sv, "Frequency"sv, seconds); |             Config::write_i32("SystemMonitor"sv, "Monitor"sv, "Frequency"sv, seconds); | ||||||
|             refresh_timer->restart(seconds * 1000); |             refresh_timer->restart(seconds * 1000); | ||||||
|         }); |         }); | ||||||
|         action->set_status_tip(DeprecatedString::formatted("Refresh every {} seconds", seconds)); |         action->set_status_tip(TRY(String::formatted("Refresh every {} seconds", seconds))); | ||||||
|         action->set_checked(frequency == seconds); |         action->set_checked(frequency == seconds); | ||||||
|         frequency_action_group.add_action(*action); |         frequency_action_group.add_action(*action); | ||||||
|         TRY(frequency_menu->try_add_action(*action)); |         TRY(frequency_menu->try_add_action(*action)); | ||||||
|  |  | ||||||
|  | @ -317,7 +317,7 @@ MainWidget::MainWidget() | ||||||
|         Desktop::Launcher::open(URL::create_with_file_scheme(lexical_path.dirname(), lexical_path.basename())); |         Desktop::Launcher::open(URL::create_with_file_scheme(lexical_path.dirname(), lexical_path.basename())); | ||||||
|     }); |     }); | ||||||
|     m_open_folder_action->set_enabled(!m_path.is_empty()); |     m_open_folder_action->set_enabled(!m_path.is_empty()); | ||||||
|     m_open_folder_action->set_status_tip("Open the current file location in File Manager"); |     m_open_folder_action->set_status_tip("Open the current file location in File Manager"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
| 
 | 
 | ||||||
|     m_toolbar->add_action(*m_new_action); |     m_toolbar->add_action(*m_new_action); | ||||||
|     m_toolbar->add_action(*m_open_action); |     m_toolbar->add_action(*m_open_action); | ||||||
|  | @ -557,8 +557,8 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window) | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     m_visualize_trailing_whitespace_action->set_checked(true); |     m_visualize_trailing_whitespace_action->set_checked(true); | ||||||
|     m_visualize_trailing_whitespace_action->set_status_tip("Visualize trailing whitespace"); |     m_visualize_trailing_whitespace_action->set_status_tip(TRY("Visualize trailing whitespace"_string)); | ||||||
|     m_visualize_leading_whitespace_action->set_status_tip("Visualize leading whitespace"); |     m_visualize_leading_whitespace_action->set_status_tip(TRY("Visualize leading whitespace"_string)); | ||||||
| 
 | 
 | ||||||
|     TRY(view_menu->try_add_action(*m_visualize_trailing_whitespace_action)); |     TRY(view_menu->try_add_action(*m_visualize_trailing_whitespace_action)); | ||||||
|     TRY(view_menu->try_add_action(*m_visualize_leading_whitespace_action)); |     TRY(view_menu->try_add_action(*m_visualize_leading_whitespace_action)); | ||||||
|  | @ -568,7 +568,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window) | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     m_cursor_line_highlighting_action->set_checked(true); |     m_cursor_line_highlighting_action->set_checked(true); | ||||||
|     m_cursor_line_highlighting_action->set_status_tip("Highlight the current line"); |     m_cursor_line_highlighting_action->set_status_tip(TRY("Highlight the current line"_string)); | ||||||
| 
 | 
 | ||||||
|     TRY(view_menu->try_add_action(*m_cursor_line_highlighting_action)); |     TRY(view_menu->try_add_action(*m_cursor_line_highlighting_action)); | ||||||
| 
 | 
 | ||||||
|  | @ -581,7 +581,7 @@ ErrorOr<void> MainWidget::initialize_menubar(GUI::Window& window) | ||||||
|     m_relative_line_number_action->set_checked(show_relative_line_number); |     m_relative_line_number_action->set_checked(show_relative_line_number); | ||||||
|     m_editor->set_relative_line_number(show_relative_line_number); |     m_editor->set_relative_line_number(show_relative_line_number); | ||||||
| 
 | 
 | ||||||
|     m_relative_line_number_action->set_status_tip("Set relative line number"); |     m_relative_line_number_action->set_status_tip(TRY("Set relative line number"_string)); | ||||||
| 
 | 
 | ||||||
|     TRY(view_menu->try_add_action(*m_relative_line_number_action)); |     TRY(view_menu->try_add_action(*m_relative_line_number_action)); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -144,7 +144,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments) | ||||||
|             GUI::Process::spawn_or_show_error(window, "/bin/GamesSettings"sv, Array { "--open-tab", "chess" }); |             GUI::Process::spawn_or_show_error(window, "/bin/GamesSettings"sv, Array { "--open-tab", "chess" }); | ||||||
|         }, |         }, | ||||||
|         window); |         window); | ||||||
|     settings_action->set_status_tip("Open the Game Settings for Chess"); |     settings_action->set_status_tip(TRY("Open the Game Settings for Chess"_string)); | ||||||
|     TRY(game_menu->try_add_action(settings_action)); |     TRY(game_menu->try_add_action(settings_action)); | ||||||
| 
 | 
 | ||||||
|     auto show_available_moves_action = GUI::Action::create_checkable("Show Available Moves", [&](auto& action) { |     auto show_available_moves_action = GUI::Action::create_checkable("Show Available Moves", [&](auto& action) { | ||||||
|  |  | ||||||
|  | @ -176,7 +176,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments) | ||||||
|         game.setup(mode); |         game.setup(mode); | ||||||
|     }); |     }); | ||||||
|     single_card_draw_action->set_checked(mode == Solitaire::Mode::SingleCardDraw); |     single_card_draw_action->set_checked(mode == Solitaire::Mode::SingleCardDraw); | ||||||
|     single_card_draw_action->set_status_tip("Draw one card at a time"); |     single_card_draw_action->set_status_tip(TRY("Draw one card at a time"_string)); | ||||||
|     draw_setting_actions.add_action(single_card_draw_action); |     draw_setting_actions.add_action(single_card_draw_action); | ||||||
| 
 | 
 | ||||||
|     auto three_card_draw_action = GUI::Action::create_checkable("&Three Card Draw", [&](auto&) { |     auto three_card_draw_action = GUI::Action::create_checkable("&Three Card Draw", [&](auto&) { | ||||||
|  | @ -189,7 +189,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments) | ||||||
|         game.setup(mode); |         game.setup(mode); | ||||||
|     }); |     }); | ||||||
|     three_card_draw_action->set_checked(mode == Solitaire::Mode::ThreeCardDraw); |     three_card_draw_action->set_checked(mode == Solitaire::Mode::ThreeCardDraw); | ||||||
|     three_card_draw_action->set_status_tip("Draw three cards at a time"); |     three_card_draw_action->set_status_tip(TRY("Draw three cards at a time"_string)); | ||||||
|     draw_setting_actions.add_action(three_card_draw_action); |     draw_setting_actions.add_action(three_card_draw_action); | ||||||
| 
 | 
 | ||||||
|     game.set_auto_collect(Config::read_bool("Solitaire"sv, "Settings"sv, "AutoCollect"sv, false)); |     game.set_auto_collect(Config::read_bool("Solitaire"sv, "Settings"sv, "AutoCollect"sv, false)); | ||||||
|  | @ -199,7 +199,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments) | ||||||
|         Config::write_bool("Solitaire"sv, "Settings"sv, "AutoCollect"sv, checked); |         Config::write_bool("Solitaire"sv, "Settings"sv, "AutoCollect"sv, checked); | ||||||
|     }); |     }); | ||||||
|     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"); |     toggle_auto_collect_action->set_status_tip(TRY("Auto-collect to foundation piles"_string)); | ||||||
| 
 | 
 | ||||||
|     auto game_menu = TRY(window->try_add_menu("&Game"_short_string)); |     auto game_menu = TRY(window->try_add_menu("&Game"_short_string)); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -23,7 +23,7 @@ ErrorOr<NonnullRefPtr<GUI::Action>> make_cards_settings_action(GUI::Window* pare | ||||||
|             GUI::Process::spawn_or_show_error(parent, "/bin/GamesSettings"sv, Array { "--open-tab", "cards" }); |             GUI::Process::spawn_or_show_error(parent, "/bin/GamesSettings"sv, Array { "--open-tab", "cards" }); | ||||||
|         }, |         }, | ||||||
|         parent); |         parent); | ||||||
|     action->set_status_tip("Open the Game Settings for Cards"); |     action->set_status_tip(TRY("Open the Game Settings for Cards"_string)); | ||||||
|     return action; |     return action; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -318,7 +318,7 @@ void Action::set_tooltip(DeprecatedString tooltip) | ||||||
| DeprecatedString Action::status_tip() const | DeprecatedString Action::status_tip() const | ||||||
| { | { | ||||||
|     if (!m_status_tip.is_empty()) |     if (!m_status_tip.is_empty()) | ||||||
|         return m_status_tip; |         return m_status_tip.to_deprecated_string(); | ||||||
| 
 | 
 | ||||||
|     return Gfx::parse_ampersand_string(m_text); |     return Gfx::parse_ampersand_string(m_text); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -12,6 +12,7 @@ | ||||||
| #include <AK/HashTable.h> | #include <AK/HashTable.h> | ||||||
| #include <AK/NonnullRefPtr.h> | #include <AK/NonnullRefPtr.h> | ||||||
| #include <AK/RefCounted.h> | #include <AK/RefCounted.h> | ||||||
|  | #include <AK/String.h> | ||||||
| #include <AK/WeakPtr.h> | #include <AK/WeakPtr.h> | ||||||
| #include <AK/Weakable.h> | #include <AK/Weakable.h> | ||||||
| #include <LibCore/Object.h> | #include <LibCore/Object.h> | ||||||
|  | @ -89,7 +90,7 @@ public: | ||||||
|     void set_tooltip(DeprecatedString); |     void set_tooltip(DeprecatedString); | ||||||
| 
 | 
 | ||||||
|     DeprecatedString status_tip() const; |     DeprecatedString status_tip() const; | ||||||
|     void set_status_tip(DeprecatedString status_tip) { m_status_tip = move(status_tip); } |     void set_status_tip(String status_tip) { m_status_tip = move(status_tip); } | ||||||
| 
 | 
 | ||||||
|     Shortcut const& shortcut() const { return m_shortcut; } |     Shortcut const& shortcut() const { return m_shortcut; } | ||||||
|     Shortcut const& alternate_shortcut() const { return m_alternate_shortcut; } |     Shortcut const& alternate_shortcut() const { return m_alternate_shortcut; } | ||||||
|  | @ -150,7 +151,7 @@ private: | ||||||
| 
 | 
 | ||||||
|     DeprecatedString m_text; |     DeprecatedString m_text; | ||||||
|     Optional<DeprecatedString> m_tooltip; |     Optional<DeprecatedString> m_tooltip; | ||||||
|     DeprecatedString m_status_tip; |     String m_status_tip; | ||||||
|     RefPtr<Gfx::Bitmap const> m_icon; |     RefPtr<Gfx::Bitmap const> m_icon; | ||||||
|     Shortcut m_shortcut; |     Shortcut m_shortcut; | ||||||
|     Shortcut m_alternate_shortcut; |     Shortcut m_alternate_shortcut; | ||||||
|  |  | ||||||
|  | @ -28,42 +28,42 @@ NonnullRefPtr<Action> make_about_action(DeprecatedString const& app_name, Icon c | ||||||
|             weak_parent) |             weak_parent) | ||||||
|             .release_value_but_fixme_should_propagate_errors(); |             .release_value_but_fixme_should_propagate_errors(); | ||||||
|     }); |     }); | ||||||
|     action->set_status_tip("Show application about box"); |     action->set_status_tip("Show application about box"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     return action; |     return action; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| NonnullRefPtr<Action> make_open_action(Function<void(Action&)> callback, Core::Object* parent) | NonnullRefPtr<Action> make_open_action(Function<void(Action&)> callback, Core::Object* parent) | ||||||
| { | { | ||||||
|     auto action = Action::create("&Open...", { Mod_Ctrl, Key_O }, Gfx::Bitmap::load_from_file("/res/icons/16x16/open.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); |     auto action = Action::create("&Open...", { Mod_Ctrl, Key_O }, Gfx::Bitmap::load_from_file("/res/icons/16x16/open.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); | ||||||
|     action->set_status_tip("Open an existing file"); |     action->set_status_tip("Open an existing file"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     return action; |     return action; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| NonnullRefPtr<Action> make_save_action(Function<void(Action&)> callback, Core::Object* parent) | NonnullRefPtr<Action> make_save_action(Function<void(Action&)> callback, Core::Object* parent) | ||||||
| { | { | ||||||
|     auto action = Action::create("&Save", { Mod_Ctrl, Key_S }, Gfx::Bitmap::load_from_file("/res/icons/16x16/save.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); |     auto action = Action::create("&Save", { Mod_Ctrl, Key_S }, Gfx::Bitmap::load_from_file("/res/icons/16x16/save.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); | ||||||
|     action->set_status_tip("Save the current file"); |     action->set_status_tip("Save the current file"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     return action; |     return action; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| NonnullRefPtr<Action> make_save_as_action(Function<void(Action&)> callback, Core::Object* parent) | NonnullRefPtr<Action> make_save_as_action(Function<void(Action&)> callback, Core::Object* parent) | ||||||
| { | { | ||||||
|     auto action = Action::create("Save &As...", { Mod_Ctrl | Mod_Shift, Key_S }, Gfx::Bitmap::load_from_file("/res/icons/16x16/save-as.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); |     auto action = Action::create("Save &As...", { Mod_Ctrl | Mod_Shift, Key_S }, Gfx::Bitmap::load_from_file("/res/icons/16x16/save-as.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); | ||||||
|     action->set_status_tip("Save the current file with a new name"); |     action->set_status_tip("Save the current file with a new name"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     return action; |     return action; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| NonnullRefPtr<Action> make_move_to_front_action(Function<void(Action&)> callback, Core::Object* parent) | NonnullRefPtr<Action> make_move_to_front_action(Function<void(Action&)> callback, Core::Object* parent) | ||||||
| { | { | ||||||
|     auto action = Action::create("Move to &Front", { Mod_Ctrl | Mod_Shift, Key_Up }, Gfx::Bitmap::load_from_file("/res/icons/16x16/move-to-front.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); |     auto action = Action::create("Move to &Front", { Mod_Ctrl | Mod_Shift, Key_Up }, Gfx::Bitmap::load_from_file("/res/icons/16x16/move-to-front.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); | ||||||
|     action->set_status_tip("Move to the top of the stack"); |     action->set_status_tip("Move to the top of the stack"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     return action; |     return action; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| NonnullRefPtr<Action> make_move_to_back_action(Function<void(Action&)> callback, Core::Object* parent) | NonnullRefPtr<Action> make_move_to_back_action(Function<void(Action&)> callback, Core::Object* parent) | ||||||
| { | { | ||||||
|     auto action = Action::create("Move to &Back", { Mod_Ctrl | Mod_Shift, Key_Down }, Gfx::Bitmap::load_from_file("/res/icons/16x16/move-to-back.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); |     auto action = Action::create("Move to &Back", { Mod_Ctrl | Mod_Shift, Key_Down }, Gfx::Bitmap::load_from_file("/res/icons/16x16/move-to-back.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); | ||||||
|     action->set_status_tip("Move to the bottom of the stack"); |     action->set_status_tip("Move to the bottom of the stack"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     return action; |     return action; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -85,35 +85,35 @@ NonnullRefPtr<Action> make_delete_action(Function<void(Action&)> callback, Core: | ||||||
| NonnullRefPtr<Action> make_cut_action(Function<void(Action&)> callback, Core::Object* parent) | NonnullRefPtr<Action> make_cut_action(Function<void(Action&)> callback, Core::Object* parent) | ||||||
| { | { | ||||||
|     auto action = Action::create("Cu&t", { Mod_Ctrl, Key_X }, Gfx::Bitmap::load_from_file("/res/icons/16x16/edit-cut.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); |     auto action = Action::create("Cu&t", { Mod_Ctrl, Key_X }, Gfx::Bitmap::load_from_file("/res/icons/16x16/edit-cut.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); | ||||||
|     action->set_status_tip("Cut to clipboard"); |     action->set_status_tip("Cut to clipboard"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     return action; |     return action; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| NonnullRefPtr<Action> make_copy_action(Function<void(Action&)> callback, Core::Object* parent) | NonnullRefPtr<Action> make_copy_action(Function<void(Action&)> callback, Core::Object* parent) | ||||||
| { | { | ||||||
|     auto action = Action::create("&Copy", { Mod_Ctrl, Key_C }, Gfx::Bitmap::load_from_file("/res/icons/16x16/edit-copy.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); |     auto action = Action::create("&Copy", { Mod_Ctrl, Key_C }, Gfx::Bitmap::load_from_file("/res/icons/16x16/edit-copy.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); | ||||||
|     action->set_status_tip("Copy to clipboard"); |     action->set_status_tip("Copy to clipboard"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     return action; |     return action; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| NonnullRefPtr<Action> make_paste_action(Function<void(Action&)> callback, Core::Object* parent) | NonnullRefPtr<Action> make_paste_action(Function<void(Action&)> callback, Core::Object* parent) | ||||||
| { | { | ||||||
|     auto action = Action::create("&Paste", { Mod_Ctrl, Key_V }, Gfx::Bitmap::load_from_file("/res/icons/16x16/paste.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); |     auto action = Action::create("&Paste", { Mod_Ctrl, Key_V }, Gfx::Bitmap::load_from_file("/res/icons/16x16/paste.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); | ||||||
|     action->set_status_tip("Paste from clipboard"); |     action->set_status_tip("Paste from clipboard"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     return action; |     return action; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| NonnullRefPtr<Action> make_insert_emoji_action(Function<void(Action&)> callback, Core::Object* parent) | NonnullRefPtr<Action> make_insert_emoji_action(Function<void(Action&)> callback, Core::Object* parent) | ||||||
| { | { | ||||||
|     auto action = Action::create("&Insert Emoji...", { Mod_Ctrl | Mod_Alt, Key_Space }, Gfx::Bitmap::load_from_file("/res/icons/16x16/emoji.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); |     auto action = Action::create("&Insert Emoji...", { Mod_Ctrl | Mod_Alt, Key_Space }, Gfx::Bitmap::load_from_file("/res/icons/16x16/emoji.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); | ||||||
|     action->set_status_tip("Open the Emoji Picker"); |     action->set_status_tip("Open the Emoji Picker"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     return action; |     return action; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| NonnullRefPtr<Action> make_fullscreen_action(Function<void(Action&)> callback, Core::Object* parent) | NonnullRefPtr<Action> make_fullscreen_action(Function<void(Action&)> callback, Core::Object* parent) | ||||||
| { | { | ||||||
|     auto action = Action::create("&Fullscreen", { Mod_None, Key_F11 }, move(callback), parent); |     auto action = Action::create("&Fullscreen", { Mod_None, Key_F11 }, move(callback), parent); | ||||||
|     action->set_status_tip("Enter fullscreen mode"); |     action->set_status_tip("Enter fullscreen mode"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     action->set_icon(Gfx::Bitmap::load_from_file("/res/icons/16x16/fullscreen.png"sv).release_value_but_fixme_should_propagate_errors()); |     action->set_icon(Gfx::Bitmap::load_from_file("/res/icons/16x16/fullscreen.png"sv).release_value_but_fixme_should_propagate_errors()); | ||||||
|     return action; |     return action; | ||||||
| } | } | ||||||
|  | @ -121,28 +121,28 @@ NonnullRefPtr<Action> make_fullscreen_action(Function<void(Action&)> callback, C | ||||||
| NonnullRefPtr<Action> make_quit_action(Function<void(Action&)> callback) | NonnullRefPtr<Action> make_quit_action(Function<void(Action&)> callback) | ||||||
| { | { | ||||||
|     auto action = Action::create("&Quit", { Mod_Alt, Key_F4 }, move(callback)); |     auto action = Action::create("&Quit", { Mod_Alt, Key_F4 }, move(callback)); | ||||||
|     action->set_status_tip("Quit the application"); |     action->set_status_tip("Quit the application"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     return action; |     return action; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| NonnullRefPtr<Action> make_help_action(Function<void(Action&)> callback, Core::Object* parent) | NonnullRefPtr<Action> make_help_action(Function<void(Action&)> callback, Core::Object* parent) | ||||||
| { | { | ||||||
|     auto action = Action::create("&Manual", { Mod_None, Key_F1 }, Gfx::Bitmap::load_from_file("/res/icons/16x16/app-help.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); |     auto action = Action::create("&Manual", { Mod_None, Key_F1 }, Gfx::Bitmap::load_from_file("/res/icons/16x16/app-help.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); | ||||||
|     action->set_status_tip("Show help contents"); |     action->set_status_tip("Show help contents"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     return action; |     return action; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| NonnullRefPtr<Action> make_go_back_action(Function<void(Action&)> callback, Core::Object* parent) | NonnullRefPtr<Action> make_go_back_action(Function<void(Action&)> callback, Core::Object* parent) | ||||||
| { | { | ||||||
|     auto action = Action::create("Go &Back", { Mod_Alt, Key_Left }, { MouseButton::Backward }, Gfx::Bitmap::load_from_file("/res/icons/16x16/go-back.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); |     auto action = Action::create("Go &Back", { Mod_Alt, Key_Left }, { MouseButton::Backward }, Gfx::Bitmap::load_from_file("/res/icons/16x16/go-back.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); | ||||||
|     action->set_status_tip("Move one step backward in history"); |     action->set_status_tip("Move one step backward in history"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     return action; |     return action; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| NonnullRefPtr<Action> make_go_forward_action(Function<void(Action&)> callback, Core::Object* parent) | NonnullRefPtr<Action> make_go_forward_action(Function<void(Action&)> callback, Core::Object* parent) | ||||||
| { | { | ||||||
|     auto action = Action::create("Go &Forward", { Mod_Alt, Key_Right }, { MouseButton::Forward }, Gfx::Bitmap::load_from_file("/res/icons/16x16/go-forward.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); |     auto action = Action::create("Go &Forward", { Mod_Alt, Key_Right }, { MouseButton::Forward }, Gfx::Bitmap::load_from_file("/res/icons/16x16/go-forward.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); | ||||||
|     action->set_status_tip("Move one step forward in history"); |     action->set_status_tip("Move one step forward in history"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     return action; |     return action; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -154,7 +154,7 @@ NonnullRefPtr<Action> make_go_home_action(Function<void(Action&)> callback, Core | ||||||
| NonnullRefPtr<Action> make_close_tab_action(Function<void(Action&)> callback, Core::Object* parent) | NonnullRefPtr<Action> make_close_tab_action(Function<void(Action&)> callback, Core::Object* parent) | ||||||
| { | { | ||||||
|     auto action = Action::create("&Close Tab", { Mod_Ctrl, Key_W }, Gfx::Bitmap::load_from_file("/res/icons/16x16/close-tab.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); |     auto action = Action::create("&Close Tab", { Mod_Ctrl, Key_W }, Gfx::Bitmap::load_from_file("/res/icons/16x16/close-tab.png"sv).release_value_but_fixme_should_propagate_errors(), move(callback), parent); | ||||||
|     action->set_status_tip("Close current tab"); |     action->set_status_tip("Close current tab"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     return action; |     return action; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -214,7 +214,7 @@ NonnullRefPtr<Action> make_command_palette_action(Window* window) | ||||||
|         action->flash_menubar_menu(*window); |         action->flash_menubar_menu(*window); | ||||||
|         action->activate(); |         action->activate(); | ||||||
|     }); |     }); | ||||||
|     action->set_status_tip("Open the command palette"); |     action->set_status_tip("Open the command palette"_string.release_value_but_fixme_should_propagate_errors()); | ||||||
|     return action; |     return action; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -171,7 +171,7 @@ ErrorOr<void> Toolbar::create_overflow_objects() | ||||||
|     m_overflow_action = Action::create("Overflow Menu", { Mod_Ctrl | Mod_Shift, Key_O }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/overflow-menu.png"sv)), [&](auto&) { |     m_overflow_action = Action::create("Overflow Menu", { Mod_Ctrl | Mod_Shift, Key_O }, TRY(Gfx::Bitmap::load_from_file("/res/icons/16x16/overflow-menu.png"sv)), [&](auto&) { | ||||||
|         m_overflow_menu->popup(m_overflow_button->screen_relative_rect().bottom_left().moved_up(1), {}, m_overflow_button->rect()); |         m_overflow_menu->popup(m_overflow_button->screen_relative_rect().bottom_left().moved_up(1), {}, m_overflow_button->rect()); | ||||||
|     }); |     }); | ||||||
|     m_overflow_action->set_status_tip("Show hidden toolbar actions"); |     m_overflow_action->set_status_tip(TRY("Show hidden toolbar actions"_string)); | ||||||
|     m_overflow_action->set_enabled(false); |     m_overflow_action->set_enabled(false); | ||||||
| 
 | 
 | ||||||
|     TRY(add_spacer()); |     TRY(add_spacer()); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Karol Kosek
						Karol Kosek