edit-dialog: Use GtkCalendar internally

Instead of tracking the ESource, which is an extra
complication on top of this messy code.
This commit is contained in:
Georges Basile Stavracas Neto
2019-10-04 00:58:41 -03:00
parent 970cc1fca5
commit 44092da60b
+7 -9
View File
@@ -105,7 +105,7 @@ struct _GcalEditDialog
/* new data holders */ /* new data holders */
GcalEvent *event; GcalEvent *event;
ESource *selected_source; GcalCalendar *selected_calendar;
/* flags */ /* flags */
gboolean event_is_new; gboolean event_is_new;
@@ -650,7 +650,7 @@ on_calendar_selected_action_cb (GSimpleAction *action,
surface = get_circle_surface_from_color (color, 16); surface = get_circle_surface_from_color (color, 16);
gtk_image_set_from_surface (GTK_IMAGE (self->source_image), surface); gtk_image_set_from_surface (GTK_IMAGE (self->source_image), surface);
self->selected_source = gcal_calendar_get_source (calendar); self->selected_calendar = calendar;
gtk_label_set_label (GTK_LABEL (self->subtitle_label), gcal_calendar_get_name (calendar)); gtk_label_set_label (GTK_LABEL (self->subtitle_label), gcal_calendar_get_name (calendar));
@@ -864,24 +864,21 @@ on_action_button_clicked_cb (GtkWidget *widget,
/* Update the source if needed */ /* Update the source if needed */
calendar = gcal_event_get_calendar (self->event); calendar = gcal_event_get_calendar (self->event);
if (self->selected_source && if (self->selected_calendar && calendar != self->selected_calendar)
gcal_calendar_get_source (calendar) != self->selected_source)
{ {
if (self->event_is_new) if (self->event_is_new)
{ {
calendar = gcal_manager_get_calendar_from_source (gcal_context_get_manager (self->context), gcal_event_set_calendar (self->event, self->selected_calendar);
self->selected_source);
gcal_event_set_calendar (self->event, calendar);
} }
else else
{ {
gcal_manager_move_event_to_source (gcal_context_get_manager (self->context), gcal_manager_move_event_to_source (gcal_context_get_manager (self->context),
self->event, self->event,
self->selected_source); gcal_calendar_get_source (self->selected_calendar));
} }
} }
self->selected_source = NULL; self->selected_calendar = NULL;
/* Send the response */ /* Send the response */
gtk_dialog_response (GTK_DIALOG (self), gtk_dialog_response (GTK_DIALOG (self),
@@ -1486,6 +1483,7 @@ gcal_edit_dialog_set_event (GcalEditDialog *self,
g_clear_pointer (&surface, cairo_surface_destroy); g_clear_pointer (&surface, cairo_surface_destroy);
gtk_label_set_label (GTK_LABEL (self->subtitle_label), gcal_calendar_get_name (calendar)); gtk_label_set_label (GTK_LABEL (self->subtitle_label), gcal_calendar_get_name (calendar));
self->selected_calendar = calendar;
/* retrieve start and end dates */ /* retrieve start and end dates */
date_start = gcal_event_get_date_start (event); date_start = gcal_event_get_date_start (event);