edit-dialog: make buttons sensitive when removing alarm
This commit is contained in:
@@ -599,12 +599,42 @@ gcal_edit_dialog_all_day_changed (GtkWidget *widget,
|
|||||||
/*
|
/*
|
||||||
* Alarm related functions
|
* 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
|
static void
|
||||||
remove_button_clicked (GtkButton *button,
|
remove_button_clicked (GtkButton *button,
|
||||||
GtkWidget *row)
|
GtkWidget *row)
|
||||||
{
|
{
|
||||||
ECalComponentAlarm *alarm;
|
ECalComponentAlarm *alarm;
|
||||||
GcalEditDialog *self;
|
GcalEditDialog *self;
|
||||||
|
GtkWidget *alarm_button;
|
||||||
GcalEvent *event;
|
GcalEvent *event;
|
||||||
gint trigger_minutes;
|
gint trigger_minutes;
|
||||||
|
|
||||||
@@ -613,6 +643,14 @@ remove_button_clicked (GtkButton *button,
|
|||||||
event = g_object_get_data (G_OBJECT (row), "event");
|
event = g_object_get_data (G_OBJECT (row), "event");
|
||||||
trigger_minutes = get_alarm_trigger_minutes (event, alarm);
|
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_event_remove_alarm (event, trigger_minutes);
|
||||||
|
|
||||||
gcal_manager_update_event (self->manager, event);
|
gcal_manager_update_event (self->manager, event);
|
||||||
|
|||||||
Reference in New Issue
Block a user