diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2025-05-15 09:51:50 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2025-05-15 09:51:50 +0200 |
commit | cd978f758a34f636a375383b1456f4a636a97be5 (patch) | |
tree | 442184e910e2fed27cc865c4f0162e1d843339de | |
parent | 9dad6b4b1aaecd3ee02ac9d1e4241771ddf2ae25 (diff) | |
parent | 2647235691ad8e6b9c06cc5feff4d362c85e37ab (diff) | |
download | ayatana-indicator-bluetooth-main.tar.gz ayatana-indicator-bluetooth-main.tar.bz2 ayatana-indicator-bluetooth-main.zip |
Attributes GH PR #55: https://github.com/AyatanaIndicators/ayatana-indicator-bluetooth/pull/55
-rw-r--r-- | data/org.ayatana.indicator.bluetooth | 3 | ||||
-rw-r--r-- | src/CMakeLists.txt | 9 | ||||
-rw-r--r-- | src/greeter.vala | 50 | ||||
-rw-r--r-- | src/service.vala | 3 |
4 files changed, 65 insertions, 0 deletions
diff --git a/data/org.ayatana.indicator.bluetooth b/data/org.ayatana.indicator.bluetooth index a57ce0a..9f95e01 100644 --- a/data/org.ayatana.indicator.bluetooth +++ b/data/org.ayatana.indicator.bluetooth @@ -17,3 +17,6 @@ ObjectPath=/org/ayatana/indicator/bluetooth/desktop ObjectPath=/org/ayatana/indicator/bluetooth/phone Position=36 +[desktop_greeter] +ObjectPath=/org/ayatana/indicator/bluetooth/greeter +Position=36 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8770323..6b0a1e2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -55,6 +55,14 @@ vala_add(ayatana-indicator-bluetooth-service ) vala_add(ayatana-indicator-bluetooth-service + greeter.vala + DEPENDS + profile + bluetooth + device +) + +vala_add(ayatana-indicator-bluetooth-service device.vala ) @@ -85,6 +93,7 @@ vala_add(ayatana-indicator-bluetooth-service device phone desktop + greeter ) vala_finish(ayatana-indicator-bluetooth-service diff --git a/src/greeter.vala b/src/greeter.vala new file mode 100644 index 0000000..17c2042 --- /dev/null +++ b/src/greeter.vala @@ -0,0 +1,50 @@ +/* +* Copyright 2025 Robert Tari <robert@tari.in> +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; version 3. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +class Greeter: Profile +{ + GLib.SimpleActionGroup action_group; + + public Greeter (Bluetooth bluetooth, GLib.SimpleActionGroup action_group) + { + base (bluetooth, "greeter"); + this.bluetooth = bluetooth; + this.action_group = action_group; + GLib.Action[] actions = {}; + actions += root_action; + actions += create_supported_action (bluetooth); + actions += create_enabled_action (bluetooth); + + foreach (GLib.Action action in actions) + { + action_group.add_action (action); + } + + GLib.Menu section = new GLib.Menu (); + GLib.MenuItem menu_item = create_enabled_menuitem (); + section.append_item (menu_item); + menu.append_section (null, section); + + bluetooth.notify.connect (() => update_visibility ()); + update_visibility (); + bluetooth.notify.connect (() => update_root_action_state ()); + } + + void update_visibility () + { + visible = bluetooth.enabled; + } +} diff --git a/src/service.vala b/src/service.vala index 524175d..80ccea6 100644 --- a/src/service.vala +++ b/src/service.vala @@ -1,5 +1,6 @@ /* * Copyright 2013 Canonical Ltd. + * Copyright 2025 Robert Tari * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,6 +17,7 @@ * Authors: * Charles Kerr <charles.kerr@canonical.com> * Robert Ancell <robert.ancell@canonical.com> + * Robert Tari <robert@tari.in> */ /** @@ -54,6 +56,7 @@ public class Service: Object profiles = new HashTable<string,Profile> (str_hash, str_equal); profiles.insert ("phone", new Phone (bluetooth, actions)); profiles.insert ("desktop", new Desktop (bluetooth, actions)); + profiles.insert ("greeter", new Greeter (bluetooth, actions)); } public int run () |