[gnome-clocks] Clicking on a snoozing alarm shows the ring panel
- From: Paolo Borelli <pborelli src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-clocks] Clicking on a snoozing alarm shows the ring panel
- Date: Sun, 24 Feb 2013 13:29:13 +0000 (UTC)
commit 37caddc9502d6ccb6cf7d2600644d6e2fc7cd980
Author: Paolo Borelli <pborelli gnome org>
Date: Sun Feb 24 14:27:51 2013 +0100
Clicking on a snoozing alarm shows the ring panel
Otherwise there is no way to stop it.
src/alarm.vala | 55 +++++++++++++++++++++++++++++++++----------------------
1 files changed, 33 insertions(+), 22 deletions(-)
---
diff --git a/src/alarm.vala b/src/alarm.vala
index e96da56..fd50325 100644
--- a/src/alarm.vala
+++ b/src/alarm.vala
@@ -482,23 +482,11 @@ public class MainPanel : Gd.Stack, Clocks.Clock {
if (list_store.get_iter (out i, path)) {
Item alarm;
list_store.get (i, IconView.Column.ITEM, out alarm);
- var dialog = new SetupDialog ((Gtk.Window) get_toplevel (), alarm);
-
- // Disable alarm while editing it and remember the original active state.
- var saved_active = alarm.active;
- alarm.active = false;
-
- dialog.response.connect ((dialog, response) => {
- if (response == 1) {
- ((SetupDialog) dialog).apply_to_alarm (alarm);
- alarm.reset ();
- save ();
- } else {
- alarm.active = saved_active;
- }
- dialog.destroy ();
- });
- dialog.show_all ();
+ if (alarm.state == Item.State.SNOOZING) {
+ show_ringing_panel (alarm);
+ } else {
+ edit (alarm);
+ }
}
});
@@ -553,8 +541,7 @@ public class MainPanel : Gd.Stack, Clocks.Clock {
// a.tick() returns true if the state changed
if (a.tick()) {
if (a.state == Item.State.RINGING) {
- standalone.alarm = a;
- standalone.update ();
+ show_ringing_panel (a);
ring ();
} else if (standalone.alarm == a) {
standalone.update ();
@@ -564,9 +551,7 @@ public class MainPanel : Gd.Stack, Clocks.Clock {
});
}
- public virtual signal void ring () {
- visible_child = standalone;
- }
+ public signal void ring ();
private void load () {
foreach (var a in settings.get_value ("alarms")) {
@@ -587,6 +572,32 @@ public class MainPanel : Gd.Stack, Clocks.Clock {
settings.set_value ("alarms", builder.end ());
}
+ private void edit (Item alarm) {
+ var dialog = new SetupDialog ((Gtk.Window) get_toplevel (), alarm);
+
+ // Disable alarm while editing it and remember the original active state.
+ var saved_active = alarm.active;
+ alarm.active = false;
+
+ dialog.response.connect ((dialog, response) => {
+ if (response == 1) {
+ ((SetupDialog) dialog).apply_to_alarm (alarm);
+ alarm.reset ();
+ save ();
+ } else {
+ alarm.active = saved_active;
+ }
+ dialog.destroy ();
+ });
+ dialog.show_all ();
+ }
+
+ private void show_ringing_panel (Item alarm) {
+ standalone.alarm = alarm;
+ standalone.update ();
+ visible_child = standalone;
+ }
+
public void activate_new () {
var dialog = new SetupDialog ((Gtk.Window) get_toplevel (), null);
dialog.response.connect ((dialog, response) => {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]