search: split listbox sort function
It'll be needed for future work on pagination, so the sorting logic can be reused.
This commit is contained in:
+16
-3
@@ -91,6 +91,10 @@ static gint sort_by_event (GtkListBoxRow
|
|||||||
GtkListBoxRow *row2,
|
GtkListBoxRow *row2,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
|
||||||
|
static gint compare_events (GcalEventData *ev1,
|
||||||
|
GcalEventData *ev2,
|
||||||
|
time_t *utc);
|
||||||
|
|
||||||
static gboolean show_no_results_page (GcalSearchView *view);
|
static gboolean show_no_results_page (GcalSearchView *view);
|
||||||
|
|
||||||
/* private */
|
/* private */
|
||||||
@@ -220,8 +224,6 @@ sort_by_event (GtkListBoxRow *row1,
|
|||||||
GcalSearchViewPrivate *priv;
|
GcalSearchViewPrivate *priv;
|
||||||
RowEventData *rd1, *rd2;
|
RowEventData *rd1, *rd2;
|
||||||
GcalEventData *ev1, *ev2;
|
GcalEventData *ev1, *ev2;
|
||||||
ECalComponentDateTime date1, date2;
|
|
||||||
gint result;
|
|
||||||
|
|
||||||
priv = gcal_search_view_get_instance_private (GCAL_SEARCH_VIEW (user_data));
|
priv = gcal_search_view_get_instance_private (GCAL_SEARCH_VIEW (user_data));
|
||||||
|
|
||||||
@@ -235,6 +237,17 @@ sort_by_event (GtkListBoxRow *row1,
|
|||||||
if (ev1 == NULL || ev2 == NULL)
|
if (ev1 == NULL || ev2 == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
return compare_events (ev1, ev2, &(priv->current_utc_date));
|
||||||
|
}
|
||||||
|
|
||||||
|
static gint
|
||||||
|
compare_events (GcalEventData *ev1,
|
||||||
|
GcalEventData *ev2,
|
||||||
|
time_t *utc)
|
||||||
|
{
|
||||||
|
ECalComponentDateTime date1, date2;
|
||||||
|
gint result;
|
||||||
|
|
||||||
e_cal_component_get_dtstart (ev1->event_component, &date1);
|
e_cal_component_get_dtstart (ev1->event_component, &date1);
|
||||||
e_cal_component_get_dtstart (ev2->event_component, &date2);
|
e_cal_component_get_dtstart (ev2->event_component, &date2);
|
||||||
|
|
||||||
@@ -242,7 +255,7 @@ sort_by_event (GtkListBoxRow *row1,
|
|||||||
date1.value->zone = icaltimezone_get_builtin_timezone_from_tzid (date1.tzid);
|
date1.value->zone = icaltimezone_get_builtin_timezone_from_tzid (date1.tzid);
|
||||||
if (date2.tzid != NULL)
|
if (date2.tzid != NULL)
|
||||||
date2.value->zone = icaltimezone_get_builtin_timezone_from_tzid (date2.tzid);
|
date2.value->zone = icaltimezone_get_builtin_timezone_from_tzid (date2.tzid);
|
||||||
result = icaltime_compare_with_current (date1.value, date2.value, &(priv->current_utc_date));
|
result = icaltime_compare_with_current (date1.value, date2.value, utc);
|
||||||
|
|
||||||
e_cal_component_free_datetime (&date1);
|
e_cal_component_free_datetime (&date1);
|
||||||
e_cal_component_free_datetime (&date2);
|
e_cal_component_free_datetime (&date2);
|
||||||
|
|||||||
Reference in New Issue
Block a user