aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/e-day-view.c
diff options
context:
space:
mode:
authorJP Rosevear <jpr@ximian.com>2004-03-19 23:05:08 +0800
committerJP Rosevear <jpr@src.gnome.org>2004-03-19 23:05:08 +0800
commit5a2fbc78d98a8219e4b11176d743cbcaf61b6adf (patch)
tree90586a7b4e0591c56a033c4c7c2b8ed408058c23 /calendar/gui/e-day-view.c
parente9daadbcaa3c317be7e941f243ca1a2b7087a30b (diff)
downloadgsoc2013-evolution-5a2fbc78d98a8219e4b11176d743cbcaf61b6adf.tar.gz
gsoc2013-evolution-5a2fbc78d98a8219e4b11176d743cbcaf61b6adf.tar.zst
gsoc2013-evolution-5a2fbc78d98a8219e4b11176d743cbcaf61b6adf.zip
compare ecalcomponents, not icalcomponents (the compare func is borked),
2004-03-19 JP Rosevear <jpr@ximian.com> * gui/e-day-view.c (process_component): compare ecalcomponents, not icalcomponents (the compare func is borked), check recurrence changes better (e_day_view_init): just use the model the parent creates * gui/e-week-view.c (process_component): create the temporary item from the correct icalcomp (e_week_view_init): just use the model the parent creates svn path=/trunk/; revision=25129
Diffstat (limited to 'calendar/gui/e-day-view.c')
-rw-r--r--calendar/gui/e-day-view.c29
1 files changed, 20 insertions, 9 deletions
diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c
index 2dd2c1cca2..a13c059b15 100644
--- a/calendar/gui/e-day-view.c
+++ b/calendar/gui/e-day-view.c
@@ -525,12 +525,22 @@ process_component (EDayView *day_view, ECalModelComponent *comp_data)
if (day_view->lower == 0 && day_view->upper == 0)
return;
+ comp = e_cal_component_new ();
+ if (!e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (comp_data->icalcomp))) {
+ g_object_unref (comp);
+
+ g_message (G_STRLOC ": Could not set icalcomponent on ECalComponent");
+ return;
+ }
+
+ e_cal_component_get_uid (comp, &uid);
+
/* If the event already exists and the dates didn't change, we can
update the event fairly easily without changing the events arrays
or computing a new layout. */
- uid = icalcomponent_get_uid (comp_data->icalcomp);
-
if (e_day_view_find_event_from_uid (day_view, uid, &day, &event_num)) {
+ ECalComponent *tmp_comp;
+
if (day == E_DAY_VIEW_LONG_EVENT)
event = &g_array_index (day_view->long_events,
EDayViewEvent, event_num);
@@ -538,8 +548,11 @@ process_component (EDayView *day_view, ECalModelComponent *comp_data)
event = &g_array_index (day_view->events[day],
EDayViewEvent, event_num);
+ tmp_comp = e_cal_component_new ();
+ e_cal_component_set_icalcomponent (tmp_comp, icalcomponent_new_clone (event->comp_data->icalcomp));
if (!e_cal_util_component_has_recurrences (comp_data->icalcomp)
- && e_cal_util_event_dates_match (event->comp_data->icalcomp, comp_data->icalcomp)) {
+ && !e_cal_component_has_recurrences (tmp_comp)
+ && e_cal_component_event_dates_match (comp, tmp_comp)) {
#if 0
g_print ("updated object's dates unchanged\n");
#endif
@@ -557,12 +570,11 @@ process_component (EDayView *day_view, ECalModelComponent *comp_data)
e_day_view_foreach_event_with_uid (day_view, uid,
e_day_view_remove_event_cb,
NULL);
+
+ g_object_unref (tmp_comp);
}
/* Add the occurrences of the event */
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (comp_data->icalcomp));
-
add_event_data.day_view = day_view;
add_event_data.comp_data = comp_data;
e_cal_recur_generate_instances (comp, day_view->lower,
@@ -1033,9 +1045,8 @@ e_day_view_init (EDayView *day_view)
target_table, n_targets,
GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_ASK);
- /* Set the default model */
- model = E_CAL_MODEL (e_cal_model_calendar_new ());
- e_calendar_view_set_model (E_CALENDAR_VIEW (day_view), model);
+ /* Get the model */
+ model = e_calendar_view_get_model (E_CALENDAR_VIEW (day_view));
/* connect to ECalModel's signals */
g_signal_connect (G_OBJECT (model), "time_range_changed",