diff options
author | Dan Winship <danw@src.gnome.org> | 2003-03-15 02:13:58 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2003-03-15 02:13:58 +0800 |
commit | 0f75c9693668acf8e5a1f8ca3e7aa3cd2cd0d399 (patch) | |
tree | 3ca29899a3cfc9ee08329c99151c49fe0b55fed9 /shell/evolution-storage.c | |
parent | 1df1d4aead3ebacf457f637c6df2a5e8539b7fbf (diff) | |
download | gsoc2013-evolution-0f75c9693668acf8e5a1f8ca3e7aa3cd2cd0d399.tar.gz gsoc2013-evolution-0f75c9693668acf8e5a1f8ca3e7aa3cd2cd0d399.tar.zst gsoc2013-evolution-0f75c9693668acf8e5a1f8ca3e7aa3cd2cd0d399.zip |
add a Bonobo::Listener to this like the other async interfaces, rather
* Evolution-Storage.idl (asyncOpenFolder): add a Bonobo::Listener
to this like the other async interfaces, rather than having a
hacky way to signal failure.
* evolution-storage.c (impl_Storage_asyncOpenFolder): Update to
take a listener and emit it as part of the signal
(evolution_storage_class_init): update OPEN_FOLDER signal
prototype.
* e-shell-marshal.list (NONE:POINTER,STRING): add, for changed
EvolutionStorage open_folder signal
* e-storage.c (e_storage_async_open_folder): add a callback arg
(impl_async_open_folder): call the callback with NOTIMPLEMENTED.
(class_init): remove the CLOSE_FOLDER signal
(e_storage_has_subfolders): Don't emit CLOSE_FOLDER since it
doesn't exist any more, and this function is used for that side
effect any more anyway.
* e-corba-storage.c (async_open_folder): add the callback arg and
create a proper closure.
(async_open_folder_idle): Call the callback in case of error.
Create a listener and pass that to the CORBA call.
(async_open_cb): Listener callback.
* e-storage-set.c (storage_set_view_folder_opened): Pass a
callback to e_storage_async_open_folder.
(async_open_cb): emit CLOSE_FOLDER if the open failed
(storage_close_folder_cb): Remove this since the signal no longer
exists.
svn path=/trunk/; revision=20297
Diffstat (limited to 'shell/evolution-storage.c')
-rw-r--r-- | shell/evolution-storage.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/shell/evolution-storage.c b/shell/evolution-storage.c index 0b349e6319..aa11130911 100644 --- a/shell/evolution-storage.c +++ b/shell/evolution-storage.c @@ -453,16 +453,19 @@ impl_Storage_updateFolder (PortableServer_Servant servant, static void impl_Storage_asyncOpenFolder (PortableServer_Servant servant, const CORBA_char *path, + Bonobo_Listener listener, CORBA_Environment *ev) { BonoboObject *bonobo_object; EvolutionStorage *storage; + CORBA_Object obj_dup; bonobo_object = bonobo_object_from_servant (servant); storage = EVOLUTION_STORAGE (bonobo_object); + obj_dup = CORBA_Object_duplicate (listener, ev); g_signal_emit (storage, signals[OPEN_FOLDER], 0, - path); + obj_dup, path); } static void @@ -762,8 +765,9 @@ evolution_storage_class_init (EvolutionStorageClass *klass) G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (EvolutionStorageClass, open_folder), NULL, NULL, - e_shell_marshal_NONE__STRING, - G_TYPE_NONE, 1, + e_shell_marshal_NONE__POINTER_STRING, + G_TYPE_NONE, 2, + G_TYPE_POINTER, G_TYPE_STRING); signals[DISCOVER_SHARED_FOLDER] |