From 571d39604123bf34f1a8932b8e3671c63ca43c42 Mon Sep 17 00:00:00 2001 From: Rodrigo Moya Date: Tue, 4 Nov 2003 12:47:14 +0000 Subject: added more menu items. (delete_calendar_cb): callbacks for new popup menu 2003-11-04 Rodrigo Moya * gui/calendar-component.c (fill_popup_menu_callback): added more menu items. (delete_calendar_cb): callbacks for new popup menu items. (impl_createControls): add the source selector widget to the CalendarComponentPrivate structure. * gui/migration.[ch] (migrate_old_tasks): new function to migrate old tasks setups. (process_old_dir): renamed and added a "filename" argument, so that the same function can be used for tasks and calendar directories. (migrate_old_calendars): added new argument when calling process_old_dir(). * gui/tasks-component.c (tasks_component_init): call migrate_old_tasks() if there are no groups defined. svn path=/trunk/; revision=23182 --- calendar/gui/migration.c | 33 ++++++++++++++++++++++++++++----- calendar/gui/migration.h | 1 + calendar/gui/tasks-component.c | 16 ++++++++++------ 3 files changed, 39 insertions(+), 11 deletions(-) (limited to 'calendar/gui') diff --git a/calendar/gui/migration.c b/calendar/gui/migration.c index be93309f1f..6dc16b8714 100644 --- a/calendar/gui/migration.c +++ b/calendar/gui/migration.c @@ -28,7 +28,7 @@ static gboolean process_calendar_dir (ESourceGroup *source_group, const char *path, - const char *name, const char *base_uri) + const char *filename, const char *name, const char *base_uri) { char *s; GnomeVFSURI *from, *to; @@ -37,7 +37,7 @@ process_calendar_dir (ESourceGroup *source_group, const char *path, GDir *dir; gboolean retval = TRUE; - s = g_build_filename (path, "calendar.ics", NULL); + s = g_build_filename (path, filename, NULL); if (!g_file_test (s, G_FILE_TEST_EXISTS)) { g_free (s); return FALSE; @@ -50,7 +50,7 @@ process_calendar_dir (ESourceGroup *source_group, const char *path, return FALSE; s = g_build_filename (e_source_group_peek_base_uri (source_group), base_uri, - "calendar.ics", NULL); + filename, NULL); if (e_mkdir_hier (s, 0700) != 0) { gnome_vfs_uri_unref (from); g_free (s); @@ -88,7 +88,7 @@ process_calendar_dir (ESourceGroup *source_group, const char *path, while ((name = g_dir_read_name (dir))) { tmp_s = g_build_filename (s, name, NULL); if (g_file_test (tmp_s, G_FILE_TEST_IS_DIR)) { - retval = process_calendar_dir (source_group, tmp_s, name, name); + retval = process_old_dir (source_group, tmp_s, filename, name, name); } g_free (tmp_s); @@ -119,7 +119,30 @@ migrate_old_calendars (ESourceGroup *source_group) /* look for the top-level calendar */ path = g_build_filename (g_get_home_dir (), "evolution/local/Calendar", NULL); - retval = process_calendar_dir (source_group, path, _("Personal"), "Personal"); + retval = process_old_dir (source_group, path, "calendar.ics", _("Personal"), "Personal"); + g_free (path); + + return retval; +} + +gboolean +migrate_old_tasks (ESourceGroup *source_group) +{ + char *path; + gboolean retval; + + g_return_val_if_fail (E_IS_SOURCE_GROUP (source_group), FALSE); + + path = g_build_filename (g_get_home_dir (), "evolution", NULL); + if (!g_file_test (path, G_FILE_TEST_IS_DIR)) { + g_free (path); + return FALSE; + } + g_free (path); + + /* look for the top-level calendar */ + path = g_build_filename (g_get_home_dir (), "evolution/local/Tasks", NULL); + retval = process_old_dir (source_group, path, "tasks.ics", _("Personal"), "Personal"); g_free (path); return retval; diff --git a/calendar/gui/migration.h b/calendar/gui/migration.h index 2453d47abd..3d0f9a04b1 100644 --- a/calendar/gui/migration.h +++ b/calendar/gui/migration.h @@ -26,5 +26,6 @@ #include gboolean migrate_old_calendars (ESourceGroup *source_group); +gboolean migrate_old_tasks (ESourceGroup *source_group); #endif diff --git a/calendar/gui/tasks-component.c b/calendar/gui/tasks-component.c index a6b7062b9c..4e5de7c692 100644 --- a/calendar/gui/tasks-component.c +++ b/calendar/gui/tasks-component.c @@ -305,14 +305,18 @@ tasks_component_init (TasksComponent *component, TasksComponentClass *klass) group = e_source_group_new (_("On This Computer"), base_uri); e_source_list_add_group (priv->source_list, group, -1); - /* FIXME: migrate tasks from older setups */ - new_dir = g_build_filename (base_uri, "Personal/", NULL); - if (!e_mkdir_hier (new_dir, 0700)) { - source = e_source_new (_("Personal"), "Personal"); - e_source_group_add_source (group, source, -1); + /* migrate tasks from older setup */ + if (!migrate_old_tasks (group)) { + /* create default tasks folders */ + new_dir = g_build_filename (base_uri, "Personal/", NULL); + if (!e_mkdir_hier (new_dir, 0700)) { + source = e_source_new (_("Personal"), "Personal"); + e_source_group_add_source (group, source, -1); + } + + g_free (new_dir); } - g_free (new_dir); g_free (base_uri); } -- cgit v1.2.3