[gnome-calendar] edit-dialog: make buttons sensitive when removing alarm
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar] edit-dialog: make buttons sensitive when removing alarm
- Date: Wed, 6 Jul 2016 06:13:40 +0000 (UTC)
commit dc1f742cfef2563fad4138fd31bb95d3cfa470f3
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Wed Jul 6 03:13:38 2016 -0300
edit-dialog: make buttons sensitive when removing alarm
src/gcal-edit-dialog.c | 38 ++++++++++++++++++++++++++++++++++++++
1 files changed, 38 insertions(+), 0 deletions(-)
---
diff --git a/src/gcal-edit-dialog.c b/src/gcal-edit-dialog.c
index 91cece0..9727802 100644
--- a/src/gcal-edit-dialog.c
+++ b/src/gcal-edit-dialog.c
@@ -599,12 +599,42 @@ gcal_edit_dialog_all_day_changed (GtkWidget *widget,
/*
* Alarm related functions
*/
+static GtkWidget*
+get_row_fow_alarm_trigger_minutes (GcalEditDialog *self,
+ gint minutes)
+{
+ gint i;
+
+ struct
+ {
+ gint minutes;
+ GtkWidget *button;
+ } minutes_button[] = {
+ { 5, self->five_minutes_button },
+ { 10, self->ten_minutes_button },
+ { 30, self->thirty_minutes_button },
+ { 60, self->one_hour_button },
+ { 1440, self->one_day_button },
+ { 2880, self->two_days_button },
+ { 4320, self->three_days_button },
+ { 10080, self->one_week_button }
+ };
+
+ for (i = 0; i < G_N_ELEMENTS (minutes_button); i++)
+ {
+ if (minutes_button[i].minutes == minutes)
+ return minutes_button[i].button;
+ }
+
+ return NULL;
+}
static void
remove_button_clicked (GtkButton *button,
GtkWidget *row)
{
ECalComponentAlarm *alarm;
GcalEditDialog *self;
+ GtkWidget *alarm_button;
GcalEvent *event;
gint trigger_minutes;
@@ -613,6 +643,14 @@ remove_button_clicked (GtkButton *button,
event = g_object_get_data (G_OBJECT (row), "event");
trigger_minutes = get_alarm_trigger_minutes (event, alarm);
+ /*
+ * Make the button sensitive again
+ */
+ alarm_button = get_row_fow_alarm_trigger_minutes (self, trigger_minutes);
+
+ if (alarm_button)
+ gtk_widget_set_sensitive (alarm_button, TRUE);
+
gcal_event_remove_alarm (event, trigger_minutes);
gcal_manager_update_event (self->manager, event);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]