[gnome-calendar] manager: create and keep an internal clock



commit 15563607dd3989eabefd7cae807807176668c42d
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Tue May 16 14:34:12 2017 -0300

    manager: create and keep an internal clock
    
    This clock will be used in the future by other classes
    to update stuff.

 src/gcal-manager.c |   33 ++++++++++++++++++++++++++++++++-
 src/gcal-manager.h |    4 ++++
 2 files changed, 36 insertions(+), 1 deletions(-)
---
diff --git a/src/gcal-manager.c b/src/gcal-manager.c
index c184fcc..da668dc 100644
--- a/src/gcal-manager.c
+++ b/src/gcal-manager.c
@@ -91,6 +91,8 @@ struct _GcalManager
 
   GoaClient       *goa_client;
 
+  GcalClock       *clock;
+
   /* state flags */
   gboolean         goa_client_ready;
   gint             sources_at_launch;
@@ -107,6 +109,7 @@ G_DEFINE_TYPE (GcalManager, gcal_manager, G_TYPE_OBJECT)
 enum
 {
   PROP_0,
+  PROP_CLOCK,
   PROP_DEFAULT_CALENDAR,
   PROP_LOADING,
   PROP_SETTINGS,
@@ -899,6 +902,7 @@ gcal_manager_finalize (GObject *object)
 
   GCAL_ENTRY;
 
+  g_clear_object (&manager->clock);
   g_clear_object (&manager->settings);
   g_clear_object (&manager->goa_client);
   g_clear_object (&manager->e_data_model);
@@ -1000,6 +1004,17 @@ gcal_manager_class_init (GcalManagerClass *klass)
   object_class->get_property = gcal_manager_get_property;
 
   /**
+   * GcalManager:clock:
+   *
+   * The internal clock of Calendar.
+   */
+  properties[PROP_CLOCK] = g_param_spec_object ("clock",
+                                                "Clock",
+                                                "The internal clock of Calendar",
+                                                GCAL_TYPE_CLOCK,
+                                                G_PARAM_READWRITE);
+
+  /**
    * GcalManager:default-calendar:
    *
    * The default calendar.
@@ -1081,7 +1096,7 @@ gcal_manager_class_init (GcalManagerClass *klass)
 static void
 gcal_manager_init (GcalManager *self)
 {
-  ;
+  self->clock = gcal_clock_new ();
 }
 
 /* Public API */
@@ -1951,6 +1966,22 @@ gcal_manager_get_loading (GcalManager *self)
 }
 
 /**
+ * gcal_manager_get_clock:
+ * @self: a #GcalManager
+ *
+ * Retrieves the internal #GcalClock of @self.
+ *
+ * Returns: (transfer none): a #GcalClock.
+ */
+GcalClock*
+gcal_manager_get_clock (GcalManager *self)
+{
+  g_return_val_if_fail (GCAL_IS_MANAGER (self), NULL);
+
+  return self->clock;
+}
+
+/**
  * gcal_manager_get_event_from_shell_search:
  * @manager: a #GcalManager
  * @uuid: the unique identier of the event
diff --git a/src/gcal-manager.h b/src/gcal-manager.h
index 5633ef3..1d016dc 100644
--- a/src/gcal-manager.h
+++ b/src/gcal-manager.h
@@ -21,6 +21,7 @@
 #define __GCAL_MANAGER_H__
 
 #include "e-cal-data-model.h"
+#include "gcal-clock.h"
 #include "gcal-event.h"
 
 #include <libical/icaltime.h>
@@ -103,6 +104,9 @@ GList*               gcal_manager_get_events                     (GcalManager
 
 gboolean             gcal_manager_get_loading                    (GcalManager        *self);
 
+/* Clock */
+GcalClock*           gcal_manager_get_clock                      (GcalManager        *self);
+
 /* Online Accounts */
 GoaClient*           gcal_manager_get_goa_client                 (GcalManager        *manager);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]