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.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/shell/e-storage.c b/shell/e-storage.c
index 384e88af33..3ea687716c 100644
--- a/shell/e-storage.c
+++ b/shell/e-storage.c
@@ -49,6 +49,7 @@ struct _EStoragePrivate {
enum {
NEW_FOLDER,
+ UPDATED_FOLDER,
REMOVED_FOLDER,
LAST_SIGNAL
};
@@ -174,6 +175,14 @@ class_init (EStorageClass *class)
gtk_marshal_NONE__STRING,
GTK_TYPE_NONE, 1,
GTK_TYPE_STRING);
+ signals[UPDATED_FOLDER] =
+ gtk_signal_new ("updated_folder",
+ GTK_RUN_FIRST,
+ object_class->type,
+ GTK_SIGNAL_OFFSET (EStorageClass, updated_folder),
+ gtk_marshal_NONE__STRING,
+ GTK_TYPE_NONE, 1,
+ GTK_TYPE_STRING);
signals[REMOVED_FOLDER] =
gtk_signal_new ("removed_folder",
GTK_RUN_FIRST,
@@ -437,6 +446,27 @@ e_storage_new_folder (EStorage *storage,
}
gboolean
+e_storage_updated_folder (EStorage *storage,
+ const char *path)
+{
+ EStoragePrivate *priv;
+
+ g_return_val_if_fail (storage != NULL, FALSE);
+ g_return_val_if_fail (E_IS_STORAGE (storage), FALSE);
+ g_return_val_if_fail (path != NULL, FALSE);
+ g_return_val_if_fail (g_path_is_absolute (path), FALSE);
+
+ priv = storage->priv;
+
+ if (e_folder_tree_get_folder (priv->folder_tree, path) == NULL)
+ return FALSE;
+
+ gtk_signal_emit (GTK_OBJECT (storage), signals[UPDATED_FOLDER], path);
+
+ return TRUE;
+}
+
+gboolean
e_storage_removed_folder (EStorage *storage,
const char *path)
{