diff options
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ChangeLog | 16 | ||||
-rw-r--r-- | shell/e-shell-offline-sync.c | 56 |
2 files changed, 33 insertions, 39 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog index ee6e38cc50..6852ecbd51 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,5 +1,21 @@ 2002-11-25 Ettore Perazzoli <ettore@ximian.com> + * e-shell-offline-sync.c (e_shell_offline_sync_all_folders): + Filled in, use GConf. + (cleanup): Re-enabled again. + (sync_folder): Likewise. + (progress_dialog_close_callback): Likewise. + (progress_dialog_clicked_callback): Likewise. + (setup_dialog): Likewise. + (setup_progress_listener): Likewise. + (impl_SyncFolderProgressListener_reportFailure): Likewise. + (impl_SyncFolderProgressListener_reportSuccess): Likewise. + (impl_SyncFolderProgressListener_updateProgress): Likewise. + (progress_listener_servant_free): Likewise. + (progress_listener_servant_new): Likewise. + +2002-11-25 Ettore Perazzoli <ettore@ximian.com> + * evolution-storage-set-view.c (impl_StorageSetView__set_checkedFolders): Updated to pass a GSList to e_storage_set_view_set_checkboxes_list() [instead of a diff --git a/shell/e-shell-offline-sync.c b/shell/e-shell-offline-sync.c index 67e33fd99b..dd10c58db2 100644 --- a/shell/e-shell-offline-sync.c +++ b/shell/e-shell-offline-sync.c @@ -31,6 +31,8 @@ #include "Evolution.h" +#include <gconf/gconf-client.h> + #include <gal/widgets/e-gui-utils.h> #include <gtk/gtklabel.h> @@ -84,7 +86,6 @@ struct _SyncData { /* The progress listener interface. */ -#if 0 /* FIXME */ static PortableServer_ServantBase__epv SyncFolderProgressListener_base_epv; static POA_GNOME_Evolution_SyncFolderProgressListener__epv SyncFolderProgressListener_epv; static POA_GNOME_Evolution_SyncFolderProgressListener__vepv SyncFolderProgressListener_vepv; @@ -207,12 +208,10 @@ setup_progress_listener (SyncData *sync_data) return TRUE; } -#endif /* Setting up the progress dialog. */ -#if 0 static int progress_dialog_close_callback (GnomeDialog *dialog, void *data) @@ -256,10 +255,8 @@ setup_dialog (SyncData *sync_data) gtk_widget_show_all (sync_data->dialog); } -#endif -#if 0 /* Sync the folder at the specified @folder_path. */ static void sync_folder (SyncData *sync_data, @@ -366,9 +363,7 @@ sync_folder (SyncData *sync_data, CORBA_free (corba_folder); CORBA_exception_free (&ev); } -#endif -#if 0 /* Free up the data needed for syncing. */ static void cleanup (SyncData *sync_data) @@ -390,41 +385,22 @@ cleanup (SyncData *sync_data) CORBA_exception_free (&ev); } -#endif void e_shell_offline_sync_all_folders (EShell *shell, GtkWindow *parent_window) { -#if 0 /* FIXME */ - Bonobo_ConfigDatabase config_db; - CORBA_sequence_CORBA_string *folder_path_sequence; - CORBA_any *any; - CORBA_Environment ev; + GConfClient *gconf_client; SyncData *sync_data; + GSList *path_list; + GSList *p; int i; - config_db = e_shell_get_config_db (shell); - - CORBA_exception_init (&ev); - - /* Get the paths for the folders to sync up. */ - - any = Bonobo_ConfigDatabase_getValue (config_db, "/OfflineFolders/paths", "", &ev); - if (BONOBO_EX (&ev)) { - g_warning ("Cannot get /OfflineFolders/paths from ConfigDatabase -- %s", BONOBO_EX_ID (&ev)); - CORBA_exception_free (&ev); - return; - } - if (! CORBA_TypeCode_equal (any->_type, TC_CORBA_sequence_CORBA_string, &ev) || BONOBO_EX (&ev)) { - g_warning ("/OfflineFolders/Paths in ConfigDatabase is not the expected type"); - CORBA_free (any); - CORBA_exception_free (&ev); - return; - } + gconf_client = gconf_client_get_default (); - folder_path_sequence = (CORBA_sequence_CORBA_string *) any->_value; + path_list = gconf_client_get_list (gconf_client, "/apps/evolution/shell/offline/folder_paths", + GCONF_VALUE_STRING, NULL); sync_data = g_new0 (SyncData, 1); sync_data->shell = shell; @@ -436,10 +412,12 @@ e_shell_offline_sync_all_folders (EShell *shell, setup_dialog (sync_data); - for (i = 0; i < folder_path_sequence->_length; i ++) { - sync_folder (sync_data, - folder_path_sequence->_buffer[i], - i + 1, folder_path_sequence->_length); + for (p = path_list, i = 1; p != NULL; p = p->next, i ++) { + const char *path; + + path = (const char *) p->data; + + sync_folder (sync_data, path, i, g_slist_length (path_list)); /* If the operation has been cancelled, stop syncing and return. */ @@ -449,10 +427,10 @@ e_shell_offline_sync_all_folders (EShell *shell, break; } } + done: cleanup (sync_data); - CORBA_free (folder_path_sequence); - CORBA_exception_free (&ev); -#endif + g_slist_foreach (path_list, (GFunc) g_free, NULL); + g_slist_free (path_list); } |