[evolution-data-server] Bug 793104 - COMPLETED in libical 3.0+ is DATE-TIME only
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Bug 793104 - COMPLETED in libical 3.0+ is DATE-TIME only
- Date: Tue, 6 Feb 2018 17:13:19 +0000 (UTC)
commit 996ebf445e3e05212935482cad11879a7c2b5522
Author: Milan Crha <mcrha redhat com>
Date: Tue Feb 6 18:14:14 2018 +0100
Bug 793104 - COMPLETED in libical 3.0+ is DATE-TIME only
.../backends/gtasks/e-cal-backend-gtasks.c | 2 +-
src/calendar/libecal/e-cal-component.c | 12 ++++++++++++
src/calendar/libedata-cal/e-cal-backend-sexp.c | 6 ++++++
src/calendar/libedata-cal/e-cal-cache.c | 4 ++--
4 files changed, 21 insertions(+), 3 deletions(-)
---
diff --git a/src/calendar/backends/gtasks/e-cal-backend-gtasks.c
b/src/calendar/backends/gtasks/e-cal-backend-gtasks.c
index c1a16ab..3c1fd5b 100644
--- a/src/calendar/backends/gtasks/e-cal-backend-gtasks.c
+++ b/src/calendar/backends/gtasks/e-cal-backend-gtasks.c
@@ -137,7 +137,7 @@ ecb_gtasks_gdata_to_comp (GDataTasksTask *task)
}
if (gdata_tasks_task_get_completed (task) > 0) {
- tt = icaltime_from_timet_with_zone (gdata_tasks_task_get_completed (task), 1, NULL);
+ tt = icaltime_from_timet_with_zone (gdata_tasks_task_get_completed (task), 0,
icaltimezone_get_utc_timezone ());
if (icaltime_is_valid_time (tt) && !icaltime_is_null_time (tt))
ecb_gtasks_update_ical_time_property (icomp, ICAL_COMPLETED_PROPERTY,
icalproperty_new_completed,
diff --git a/src/calendar/libecal/e-cal-component.c b/src/calendar/libecal/e-cal-component.c
index d96a5fb..825f770 100644
--- a/src/calendar/libecal/e-cal-component.c
+++ b/src/calendar/libecal/e-cal-component.c
@@ -2356,6 +2356,7 @@ e_cal_component_set_completed (ECalComponent *comp,
struct icaltimetype *t)
{
ECalComponentPrivate *priv;
+ struct icaltimetype tmp_tt;
g_return_if_fail (comp != NULL);
g_return_if_fail (E_IS_CAL_COMPONENT (comp));
@@ -2363,6 +2364,17 @@ e_cal_component_set_completed (ECalComponent *comp,
priv = comp->priv;
g_return_if_fail (priv->icalcomp != NULL);
+ if (t && t->is_date) {
+ tmp_tt = *t;
+ t = &tmp_tt;
+
+ tmp_tt.is_date = 0;
+ tmp_tt.hour = 0;
+ tmp_tt.minute = 0;
+ tmp_tt.second = 0;
+ tmp_tt.zone = icaltimezone_get_utc_timezone ();
+ }
+
set_icaltimetype (
comp, &priv->completed,
icalproperty_new_completed,
diff --git a/src/calendar/libedata-cal/e-cal-backend-sexp.c b/src/calendar/libedata-cal/e-cal-backend-sexp.c
index 28b0fb8..cdbeb3c 100644
--- a/src/calendar/libedata-cal/e-cal-backend-sexp.c
+++ b/src/calendar/libedata-cal/e-cal-backend-sexp.c
@@ -1041,6 +1041,12 @@ func_is_completed (ESExp *esexp,
if (t) {
complete = TRUE;
e_cal_component_free_icaltimetype (t);
+ } else {
+ icalproperty_status status = ICAL_STATUS_NONE;
+
+ e_cal_component_get_status (ctx->comp, &status);
+
+ complete = status == ICAL_STATUS_COMPLETED;
}
result = e_sexp_result_new (esexp, ESEXP_RES_BOOL);
diff --git a/src/calendar/libedata-cal/e-cal-cache.c b/src/calendar/libedata-cal/e-cal-cache.c
index c8ae546..f79d5ce 100644
--- a/src/calendar/libedata-cal/e-cal-cache.c
+++ b/src/calendar/libedata-cal/e-cal-cache.c
@@ -1384,8 +1384,8 @@ ecc_sexp_func_is_completed (ESExp *esexp,
g_return_val_if_fail (ctx != NULL, NULL);
result = e_sexp_result_new (esexp, ESEXP_RES_STRING);
- result->value.string = g_strdup_printf ("%s NOT NULL",
- ECC_COLUMN_COMPLETED);
+ result->value.string = g_strdup_printf ("%s NOT NULL OR (%s NOT NULL AND %s='%s')",
+ ECC_COLUMN_COMPLETED, ECC_COLUMN_STATUS, ECC_COLUMN_STATUS, ecc_get_status_as_string
(ICAL_STATUS_COMPLETED));
return result;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]