aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--shell/ChangeLog7
-rw-r--r--shell/evolution-storage.c31
-rw-r--r--shell/evolution-storage.h6
3 files changed, 40 insertions, 4 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog
index bd43f67c14..0e668bb2ac 100644
--- a/shell/ChangeLog
+++ b/shell/ChangeLog
@@ -1,5 +1,12 @@
2001-10-26 Ettore Perazzoli <ettore@ximian.com>
+ * evolution-storage.c (impl_Storage_async_xfer_folder): Implement.
+ (class_init): Add the signal "xfer_folder" signal.
+
+ * evolution-storage.h: New signal "xfer_folder".
+
+2001-10-26 Ettore Perazzoli <ettore@ximian.com>
+
* e-corba-storage.c
(async_xfer_folder): New, implementation for the
::async_xfer_folder method.
diff --git a/shell/evolution-storage.c b/shell/evolution-storage.c
index a2159b5d0e..1948bbf790 100644
--- a/shell/evolution-storage.c
+++ b/shell/evolution-storage.c
@@ -69,6 +69,7 @@ enum {
CREATE_FOLDER,
REMOVE_FOLDER,
UPDATE_FOLDER,
+ XFER_FOLDER,
LAST_SIGNAL
};
@@ -294,7 +295,6 @@ impl_Storage_async_remove_folder (PortableServer_Servant servant,
{
BonoboObject *bonobo_object;
EvolutionStorage *storage;
-
CORBA_Object obj_dup;
bonobo_object = bonobo_object_from_servant (servant);
@@ -313,7 +313,16 @@ impl_Storage_async_xfer_folder (PortableServer_Servant servant,
const Bonobo_Listener listener,
CORBA_Environment *ev)
{
- g_print ("FIXME: impl_Storage_async_xfer_folder -- implement me!\n");
+ 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);
+ gtk_signal_emit (GTK_OBJECT (storage), signals[REMOVE_FOLDER],
+ obj_dup, source_path, destination_path, remove_source);
}
static void
@@ -521,7 +530,8 @@ class_init (EvolutionStorageClass *klass)
GTK_SIGNAL_OFFSET (EvolutionStorageClass,
create_folder),
e_marshal_NONE__POINTER_POINTER_POINTER_POINTER_POINTER,
- GTK_TYPE_INT, 4,
+ GTK_TYPE_INT, 5,
+ GTK_TYPE_POINTER,
GTK_TYPE_STRING,
GTK_TYPE_STRING,
GTK_TYPE_STRING,
@@ -533,9 +543,22 @@ class_init (EvolutionStorageClass *klass)
GTK_SIGNAL_OFFSET (EvolutionStorageClass,
remove_folder),
e_marshal_NONE__POINTER_POINTER_POINTER,
- GTK_TYPE_INT, 2,
+ GTK_TYPE_INT, 3,
+ GTK_TYPE_POINTER,
GTK_TYPE_STRING,
GTK_TYPE_STRING);
+
+ signals[XFER_FOLDER] = gtk_signal_new ("xfer_folder",
+ GTK_RUN_LAST,
+ object_class->type,
+ GTK_SIGNAL_OFFSET (EvolutionStorageClass,
+ xfer_folder),
+ e_marshal_NONE__POINTER_POINTER_POINTER_BOOL,
+ GTK_TYPE_INT, 4,
+ GTK_TYPE_POINTER,
+ GTK_TYPE_STRING,
+ GTK_TYPE_STRING,
+ GTK_TYPE_BOOL);
signals[UPDATE_FOLDER] = gtk_signal_new ("update_folder",
GTK_RUN_FIRST,
diff --git a/shell/evolution-storage.h b/shell/evolution-storage.h
index 73759612ee..41a46baf89 100644
--- a/shell/evolution-storage.h
+++ b/shell/evolution-storage.h
@@ -94,6 +94,12 @@ struct _EvolutionStorageClass {
const char *path,
const char *physical_uri);
+ void (*xfer_folder) (EvolutionStorage *storage,
+ const Bonobo_Listener listener,
+ const char *source_path,
+ const char *destination_path,
+ gboolean remove_source);
+
void (*update_folder) (EvolutionStorage *storage,
const char *path,
int unread_count);