aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-storage.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/e-storage.c')
-rw-r--r--shell/e-storage.c27
1 files changed, 15 insertions, 12 deletions
diff --git a/shell/e-storage.c b/shell/e-storage.c
index f4a8e5ff26..0a56e3569f 100644
--- a/shell/e-storage.c
+++ b/shell/e-storage.c
@@ -61,6 +61,7 @@ enum {
NEW_FOLDER,
UPDATED_FOLDER,
REMOVED_FOLDER,
+ ASYNC_OPEN_FOLDER,
LAST_SIGNAL
};
@@ -212,15 +213,6 @@ impl_async_xfer_folder (EStorage *storage,
(* callback) (storage, E_STORAGE_NOTIMPLEMENTED, data);
}
-static void
-impl_async_open_folder (EStorage *storage,
- const char *path,
- EStorageDiscoveryCallback callback,
- void *data)
-{
- (*callback) (storage, E_STORAGE_NOTIMPLEMENTED, path, data);
-}
-
static gboolean
impl_supports_shared_folders (EStorage *storage)
{
@@ -265,7 +257,6 @@ class_init (EStorageClass *class)
class->async_create_folder = impl_async_create_folder;
class->async_remove_folder = impl_async_remove_folder;
class->async_xfer_folder = impl_async_xfer_folder;
- class->async_open_folder = impl_async_open_folder;
class->supports_shared_folders = impl_supports_shared_folders;
class->async_discover_shared_folder = impl_async_discover_shared_folder;
@@ -298,6 +289,17 @@ class_init (EStorageClass *class)
e_shell_marshal_NONE__STRING,
G_TYPE_NONE, 1,
G_TYPE_STRING);
+ signals[ASYNC_OPEN_FOLDER] =
+ g_signal_new ("async_open_folder",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (EStorageClass, async_open_folder),
+ NULL, NULL,
+ e_shell_marshal_NONE__STRING_POINTER_POINTER,
+ G_TYPE_NONE, 3,
+ G_TYPE_STRING,
+ G_TYPE_POINTER,
+ G_TYPE_POINTER);
}
static void
@@ -328,7 +330,7 @@ e_storage_construct (EStorage *storage,
priv = storage->priv;
- priv->name = g_strdup (name);
+ priv->name = g_strdup (name);
e_storage_new_folder (storage, "/", root_folder);
@@ -500,7 +502,8 @@ e_storage_async_open_folder (EStorage *storage,
return;
}
- (* ES_CLASS (storage)->async_open_folder) (storage, path, callback, data);
+ g_signal_emit (storage, signals[ASYNC_OPEN_FOLDER], 0,
+ path, callback, data);
}