diff options
Diffstat (limited to 'calendar')
-rw-r--r-- | calendar/ChangeLog | 10 | ||||
-rw-r--r-- | calendar/pcs/cal-backend-file.c | 57 |
2 files changed, 18 insertions, 49 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index ed41ac0eec..2cba6aac9e 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,5 +1,15 @@ 2003-10-30 Rodrigo Moya <rodrigo@ximian.com> + * pcs/cal-backend-file.c (mark_dirty, save_idle): removed, since + we dont save the file anymore in idle callbacks. + (cal_backend_file_dispose): removed all traces of the idle saving. + (check_dup_uid, create_cal, cal_backend_file_add_timezone, + cal_backend_file_create_object, cal_backend_file_modify_object, + cal_backend_file_remove_object, cal_backend_file_receive_objects): + call save() directly instead of mark_dirty(). + +2003-10-30 Rodrigo Moya <rodrigo@ximian.com> + * pcs/cal-backend-file.c (cal_backend_file_modify_object): implemented THIS and ALL recurrences cases, blowing away or detaching recurrences from the main component as required. diff --git a/calendar/pcs/cal-backend-file.c b/calendar/pcs/cal-backend-file.c index ab7b23dc83..a3cd2c360f 100644 --- a/calendar/pcs/cal-backend-file.c +++ b/calendar/pcs/cal-backend-file.c @@ -65,9 +65,6 @@ struct _CalBackendFilePrivate { /* Config database handle for free/busy organizer information */ EConfigListener *config_listener; - /* Idle handler for saving the calendar when it is dirty */ - guint idle_id; - /* The calendar's default timezone, used for resolving DATE and floating DATE-TIME values. */ icaltimezone *default_zone; @@ -195,12 +192,6 @@ cal_backend_file_dispose (GObject *object) /* Save if necessary */ - if (priv->idle_id != 0) { - save (cbfile); - g_source_remove (priv->idle_id); - priv->idle_id = 0; - } - if (priv->comp_uid_hash) { g_hash_table_foreach (priv->comp_uid_hash, (GHFunc) free_object, NULL); g_hash_table_destroy (priv->comp_uid_hash); @@ -334,38 +325,6 @@ resolve_tzid (const char *tzid, gpointer user_data) return icalcomponent_get_timezone (vcalendar_comp, tzid); } -/* Idle handler; we save the calendar since it is dirty */ -static gboolean -save_idle (gpointer data) -{ - CalBackendFile *cbfile; - CalBackendFilePrivate *priv; - - cbfile = CAL_BACKEND_FILE (data); - priv = cbfile->priv; - - g_assert (priv->icalcomp != NULL); - - save (cbfile); - - priv->idle_id = 0; - return FALSE; -} - -/* Marks the file backend as dirty and queues a save operation */ -static void -mark_dirty (CalBackendFile *cbfile) -{ - CalBackendFilePrivate *priv; - - priv = cbfile->priv; - - if (priv->idle_id != 0) - return; - - priv->idle_id = g_idle_add (save_idle, cbfile); -} - /* Checks if the specified component has a duplicated UID and if so changes it */ static void check_dup_uid (CalBackendFile *cbfile, CalComponent *comp) @@ -393,7 +352,7 @@ check_dup_uid (CalBackendFile *cbfile, CalComponent *comp) * CREATED/DTSTAMP/LAST-MODIFIED. */ - mark_dirty (cbfile); + save (cbfile); } static const char * @@ -652,7 +611,7 @@ create_cal (CalBackendFile *cbfile, const char *uristr) priv->uri = g_strdup (uristr); - mark_dirty (cbfile); + save (cbfile); return GNOME_Evolution_Calendar_Success; } @@ -949,7 +908,7 @@ cal_backend_file_add_timezone (CalBackendSync *backend, Cal *cal, const char *tz if (!icalcomponent_get_timezone (priv->icalcomp, icaltimezone_get_tzid (zone))) { icalcomponent_add_component (priv->icalcomp, tz_comp); - mark_dirty (cbfile); + save (cbfile); } icaltimezone_free (zone, 1); @@ -1409,8 +1368,8 @@ cal_backend_file_create_object (CalBackendSync *backend, Cal *cal, const char *c /* Add the object */ add_component (cbfile, comp, TRUE); - /* Mark for saving */ - mark_dirty (cbfile); + /* Save the file */ + save (cbfile); /* Return the UID */ if (uid) @@ -1522,7 +1481,7 @@ cal_backend_file_modify_object (CalBackendSync *backend, Cal *cal, const char *c break; } - mark_dirty (cbfile); + save (cbfile); if (old_object) *old_object = cal_component_get_as_string (comp); @@ -1679,7 +1638,7 @@ cal_backend_file_remove_object (CalBackendSync *backend, Cal *cal, break; } - mark_dirty (cbfile); + save (cbfile); return GNOME_Evolution_Calendar_Success; } @@ -1842,7 +1801,7 @@ cal_backend_file_receive_objects (CalBackendSync *backend, Cal *cal, const char resolving any conflicting TZIDs. */ icalcomponent_merge_component (priv->icalcomp, toplevel_comp); - mark_dirty (cbfile); + save (cbfile); error: g_hash_table_destroy (tzdata.zones); |