[gnome-calendar] manager: Toggle data model sources when changed
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar] manager: Toggle data model sources when changed
- Date: Sat, 4 May 2019 15:07:32 +0000 (UTC)
commit 2ef1cbc463af4f856d14f5d270a91d03f41d2b26
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Sat May 4 10:15:35 2019 -0300
manager: Toggle data model sources when changed
Instead of other classes needing to manually set and
unset whether a source is registered in the data model,
we can now simply call GcalCalendar.set_visible() and
have the model be updated for us.
src/core/gcal-manager.c | 23 +++++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)
---
diff --git a/src/core/gcal-manager.c b/src/core/gcal-manager.c
index ce20978b..8ac27940 100644
--- a/src/core/gcal-manager.c
+++ b/src/core/gcal-manager.c
@@ -182,8 +182,27 @@ source_changed (GcalManager *self,
calendar = g_hash_table_lookup (self->clients, source);
- if (calendar)
- g_signal_emit (self, signals[CALENDAR_CHANGED], 0, calendar);
+ if (!calendar)
+ GCAL_RETURN ();
+
+ if (gcal_calendar_get_visible (calendar))
+ {
+ ECalClient *client = gcal_calendar_get_client (calendar);
+
+ e_cal_data_model_add_client (self->e_data_model, client);
+ if (self->shell_search_data_model)
+ e_cal_data_model_add_client (self->shell_search_data_model, client);
+ }
+ else
+ {
+ const gchar *id = gcal_calendar_get_id (calendar);
+
+ e_cal_data_model_remove_client (self->e_data_model, id);
+ if (self->shell_search_data_model)
+ e_cal_data_model_remove_client (self->shell_search_data_model, id);
+ }
+
+ g_signal_emit (self, signals[CALENDAR_CHANGED], 0, calendar);
GCAL_EXIT;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]