manager: Update event gathering API

This commit is contained in:
Georges Basile Stavracas Neto
2020-04-01 21:06:51 -03:00
parent 72952e42cb
commit 9cb29b6dc5
3 changed files with 14 additions and 37 deletions
+6 -21
View File
@@ -1465,35 +1465,20 @@ gcal_manager_move_event_to_source (GcalManager *self,
* *
* Returns: (nullable)(transfer full)(content-type GcalEvent):a #GList * Returns: (nullable)(transfer full)(content-type GcalEvent):a #GList
*/ */
GList* GPtrArray*
gcal_manager_get_events (GcalManager *self, gcal_manager_get_events (GcalManager *self,
ICalTime *start_date, GDateTime *start_date,
ICalTime *end_date) GDateTime *end_date)
{ {
time_t range_start, range_end; g_autoptr (GPtrArray) events_at_range = NULL;
GTimeZone *zone;
ICalTimezone *tz;
GatherEventData data = {
.manager = self,
.events = NULL,
};
GCAL_ENTRY; GCAL_ENTRY;
g_return_val_if_fail (GCAL_IS_MANAGER (self), NULL); g_return_val_if_fail (GCAL_IS_MANAGER (self), NULL);
zone = gcal_context_get_timezone (self->context); events_at_range = gcal_timeline_get_events_at_range (self->timeline, start_date, end_date);
tz = gcal_timezone_to_icaltimezone (zone);
range_start = i_cal_time_as_timet_with_zone (start_date, tz);
range_end = i_cal_time_as_timet_with_zone (end_date, tz);
e_cal_data_model_foreach_component (self->e_data_model, GCAL_RETURN (g_steal_pointer (&events_at_range));
range_start,
range_end,
gather_events,
&data);
GCAL_RETURN (data.events);
} }
/** /**
+3 -3
View File
@@ -85,9 +85,9 @@ gchar* gcal_manager_add_source (GcalManager
void gcal_manager_save_source (GcalManager *self, void gcal_manager_save_source (GcalManager *self,
ESource *source); ESource *source);
GList* gcal_manager_get_events (GcalManager *self, GPtrArray* gcal_manager_get_events (GcalManager *self,
ICalTime *range_start, GDateTime *range_start,
ICalTime *range_end); GDateTime *range_end);
/* GNOME Shell-related functions */ /* GNOME Shell-related functions */
GcalEvent* gcal_manager_get_event_from_shell_search (GcalManager *self, GcalEvent* gcal_manager_get_event_from_shell_search (GcalManager *self,
+5 -13
View File
@@ -295,12 +295,10 @@ reposition_popover (GcalMonthPopover *self,
static void static void
update_event_list (GcalMonthPopover *self) update_event_list (GcalMonthPopover *self)
{ {
g_autoptr (ICalTime) start = NULL;
g_autoptr (ICalTime) end = NULL;
g_autoptr (GDateTime) start_dt = NULL; g_autoptr (GDateTime) start_dt = NULL;
g_autoptr (GDateTime) end_dt = NULL; g_autoptr (GDateTime) end_dt = NULL;
g_autoptr (GList) events = NULL; g_autoptr (GPtrArray) events = NULL;
GList *l; guint i;
gtk_container_foreach (GTK_CONTAINER (self->listbox), (GtkCallback) gtk_widget_destroy, NULL); gtk_container_foreach (GTK_CONTAINER (self->listbox), (GtkCallback) gtk_widget_destroy, NULL);
@@ -317,15 +315,9 @@ update_event_list (GcalMonthPopover *self)
0, 0, 0); 0, 0, 0);
end_dt = g_date_time_add_days (start_dt, 1); end_dt = g_date_time_add_days (start_dt, 1);
start = gcal_date_time_to_icaltime (start_dt); events = gcal_manager_get_events (gcal_context_get_manager (self->context), start_dt, end_dt);
end = gcal_date_time_to_icaltime (end_dt);
events = gcal_manager_get_events (gcal_context_get_manager (self->context), start, end); for (i = 0; events && i < events->len; i++)
g_clear_object (&start);
g_clear_object (&end);
for (l = events; l; l = l->next)
{ {
g_autoptr (GDateTime) event_start = NULL; g_autoptr (GDateTime) event_start = NULL;
g_autoptr (GDateTime) event_end = NULL; g_autoptr (GDateTime) event_end = NULL;
@@ -333,7 +325,7 @@ update_event_list (GcalMonthPopover *self)
GtkWidget *event_widget; GtkWidget *event_widget;
GcalEvent *event; GcalEvent *event;
event = l->data; event = g_ptr_array_index (events, i);
if (gcal_event_get_all_day (event)) if (gcal_event_get_all_day (event))
tz = g_time_zone_new_utc (); tz = g_time_zone_new_utc ();