mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 22:47:44 +00:00
LibDesktop: Add menu_name() to AppFile
This really just takes the [App].Name config value and removes the ampersands `&` from the name. These ampersands are hotkeys for the system menu. Instead of typing them twice - error prone - use the fact that name is just menu_name without the ampersand. Remove the ampersand to use as the name and use it as is as the menu_name.
This commit is contained in:
parent
f5dec55fd6
commit
6ab315ae69
3 changed files with 11 additions and 2 deletions
|
@ -69,6 +69,13 @@ bool AppFile::validate() const
|
|||
}
|
||||
|
||||
ByteString AppFile::name() const
|
||||
{
|
||||
auto name = m_config->read_entry("App", "Name").trim_whitespace().replace("&"sv, ""sv);
|
||||
VERIFY(!name.is_empty());
|
||||
return name;
|
||||
}
|
||||
|
||||
ByteString AppFile::menu_name() const
|
||||
{
|
||||
auto name = m_config->read_entry("App", "Name").trim_whitespace();
|
||||
VERIFY(!name.is_empty());
|
||||
|
|
|
@ -30,6 +30,7 @@ public:
|
|||
ByteString filename() const { return m_config->filename(); }
|
||||
|
||||
ByteString name() const;
|
||||
ByteString menu_name() const;
|
||||
ByteString executable() const;
|
||||
ByteString category() const;
|
||||
ByteString description() const;
|
||||
|
|
|
@ -78,6 +78,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
struct AppMetadata {
|
||||
ByteString executable;
|
||||
ByteString name;
|
||||
ByteString menu_name;
|
||||
ByteString category;
|
||||
ByteString working_directory;
|
||||
GUI::Icon icon;
|
||||
|
@ -99,7 +100,7 @@ ErrorOr<Vector<ByteString>> discover_apps_and_categories()
|
|||
if (af->exclude_from_system_menu())
|
||||
return;
|
||||
if (access(af->executable().characters(), X_OK) == 0) {
|
||||
g_apps.append({ af->executable(), af->name(), af->category(), af->working_directory(), af->icon(), af->run_in_terminal(), af->requires_root() });
|
||||
g_apps.append({ af->executable(), af->name(), af->menu_name(), af->category(), af->working_directory(), af->icon(), af->run_in_terminal(), af->requires_root() });
|
||||
seen_app_categories.set(af->category());
|
||||
}
|
||||
});
|
||||
|
@ -175,7 +176,7 @@ ErrorOr<NonnullRefPtr<GUI::Menu>> build_system_menu(GUI::Window& window)
|
|||
}
|
||||
|
||||
auto parent_menu = app_category_menus.get(app.category).value_or(system_menu.ptr());
|
||||
parent_menu->add_action(GUI::Action::create(app.name, icon, [app_identifier, &window](auto&) {
|
||||
parent_menu->add_action(GUI::Action::create(app.menu_name, icon, [app_identifier, &window](auto&) {
|
||||
dbgln("Activated app with ID {}", app_identifier);
|
||||
auto& app = g_apps[app_identifier];
|
||||
StringView executable;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue