+ if (helper->parent)
+ g_object_unref (helper->parent);
+ if (helper->folder_name)
+ g_free (helper->folder_name);
+ g_slice_free (CreateFolderConnect, helper);
+}
+
+
+static void
+do_create_folder (GtkWindow *parent_window,
+ TnyFolderStore *suggested_parent,
+ const gchar *suggested_name)
+{
+ gint result;
+ gchar *folder_name = NULL;
+ TnyFolderStore *parent_folder = NULL;
+
+ result = modest_platform_run_new_folder_dialog (GTK_WINDOW (parent_window),
+ suggested_parent,
+ (gchar *) suggested_name,
+ &folder_name,
+ &parent_folder);
+
+ if (result == GTK_RESPONSE_ACCEPT && parent_folder) {
+ CreateFolderConnect *helper = (CreateFolderConnect *) g_slice_new0 (CreateFolderHelper);
+ helper->folder_name = g_strdup (folder_name);
+ helper->parent = g_object_ref (parent_folder);
+
+ modest_platform_connect_if_remote_and_perform (GTK_WINDOW (parent_window),
+ TRUE,
+ parent_folder,
+ do_create_folder_performer,
+ helper);
+ }
+
+ if (folder_name)
+ g_free (folder_name);
+ if (parent_folder)
+ g_object_unref (parent_folder);