utils: Watch calendars for read-only change
This should make the list model update itself whenever a calendar changes between read-only and read-write. Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/660>
This commit is contained in:
@@ -1306,18 +1306,20 @@ gcal_create_soup_session (void)
|
|||||||
GListModel*
|
GListModel*
|
||||||
gcal_create_writable_calendars_model (GcalManager *manager)
|
gcal_create_writable_calendars_model (GcalManager *manager)
|
||||||
{
|
{
|
||||||
|
g_autoptr (GtkFilterListModel) filter_model = NULL;
|
||||||
GtkBoolFilter *bool_filter;
|
GtkBoolFilter *bool_filter;
|
||||||
GtkExpression *expression;
|
|
||||||
GListModel *calendars;
|
GListModel *calendars;
|
||||||
|
|
||||||
g_return_val_if_fail (GCAL_IS_MANAGER (manager), NULL);
|
g_return_val_if_fail (GCAL_IS_MANAGER (manager), NULL);
|
||||||
|
|
||||||
expression = gtk_property_expression_new (GCAL_TYPE_CALENDAR, NULL, "read-only");
|
calendars = gcal_manager_get_calendars_model (manager);
|
||||||
|
|
||||||
bool_filter = gtk_bool_filter_new (expression);
|
bool_filter = gtk_bool_filter_new (gtk_property_expression_new (GCAL_TYPE_CALENDAR, NULL, "read-only"));
|
||||||
gtk_bool_filter_set_invert (bool_filter, TRUE);
|
gtk_bool_filter_set_invert (bool_filter, TRUE);
|
||||||
|
|
||||||
calendars = gcal_manager_get_calendars_model (manager);
|
filter_model = gtk_filter_list_model_new (g_object_ref (calendars), GTK_FILTER (bool_filter));
|
||||||
return G_LIST_MODEL (gtk_filter_list_model_new (g_object_ref (calendars), GTK_FILTER (bool_filter)));
|
gtk_filter_list_model_set_watch_items (filter_model, TRUE);
|
||||||
|
|
||||||
|
return G_LIST_MODEL (g_steal_pointer (&filter_model));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user