aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/calendar-model.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/calendar-model.c')
-rw-r--r--calendar/gui/calendar-model.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/calendar/gui/calendar-model.c b/calendar/gui/calendar-model.c
index 3721366cf0..1640b299f8 100644
--- a/calendar/gui/calendar-model.c
+++ b/calendar/gui/calendar-model.c
@@ -1698,6 +1698,14 @@ obj_updated_cb (CalClient *client, const char *uid, gpointer data)
e_table_model_row_changed (E_TABLE_MODEL (model), *new_idx);
}
+ /* See if we need to add any categories. Note that old
+ categories won't be removed, but I don't think that matters
+ too much here. */
+ if (calendar_model_collect_categories (model, new_comp)) {
+ gtk_signal_emit (GTK_OBJECT (model),
+ calendar_model_signals [CATEGORIES_CHANGED]);
+ }
+
break;
case CAL_CLIENT_GET_NOT_FOUND:
@@ -1986,6 +1994,7 @@ ensure_task_complete (CalComponent *comp,
struct icaltimetype *old_completed = NULL;
struct icaltimetype new_completed;
int *old_percent, new_percent;
+ icalproperty_status status;
gboolean set_completed = TRUE;
/* Date Completed. */
@@ -2013,6 +2022,12 @@ ensure_task_complete (CalComponent *comp,
}
if (old_percent)
cal_component_free_percent (old_percent);
+
+ /* Status. */
+ cal_component_get_status (comp, &status);
+ if (status != ICAL_STATUS_COMPLETED) {
+ cal_component_set_status (comp, ICAL_STATUS_COMPLETED);
+ }
}