Skip to content

Commit c4c1df7

Browse files
krkkawesomekling
authored andcommitted
LibGUI: Store Menu names as new String
1 parent f8d6a67 commit c4c1df7

File tree

3 files changed

+21
-8
lines changed

3 files changed

+21
-8
lines changed

Userland/Libraries/LibGUI/Menu.cpp

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,16 @@ Menu* Menu::from_menu_id(int menu_id)
3333
return (*it).value;
3434
}
3535

36-
Menu::Menu(DeprecatedString name)
36+
Menu::Menu(String name)
3737
: m_name(move(name))
3838
{
3939
}
4040

41+
Menu::Menu(DeprecatedString name)
42+
: m_name(String::from_deprecated_string(name).release_value_but_fixme_should_propagate_errors())
43+
{
44+
}
45+
4146
Menu::~Menu()
4247
{
4348
unrealize_menu();
@@ -90,10 +95,15 @@ void Menu::update_parent_menu_item()
9095
}
9196

9297
void Menu::set_name(DeprecatedString name)
98+
{
99+
set_name(String::from_deprecated_string(name).release_value_but_fixme_should_propagate_errors());
100+
}
101+
102+
void Menu::set_name(String name)
93103
{
94104
m_name = move(name);
95105
if (m_menu_id != -1) {
96-
ConnectionToWindowServer::the().async_set_menu_name(m_menu_id, m_name);
106+
ConnectionToWindowServer::the().async_set_menu_name(m_menu_id, m_name.to_deprecated_string());
97107
update_parent_menu_item();
98108
}
99109
}
@@ -168,7 +178,7 @@ int Menu::realize_menu(RefPtr<Action> default_action)
168178
unrealize_menu();
169179
m_menu_id = s_menu_id_allocator.allocate();
170180

171-
ConnectionToWindowServer::the().async_create_menu(m_menu_id, m_name);
181+
ConnectionToWindowServer::the().async_create_menu(m_menu_id, m_name.to_deprecated_string());
172182

173183
dbgln_if(MENU_DEBUG, "GUI::Menu::realize_menu(): New menu ID: {}", m_menu_id);
174184
VERIFY(m_menu_id > 0);
@@ -242,7 +252,7 @@ void Menu::realize_menu_item(MenuItem& item, int item_id)
242252
auto& submenu = *item.submenu();
243253
submenu.realize_if_needed(m_current_default_action.strong_ref());
244254
auto icon = submenu.icon() ? submenu.icon()->to_shareable_bitmap() : Gfx::ShareableBitmap();
245-
ConnectionToWindowServer::the().async_add_menu_item(m_menu_id, item_id, submenu.menu_id(), submenu.name(), true, true, false, false, false, "", icon, false);
255+
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);
246256
break;
247257
}
248258
case MenuItem::Type::Invalid:

Userland/Libraries/LibGUI/Menu.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
#pragma once
88

9+
#include <AK/String.h>
910
#include <AK/WeakPtr.h>
1011
#include <LibCore/Object.h>
1112
#include <LibGUI/Action.h>
@@ -32,8 +33,9 @@ class Menu final : public Core::Object {
3233
static Menu* from_menu_id(int);
3334
int menu_id() const { return m_menu_id; }
3435

35-
DeprecatedString const& name() const { return m_name; }
36+
String const& name() const { return m_name; }
3637
void set_name(DeprecatedString);
38+
void set_name(String);
3739

3840
Gfx::Bitmap const* icon() const { return m_icon.ptr(); }
3941
void set_icon(Gfx::Bitmap const*);
@@ -67,7 +69,8 @@ class Menu final : public Core::Object {
6769
private:
6870
friend class Menubar;
6971

70-
explicit Menu(DeprecatedString name = "");
72+
explicit Menu(String name = {});
73+
explicit Menu(DeprecatedString name);
7174

7275
int realize_menu(RefPtr<Action> default_action = nullptr);
7376
void unrealize_menu();
@@ -79,7 +82,7 @@ class Menu final : public Core::Object {
7982
void update_parent_menu_item();
8083

8184
int m_menu_id { -1 };
82-
DeprecatedString m_name;
85+
String m_name;
8386
RefPtr<Gfx::Bitmap const> m_icon;
8487
Vector<NonnullOwnPtr<MenuItem>> m_items;
8588
WeakPtr<Action> m_current_default_action;

Userland/Libraries/LibGUI/MenuItem.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ void MenuItem::update_window_server()
9191
case MenuItem::Type::Submenu: {
9292
auto& submenu = *m_submenu;
9393
auto icon = submenu.icon() ? submenu.icon()->to_shareable_bitmap() : Gfx::ShareableBitmap();
94-
ConnectionToWindowServer::the().async_update_menu_item(m_menu_id, m_identifier, submenu.menu_id(), submenu.name(), m_enabled, m_visible, false, false, m_default, "", icon);
94+
ConnectionToWindowServer::the().async_update_menu_item(m_menu_id, m_identifier, submenu.menu_id(), submenu.name().to_deprecated_string(), m_enabled, m_visible, false, false, m_default, "", icon);
9595
break;
9696
}
9797
default:

0 commit comments

Comments
 (0)