From 4c65eab5b1429f35b7dcd17c417cc4206989786a Mon Sep 17 00:00:00 2001 From: Ettore Perazzoli Date: Tue, 14 May 2002 21:34:59 +0000 Subject: Call e_shell_offline_sync_all_folders() if no connection is reported here. * e-shell-offline-handler.c (e_shell_offline_handler_put_components_offline): Call e_shell_offline_sync_all_folders() if no connection is reported here. (dialog_handle_ok): Sync all the folders here through e_shell_offline_sync_all_folders(). * e-shell-offline-sync.c: New. * e-shell-offline-sync.h: New. * Evolution-Offline.idl (syncFolder): Make oneway. (cancelSyncFolder): Likewise. (SyncFolderProgressListener::reportSuccess): New method. svn path=/trunk/; revision=16792 --- shell/Evolution-Offline.idl | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'shell/Evolution-Offline.idl') diff --git a/shell/Evolution-Offline.idl b/shell/Evolution-Offline.idl index 24973df174..97bfd0cc84 100644 --- a/shell/Evolution-Offline.idl +++ b/shell/Evolution-Offline.idl @@ -26,8 +26,12 @@ interface OfflineProgressListener { }; interface SyncFolderProgressListener { - /* Report that syncing is progressed @percent %. */ - void updateProgress (in float percent); + /* Report that syncing has progressed. @progress has to be between 0.0 + and 1.0. */ + void updateProgress (in float progress); + + /* Report that the operation has finished. */ + void reportSuccess (); /* Report an error. */ void reportFailure (in string message); @@ -42,25 +46,29 @@ interface Offline : Bonobo::Unknown { /* Ask the component to prepare to go into off-line mode. The component must return a list of the current active connections. - After this call, the shell is expected to either invoke - `::goOffline()' (actually complete the operation and go off-line) or - `::goOnline()' (operation cancelled). */ + After this call, the shell is expected to: (in order) + + 1. Invoke ::syncFolder for each of the component's folders that + need to be synchronized to disk for offline usage. + + 2. Either invoke ::goOffline (actually complete the operation + and go off-line) or ::goOnline (operation cancelled). + */ void prepareForOffline (out ConnectionList active_connection_list); /* Request the component to sync the specified folder. This has to happen after ::prepareForOffline. */ - void syncFolder (in Folder folder, - in SyncFolderProgressListener listener) + oneway void syncFolder (in Folder folder, + in SyncFolderProgressListener listener) raises (notPrepared); /* Request the component to stop syncing the specified folder. This has to happen after ::syncFolder. */ - void cancelSyncFolder (in string evolution_uri, - in string physical_uri) + oneway void cancelSyncFolder (in Folder folder) raises (notSyncing); /* Ask the component to go into off-line mode. This always comes after - a `::prepareForOffline'. */ + a ::prepareForOffline. */ void goOffline (in OfflineProgressListener listener) raises (notPrepared); -- cgit