aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-storage-set.c
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2002-10-01 02:41:05 +0800
committerDan Winship <danw@src.gnome.org>2002-10-01 02:41:05 +0800
commit45fd1767502d711d72087cae76c3d1acd7f46066 (patch)
tree78efae6fd605a5e867fe7b0f24ae8fb9dbce9443 /shell/e-storage-set.c
parentb887e5c2f6fdb8e7437093c3bc49fd439155e346 (diff)
downloadgsoc2013-evolution-45fd1767502d711d72087cae76c3d1acd7f46066.tar.gz
gsoc2013-evolution-45fd1767502d711d72087cae76c3d1acd7f46066.tar.zst
gsoc2013-evolution-45fd1767502d711d72087cae76c3d1acd7f46066.zip
Calls e_shell_command_remove_shared_folder. (file_verbs): Set up
* e-shell-view-menu.c (command_remove_other_users_folder): Calls e_shell_command_remove_shared_folder. (file_verbs): Set up command_remove_other_users_folder. * e-shell-folder-commands.c (e_shell_command_remove_shared_folder): New. Calls e_storage_set_async_remove_shared_folder with a callback to pop up an error dialog if it fails. * e-storage-set.c (e_storage_set_async_remove_shared_folder): Implement. Mostly like async_remove_folder. * e-storage.c (e_storage_supports_shared_folders, e_storage_async_discover_shared_folder, e_storage_async_remove_shared_folder): New methods. Default implementations return FALSE, NOTIMPLEMENTED, and NOTIMPLEMENTED. * e-corba-storage.c (supports_shared_folders, async_discover_shared_folder, async_remove_shared_folder): Implement using CORBA. * Evolution-Storage.idl: add Storage_asyncRemoveSharedFolder * e-shell-shared-folder-picker-dialog.c: Remove all the CORBA stuff from here and use the new EStorage methods. (setup_server_option_menu): Use e_storage_supports_shared_folders. (discover_folder): Use e_storage_async_discover_shared_folder. * evolution-storage.c (impl_Storage_asyncRemoveSharedFolder): Implement this by emitting a REMOVE_SHARED_FOLDER signal. (impl_Storage_asyncDiscoverSharedFolder): Make the DISCOVER_SHARED_FOLDER signal put the Bonobo_Listener first like all the other signals do. (class_init): Set up REMOVE_SHARED_FOLDER signal. svn path=/trunk/; revision=18265
Diffstat (limited to 'shell/e-storage-set.c')
-rw-r--r--shell/e-storage-set.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/shell/e-storage-set.c b/shell/e-storage-set.c
index 6303ef9320..a7043df577 100644
--- a/shell/e-storage-set.c
+++ b/shell/e-storage-set.c
@@ -774,6 +774,38 @@ e_storage_set_async_xfer_folder (EStorageSet *storage_set,
storage_callback, storage_callback_data);
}
+void
+e_storage_set_async_remove_shared_folder (EStorageSet *storage_set,
+ const char *path,
+ EStorageSetResultCallback callback,
+ void *data)
+{
+ EStorage *storage;
+ const char *subpath;
+ StorageCallbackData *storage_callback_data;
+
+ g_return_if_fail (storage_set != NULL);
+ g_return_if_fail (E_IS_STORAGE_SET (storage_set));
+ g_return_if_fail (path != NULL);
+ g_return_if_fail (g_path_is_absolute (path));
+ g_return_if_fail (callback != NULL);
+
+ storage = get_storage_for_path (storage_set, path, &subpath);
+
+ if (!e_storage_supports_shared_folders (storage)) {
+ (* callback) (storage_set, E_STORAGE_NOTIMPLEMENTED, data);
+ return;
+ }
+
+ storage_callback_data = storage_callback_data_new (storage_set, callback,
+ path, NULL, OPERATION_REMOVE,
+ data);
+
+ e_storage_async_remove_shared_folder (storage, subpath,
+ storage_callback,
+ storage_callback_data);
+}
+
EFolderTypeRegistry *
e_storage_set_get_folder_type_registry (EStorageSet *storage_set)