quick-add-popover: track default calendar
Update the selected calendar when the default one changes. https://bugzilla.gnome.org/show_bug.cgi?id=771570
This commit is contained in:
@@ -257,6 +257,21 @@ update_header (GcalQuickAddPopover *self)
|
|||||||
g_free (dtstart);
|
g_free (dtstart);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
update_default_calendar_row (GcalQuickAddPopover *self)
|
||||||
|
{
|
||||||
|
GtkWidget *row;
|
||||||
|
ESource *default_source;
|
||||||
|
|
||||||
|
default_source = gcal_manager_get_default_source (self->manager);
|
||||||
|
|
||||||
|
row = get_row_for_source (self, default_source);
|
||||||
|
select_row (self, GTK_LIST_BOX_ROW (row));
|
||||||
|
|
||||||
|
g_clear_object (&default_source);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Callbacks
|
* Callbacks
|
||||||
*/
|
*/
|
||||||
@@ -557,22 +572,17 @@ static void
|
|||||||
gcal_quick_add_popover_closed (GtkPopover *popover)
|
gcal_quick_add_popover_closed (GtkPopover *popover)
|
||||||
{
|
{
|
||||||
GcalQuickAddPopover *self;
|
GcalQuickAddPopover *self;
|
||||||
GtkWidget *default_row;
|
|
||||||
ESource *default_source;
|
|
||||||
|
|
||||||
self = GCAL_QUICK_ADD_POPOVER (popover);
|
self = GCAL_QUICK_ADD_POPOVER (popover);
|
||||||
default_source = gcal_manager_get_default_source (self->manager);
|
|
||||||
|
|
||||||
/* Clear text */
|
/* Clear text */
|
||||||
gtk_entry_set_text (GTK_ENTRY (self->summary_entry), "");
|
gtk_entry_set_text (GTK_ENTRY (self->summary_entry), "");
|
||||||
|
|
||||||
/* Select the default row again */
|
/* Select the default row again */
|
||||||
default_row = get_row_for_source (self, default_source);
|
update_default_calendar_row (self);
|
||||||
select_row (self, GTK_LIST_BOX_ROW (default_row));
|
|
||||||
|
|
||||||
g_clear_pointer (&self->date_start, g_date_time_unref);
|
g_clear_pointer (&self->date_start, g_date_time_unref);
|
||||||
g_clear_pointer (&self->date_end, g_date_time_unref);
|
g_clear_pointer (&self->date_end, g_date_time_unref);
|
||||||
g_clear_object (&default_source);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -703,6 +713,7 @@ gcal_quick_add_popover_set_manager (GcalQuickAddPopover *self,
|
|||||||
g_signal_connect (manager, "source-added", G_CALLBACK (on_source_added), self);
|
g_signal_connect (manager, "source-added", G_CALLBACK (on_source_added), self);
|
||||||
g_signal_connect (manager, "source-changed", G_CALLBACK (on_source_changed), self);
|
g_signal_connect (manager, "source-changed", G_CALLBACK (on_source_changed), self);
|
||||||
g_signal_connect (manager, "source-removed", G_CALLBACK (on_source_removed), self);
|
g_signal_connect (manager, "source-removed", G_CALLBACK (on_source_removed), self);
|
||||||
|
g_signal_connect_swapped (manager, "notify::default-calendar", G_CALLBACK (update_default_calendar_row), self);
|
||||||
|
|
||||||
g_object_notify (G_OBJECT (self), "manager");
|
g_object_notify (G_OBJECT (self), "manager");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user