[gnome-calendar/gbsneto/timeline: 16/36] manager: Add GcalTimelineSubscribers to GcalTimeline
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar/gbsneto/timeline: 16/36] manager: Add GcalTimelineSubscribers to GcalTimeline
- Date: Thu, 2 Apr 2020 00:08:06 +0000 (UTC)
commit 6bcf1a370541bca9e01399cfb7201706efc11568
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Thu Mar 26 22:57:54 2020 -0300
manager: Add GcalTimelineSubscribers to GcalTimeline
Instead of subscribing to the ECalDataModel's API, use the
new API.
src/core/gcal-manager.c | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
---
diff --git a/src/core/gcal-manager.c b/src/core/gcal-manager.c
index 20921959..0a286df6 100644
--- a/src/core/gcal-manager.c
+++ b/src/core/gcal-manager.c
@@ -22,6 +22,8 @@
#include "gcal-context.h"
#include "gcal-debug.h"
#include "gcal-manager.h"
+#include "gcal-timeline.h"
+#include "gcal-timeline-subscriber.h"
#include "gcal-utils.h"
#include <libedataserverui/libedataserverui.h>
@@ -91,6 +93,8 @@ struct _GcalManager
gint clients_synchronizing;
+ GcalTimeline *timeline;
+
GcalContext *context;
};
@@ -179,6 +183,7 @@ remove_source (GcalManager *self,
e_cal_data_model_remove_client (self->e_data_model,
e_source_get_uid (source));
+ gcal_timeline_remove_calendar (self->timeline, calendar);
g_hash_table_remove (self->clients, source);
g_signal_emit (self, signals[CALENDAR_REMOVED], 0, calendar);
@@ -286,6 +291,8 @@ on_calendar_created_cb (GObject *source_object,
g_hash_table_insert (self->clients, g_object_ref (source), calendar);
+ gcal_timeline_add_calendar (self->timeline, calendar);
+
if (visible)
{
e_cal_data_model_add_client (self->e_data_model, client);
@@ -653,6 +660,7 @@ gcal_manager_finalize (GObject *object)
GCAL_ENTRY;
+ g_clear_object (&self->timeline);
g_clear_object (&self->e_data_model);
g_clear_object (&self->shell_search_data_model);
@@ -1064,10 +1072,10 @@ gcal_manager_set_subscriber (GcalManager *self,
g_return_if_fail (GCAL_IS_MANAGER (self));
- e_cal_data_model_subscribe (self->e_data_model,
- subscriber,
- range_start,
- range_end);
+ if (GCAL_IS_TIMELINE_SUBSCRIBER (subscriber))
+ gcal_timeline_add_subscriber (self->timeline, GCAL_TIMELINE_SUBSCRIBER (subscriber));
+ else
+ e_cal_data_model_subscribe (self->e_data_model, subscriber, range_start, range_end);
GCAL_EXIT;
}
@@ -1580,6 +1588,7 @@ gcal_manager_startup (GcalManager *self)
GCAL_ENTRY;
+ self->timeline = gcal_timeline_new (self->context);
self->clients = g_hash_table_new_full ((GHashFunc) e_source_hash,
(GEqualFunc) e_source_equal,
g_object_unref,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]