edit-dialog: make buttons sensitive when removing alarm

This commit is contained in:
Georges Basile Stavracas Neto
2016-07-06 03:13:38 -03:00
parent db2983be61
commit dc1f742cfe
+38
View File
@@ -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);