aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-storage.h
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.h
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.h')
-rw-r--r--shell/e-storage.h57
1 files changed, 41 insertions, 16 deletions
diff --git a/shell/e-storage.h b/shell/e-storage.h
index 43ad6f442b..f017cacc1d 100644
--- a/shell/e-storage.h
+++ b/shell/e-storage.h
@@ -64,6 +64,7 @@ enum _EStorageResult {
typedef enum _EStorageResult EStorageResult;
typedef void (* EStorageResultCallback) (EStorage *storage, EStorageResult result, void *data);
+typedef void (* EStorageDiscoveryCallback) (EStorage *storage, EStorageResult result, const char *path, void *data);
#include "e-folder.h"
@@ -85,9 +86,11 @@ struct _EStorageClass {
/* Virtual methods. */
- GList * (* get_subfolder_paths) (EStorage *storage, const char *path);
- EFolder * (* get_folder) (EStorage *storage, const char *path);
- const char * (* get_name) (EStorage *storage);
+ GList * (* get_subfolder_paths) (EStorage *storage,
+ const char *path);
+ EFolder * (* get_folder) (EStorage *storage,
+ const char *path);
+ const char * (* get_name) (EStorage *storage);
void (* async_create_folder) (EStorage *storage,
const char *path,
@@ -111,25 +114,35 @@ struct _EStorageClass {
void (* async_open_folder) (EStorage *storage,
const char *path);
+ gboolean (* supports_shared_folders) (EStorage *storage);
+ void (* async_discover_shared_folder) (EStorage *storage,
+ const char *owner,
+ const char *folder_name,
+ EStorageDiscoveryCallback callback,
+ void *data);
+ void (* async_remove_shared_folder) (EStorage *storage,
+ const char *path,
+ EStorageResultCallback callback,
+ void *data);
};
-GtkType e_storage_get_type (void);
-void e_storage_construct (EStorage *storage,
- const char *name,
- EFolder *root_folder);
-EStorage *e_storage_new (const char *name,
- EFolder *root_folder);
+GtkType e_storage_get_type (void);
+void e_storage_construct (EStorage *storage,
+ const char *name,
+ EFolder *root_folder);
+EStorage *e_storage_new (const char *name,
+ EFolder *root_folder);
-gboolean e_storage_path_is_relative (const char *path);
-gboolean e_storage_path_is_absolute (const char *path);
+gboolean e_storage_path_is_relative (const char *path);
+gboolean e_storage_path_is_absolute (const char *path);
-GList *e_storage_get_subfolder_paths (EStorage *storage,
- const char *path);
-EFolder *e_storage_get_folder (EStorage *storage,
- const char *path);
+GList *e_storage_get_subfolder_paths (EStorage *storage,
+ const char *path);
+EFolder *e_storage_get_folder (EStorage *storage,
+ const char *path);
-const char *e_storage_get_name (EStorage *storage);
+const char *e_storage_get_name (EStorage *storage);
/* Folder operations. */
@@ -154,6 +167,18 @@ void e_storage_async_open_folder (EStorage *storage,
const char *e_storage_result_to_string (EStorageResult result);
+/* Shared folders. */
+gboolean e_storage_supports_shared_folders (EStorage *storage);
+void e_storage_async_discover_shared_folder (EStorage *storage,
+ const char *owner,
+ const char *folder_name,
+ EStorageDiscoveryCallback callback,
+ void *data);
+void e_storage_async_remove_shared_folder (EStorage *storage,
+ const char *path,
+ EStorageResultCallback callback,
+ void *data);
+
/* Utility functions. */
char *e_storage_get_path_for_physical_uri (EStorage *storage,