+static void
+create_folder_cb (TnyFolderStore *parent_folder,
+ gboolean canceled,
+ TnyFolder *new_folder,
+ GError *err,
+ gpointer user_data)
+{
+ ModestMailOperationPrivate *priv;
+ CreateFolderInfo *info;
+
+ info = (CreateFolderInfo *) user_data;
+ priv = MODEST_MAIL_OPERATION_GET_PRIVATE (info->mail_op);
+
+ if (canceled || err) {
+ priv->status = MODEST_MAIL_OPERATION_STATUS_FAILED;
+ if (err)
+ priv->error = g_error_copy (err);
+ else
+ g_set_error (&(priv->error), MODEST_MAIL_OPERATION_ERROR,
+ MODEST_MAIL_OPERATION_ERROR_OPERATION_CANCELED,
+ "canceled");
+ } else {
+ priv->status = MODEST_MAIL_OPERATION_STATUS_SUCCESS;
+ }
+
+ /* The user will unref the new_folder */
+ if (info->callback)
+ info->callback (info->mail_op, parent_folder,
+ new_folder, info->user_data);
+
+ /* Notify about operation end */
+ modest_mail_operation_notify_end (info->mail_op);
+
+ /* Frees */
+ g_object_unref (info->mail_op);
+ g_slice_free (CreateFolderInfo, info);
+}
+
+void