diff options
| author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2026-10-12 21:30:47 +0200 |
|---|---|---|
| committer | Ratchanan Srirattanamet <peathot@hotmail.com> | 2026-10-13 17:37:01 +0700 |
| commit | 362c3008ac28e3d288dd37d9df188eacaff318e4 (patch) | |
| tree | ba719c69032d21d7832900b7b9577d19bf5d47c3 /src | |
| parent | ecce9eedca74b96cf3a11f9f28fdee68da59d184 (diff) | |
| download | ayatana-indicator-power-362c3008ac28e3d288dd37d9df188eacaff318e4.tar.gz ayatana-indicator-power-362c3008ac28e3d288dd37d9df188eacaff318e4.tar.bz2 ayatana-indicator-power-362c3008ac28e3d288dd37d9df188eacaff318e4.zip | |
src/service.c: Add desktop_greeter (empty) and phone_greeter settings sections.
* desktop greeter: Don't show anything
* phone greeter: Show brightness and flashlight settings
Not yet implemented: syncing brightness and flashlight settings between
greeter and session. For this, we need to move those settings from
gsettings to AccountsService (subject of another PR, not here, not now).
Diffstat (limited to 'src')
| -rw-r--r-- | src/service.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/service.c b/src/service.c index 11fc6e5..56dcfb6 100644 --- a/src/service.c +++ b/src/service.c @@ -683,6 +683,14 @@ create_desktop_settings_section (IndicatorPowerService * self G_GNUC_UNUSED) } static GMenuModel * +create_desktop_greeter_settings_section (IndicatorPowerService * self G_GNUC_UNUSED) +{ + GMenu * menu = g_menu_new (); + + return G_MENU_MODEL (menu); +} + +static GMenuModel * create_phone_settings_section(IndicatorPowerService * self) { GMenu * section; @@ -735,6 +743,49 @@ create_phone_settings_section(IndicatorPowerService * self) return G_MENU_MODEL(section); } +static GMenuModel * +create_phone_greeter_settings_section(IndicatorPowerService * self) +{ + GMenu * section; + GMenuItem * item; + gboolean ab_supported; + + section = g_menu_new(); + + item = create_brightness_menu_item(); + g_menu_append_item(section, item); + update_brightness_action_state(self); + g_object_unref(item); + + g_object_get(self->priv->brightness, + "auto-brightness-supported", &ab_supported, + NULL); + + if (ab_supported) + { + item = g_menu_item_new(_("Adjust brightness automatically"), "indicator.auto-brightness(true)"); + g_menu_item_set_attribute(item, "x-ayatana-type", "s", "org.ayatana.indicator.switch"); + g_menu_append_item(section, item); + g_object_unref(item); + } + + if (flashlight_supported()) + { + item = g_menu_item_new(_("Flashlight"), "indicator.flashlight(true)"); + g_menu_item_set_attribute(item, "x-ayatana-type", "s", "org.ayatana.indicator.switch"); + g_menu_append_item(section, item); + g_object_unref(item); + if (flashlight_activated()) + { + item = g_menu_item_new(_("Warning: Heavy use can damage the LED!"), "indicator.flashlight(true)"); + g_menu_append_item(section, item); + g_object_unref(item); + } + } + + return G_MENU_MODEL(section); +} + /*** **** **** SECTION REBUILDING @@ -782,7 +833,9 @@ rebuild_now (IndicatorPowerService * self, guint sections) if (sections & SECTION_SETTINGS) { rebuild_section (desktop->submenu, 1, create_desktop_settings_section (self)); + rebuild_section (desktop_greeter->submenu, 1, create_desktop_greeter_settings_section (self)); rebuild_section (phone->submenu, 1, create_phone_settings_section (self)); + rebuild_section (phone_greeter->submenu, 1, create_phone_greeter_settings_section (self)); } } @@ -816,6 +869,7 @@ create_menu (IndicatorPowerService * self, int profile) case PROFILE_PHONE_GREETER: sections[n++] = create_devices_section (self, PROFILE_PHONE_GREETER); + sections[n++] = create_phone_greeter_settings_section (self); break; case PROFILE_DESKTOP: @@ -825,6 +879,7 @@ create_menu (IndicatorPowerService * self, int profile) case PROFILE_DESKTOP_GREETER: sections[n++] = create_devices_section (self, PROFILE_DESKTOP_GREETER); + sections[n++] = create_desktop_greeter_settings_section (self); break; } |
