ALT Linux Bugzilla
– Attachment 16650 Details for
Bug 51204
Поддержка waked в gnome-clocks
New bug
|
Search
|
[?]
|
Help
Register
|
Log In
[x]
|
Forgot Password
Login:
[x]
|
EN
|
RU
[patch]
патч
waked.patch (text/plain), 5.81 KB, created by
Egor Shestakov
on 2024-08-19 18:20:12 MSK
(
hide
)
Description:
патч
Filename:
MIME Type:
Creator:
Egor Shestakov
Created:
2024-08-19 18:20:12 MSK
Size:
5.81 KB
patch
obsolete
>diff --git a/build-aux/flatpak/org.gnome.clocks.json b/build-aux/flatpak/org.gnome.clocks.json >index d0a5a73..04afb90 100644 >--- a/build-aux/flatpak/org.gnome.clocks.json >+++ b/build-aux/flatpak/org.gnome.clocks.json >@@ -15,6 +15,7 @@ > "--socket=wayland", > "--socket=pulseaudio", > "--share=network", >+ "--system-talk-name=de.seath.Waked", > "--env=G_MESSAGES_DEBUG=org.gnome.ClocksDevel" > ], > "build-options": { >diff --git a/meson_options.txt b/meson_options.txt >index 12ff40d..928e8a3 100644 >--- a/meson_options.txt >+++ b/meson_options.txt >@@ -9,4 +9,6 @@ option( > description: 'The build profile for Clock. One of "default" or "development".' > ) > >-option('docs', type : 'boolean', value : false) >\ No newline at end of file >+option('docs', type : 'boolean', value : false) >+ >+option('waked', type : 'boolean', value : false) >diff --git a/src/alarm-face.vala b/src/alarm-face.vala >index 7bc459d..01fbed7 100644 >--- a/src/alarm-face.vala >+++ b/src/alarm-face.vala >@@ -84,6 +84,9 @@ public class Face : Adw.Bin, Clocks.Clock { > }); > > row.remove_alarm.connect (() => { >+#if HAVE_WAKED >+ Waked.get_default ().remove_timer.begin (((Item) item).id); >+#endif > alarms.delete_item ((Item) item); > if (ring_time_toast != null && item == ring_time_toast_alarm) { > ring_time_toast_alarm = null; >@@ -187,6 +190,9 @@ public class Face : Adw.Bin, Clocks.Clock { > alarm.active = true; > save (); > } else if (response == DELETE_ALARM) { >+#if HAVE_WAKED >+ Waked.get_default ().remove_timer.begin (alarm.id); >+#endif > alarms.delete_item (alarm); > save (); > } >diff --git a/src/alarm-item.vala b/src/alarm-item.vala >index 27968f7..cd8705f 100644 >--- a/src/alarm-item.vala >+++ b/src/alarm-item.vala >@@ -87,6 +87,14 @@ private class Item : Object, ContentItem { > notify_property ("active"); > } > notify_property ("ring-time"); >+ >+#if HAVE_WAKED >+ if (value == null) { >+ Waked.get_default ().remove_timer.begin (id); >+ } else { >+ Waked.get_default ().update_timer.begin (id, ring_time); >+ } >+#endif > } > } > >@@ -186,6 +194,11 @@ private class Item : Object, ContentItem { > var guid = id != null ? (string) id : GLib.DBus.generate_guid (); > Object (id: guid); > } >+ ~Item () { >+#if HAVE_WAKED >+ Waked.get_default ().remove_timer.begin (id); >+#endif >+ } > > private void setup_bell () { > bell = new Utils.Bell (GLib.File.new_for_uri ("resource://org/gnome/clocks/sounds/alarm-clock-elapsed.oga")); >diff --git a/src/meson.build b/src/meson.build >index 344781c..5139028 100644 >--- a/src/meson.build >+++ b/src/meson.build >@@ -24,6 +24,7 @@ clocks_vala_sources = files( > 'timer-setup.vala', > 'timer-setup-dialog.vala', > 'utils.vala', >+ 'waked.vala', > 'widgets.vala', > 'window.vala', > 'world-face.vala', >@@ -47,6 +48,10 @@ clocks_sources = [ > resources > ] > >+if get_option('waked') >+ add_project_arguments('-D', 'HAVE_WAKED', language: 'vala') >+endif >+ > clocks_vala_args = [ > '--target-glib', '2.72', > '--vapidir', meson.current_source_dir(), >diff --git a/src/waked.vala b/src/waked.vala >new file mode 100644 >index 0000000..e2523b4 >--- /dev/null >+++ b/src/waked.vala >@@ -0,0 +1,76 @@ >+/* >+ * Copyright (C) 2021 Robin Westermann <waked@seath.de> >+ * >+ * 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; either version 2 >+ * of the License, or (at your option) any later version. >+ * >+ * 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, write to the Free Software >+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. >+ */ >+ >+namespace Clocks { >+ >+[SingleInstance] >+public class Waked : GLib.Object { >+ [DBus (name = "de.seath.Waked")] >+ internal interface WakedProxy : GLib.Object { >+ public async abstract void add (string id, uint64 time) throws GLib.Error; >+ public async abstract void update (string id, uint64 time) throws GLib.Error; >+ public async abstract void remove (string id) throws GLib.Error; >+ } >+ >+ static Waked instance; >+ private WakedProxy _waked_proxy; >+ >+ public static Waked get_default () { >+ if (instance == null) { >+ instance = new Waked (); >+ } >+ >+ return instance; >+ } >+ >+ async WakedProxy get_proxy () throws GLib.IOError { >+ if (_waked_proxy == null) { >+ _waked_proxy = >+ yield Bus.get_proxy<WakedProxy> ( >+ BusType.SYSTEM, >+ "de.seath.Waked", >+ "/de/seath/Waked/Alarm"); >+ } >+ >+ return _waked_proxy; >+ } >+ >+ public async void update_timer (string id, GLib.DateTime time) { >+ try { >+ var waked_proxy = yield get_proxy (); >+ >+ yield waked_proxy.update (id, time.to_unix ()); >+ >+ } catch (GLib.Error e) { >+ stderr.printf ("%s\n", e.message); >+ } >+ } >+ >+ public async void remove_timer (string id) { >+ try { >+ var waked_proxy = yield get_proxy (); >+ >+ yield waked_proxy.remove (id); >+ >+ } catch (GLib.Error e) { >+ stderr.printf ("%s\n", e.message); >+ } >+ } >+} >+ >+} // namespace Clocks
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 51204
: 16650