1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:17:44 +00:00

LibGUI: Store Menu names as new String

This commit is contained in:
Karol Kosek 2023-04-15 17:27:32 +02:00 committed by Andreas Kling
parent f8d6a67294
commit c4c1df7621
3 changed files with 21 additions and 8 deletions

View file

@ -33,11 +33,16 @@ Menu* Menu::from_menu_id(int menu_id)
return (*it).value;
}
Menu::Menu(DeprecatedString name)
Menu::Menu(String name)
: m_name(move(name))
{
}
Menu::Menu(DeprecatedString name)
: m_name(String::from_deprecated_string(name).release_value_but_fixme_should_propagate_errors())
{
}
Menu::~Menu()
{
unrealize_menu();
@ -90,10 +95,15 @@ void Menu::update_parent_menu_item()
}
void Menu::set_name(DeprecatedString name)
{
set_name(String::from_deprecated_string(name).release_value_but_fixme_should_propagate_errors());
}
void Menu::set_name(String name)
{
m_name = move(name);
if (m_menu_id != -1) {
ConnectionToWindowServer::the().async_set_menu_name(m_menu_id, m_name);
ConnectionToWindowServer::the().async_set_menu_name(m_menu_id, m_name.to_deprecated_string());
update_parent_menu_item();
}
}
@ -168,7 +178,7 @@ int Menu::realize_menu(RefPtr<Action> default_action)
unrealize_menu();
m_menu_id = s_menu_id_allocator.allocate();
ConnectionToWindowServer::the().async_create_menu(m_menu_id, m_name);
ConnectionToWindowServer::the().async_create_menu(m_menu_id, m_name.to_deprecated_string());
dbgln_if(MENU_DEBUG, "GUI::Menu::realize_menu(): New menu ID: {}", m_menu_id);
VERIFY(m_menu_id > 0);
@ -242,7 +252,7 @@ void Menu::realize_menu_item(MenuItem& item, int item_id)
auto& submenu = *item.submenu();
submenu.realize_if_needed(m_current_default_action.strong_ref());
auto icon = submenu.icon() ? submenu.icon()->to_shareable_bitmap() : Gfx::ShareableBitmap();
ConnectionToWindowServer::the().async_add_menu_item(m_menu_id, item_id, submenu.menu_id(), submenu.name(), true, true, false, false, false, "", icon, false);
ConnectionToWindowServer::the().async_add_menu_item(m_menu_id, item_id, submenu.menu_id(), submenu.name().to_deprecated_string(), true, true, false, false, false, "", icon, false);
break;
}
case MenuItem::Type::Invalid: