[gnome-calendar] manager: obtain event data from its uuid
- From: Erick Pérez Castellanos <erickpc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar] manager: obtain event data from its uuid
- Date: Fri, 6 Feb 2015 14:26:48 +0000 (UTC)
commit 023dbb06320868c8b662bfa7d31814b68cfa7828
Author: Erick Pérez Castellanos <erick red gmail com>
Date: Thu Feb 5 14:23:05 2015 -0500
manager: obtain event data from its uuid
This is only enable on the shell search provider model for now. If it
proves useful we can extend it to some other place
src/gcal-manager.c | 38 ++++++++++++++++++++++++++++++++++++++
src/gcal-manager.h | 3 +++
2 files changed, 41 insertions(+), 0 deletions(-)
---
diff --git a/src/gcal-manager.c b/src/gcal-manager.c
index 831d54c..4f95de3 100644
--- a/src/gcal-manager.c
+++ b/src/gcal-manager.c
@@ -1225,3 +1225,41 @@ gcal_manager_load_completed (GcalManager *manager)
GcalManagerPrivate *priv = gcal_manager_get_instance_private (manager);
return priv->sources_at_launch == 0;
}
+
+GcalEventData*
+gcal_manager_get_event_from_shell_search (GcalManager *manager,
+ const gchar *uuid)
+{
+ GcalManagerPrivate *priv;
+ time_t range_start, range_end;
+ GList *l, *list = NULL;
+ GcalEventData *new_data, *data;
+ gchar *cuuid;
+
+ priv = gcal_manager_get_instance_private (manager);
+
+ e_cal_data_model_get_subscriber_range (priv->shell_search_data_model, priv->search_view_data->subscriber,
+ &range_start, &range_end);
+ e_cal_data_model_foreach_component (priv->shell_search_data_model, range_start, range_end,
gather_components, &list);
+ if (list != NULL)
+ new_data = g_new0 (GcalEventData, 1);
+
+ for (l = list; l != NULL; l = g_list_next (l))
+ {
+ data = l->data;
+ cuuid = get_uuid_from_component (data->source, data->event_component);
+
+ if (g_strcmp0 (cuuid, uuid) == 0)
+ {
+ new_data->source = data->source;
+ new_data->event_component = g_object_ref (data->event_component);
+ }
+
+ g_object_unref (data->event_component);
+ g_free (data);
+ g_free (cuuid);
+ }
+ g_list_free (list);
+
+ return new_data;
+}
diff --git a/src/gcal-manager.h b/src/gcal-manager.h
index 43578a1..d5a5bf2 100644
--- a/src/gcal-manager.h
+++ b/src/gcal-manager.h
@@ -142,6 +142,9 @@ GList* gcal_manager_get_events (GcalManager *manager
gboolean gcal_manager_load_completed (GcalManager *manager);
+GcalEventData* gcal_manager_get_event_from_shell_search (GcalManager *manager,
+ const gchar *uuid);
+
G_END_DECLS
#endif /* __GCAL_MANAGER_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]