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

Taskbar: Add hotkeys for theme selector menu

This commit is contained in:
Hugh Davenport 2024-01-03 17:20:42 +13:00 committed by Andrew Kaster
parent 420da686b8
commit 8e76265b0c
24 changed files with 51 additions and 4 deletions

View file

@ -239,9 +239,9 @@ ErrorOr<NonnullRefPtr<GUI::Menu>> build_system_menu(GUI::Window& window)
{
int theme_identifier = 0;
for (auto& theme : g_themes) {
auto action = GUI::Action::create_checkable(theme.name, [theme_identifier, &window](auto&) {
auto action = GUI::Action::create_checkable(theme.menu_name, [theme_identifier, current_theme_name, &window](auto&) {
auto& theme = g_themes[theme_identifier];
dbgln("Theme switched to {} at path {}", theme.name, theme.path);
dbgln("Theme switched from {} to {} at path {}", current_theme_name, theme.name, theme.path);
if (window.main_widget()->palette().color_scheme_path() != ""sv)
VERIFY(GUI::ConnectionToWindowServer::the().set_system_theme(theme.path, theme.name, false, GUI::ConnectionToWindowServer::the().get_preferred_color_scheme()));
else
@ -260,9 +260,11 @@ ErrorOr<NonnullRefPtr<GUI::Menu>> build_system_menu(GUI::Window& window)
return;
auto current_theme_name = GUI::ConnectionToWindowServer::the().get_system_theme();
auto theme_overridden = GUI::ConnectionToWindowServer::the().is_system_theme_overridden();
VERIFY(g_themes.size() == g_themes_menu->items().size());
for (size_t index = 0; index < g_themes.size(); ++index) {
auto* action = g_themes_menu->action_at(index);
action->set_checked(!theme_overridden && action->text() == current_theme_name);
auto& theme = g_themes[index];
action->set_checked(!theme_overridden && theme.name == current_theme_name);
}
};