aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-folder-utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/em-folder-utils.c')
-rw-r--r--mail/em-folder-utils.c164
1 files changed, 0 insertions, 164 deletions
diff --git a/mail/em-folder-utils.c b/mail/em-folder-utils.c
index b3d754369d..479d8783f6 100644
--- a/mail/em-folder-utils.c
+++ b/mail/em-folder-utils.c
@@ -51,24 +51,6 @@
#define d(x)
-typedef struct _AsyncContext AsyncContext;
-
-struct _AsyncContext {
- EMFolderTree *folder_tree;
- gchar *folder_uri;
-};
-
-static void
-async_context_free (AsyncContext *context)
-{
- if (context->folder_tree != NULL)
- g_object_unref (context->folder_tree);
-
- g_free (context->folder_uri);
-
- g_slice_free (AsyncContext, context);
-}
-
static gboolean
emfu_is_special_local_folder (const gchar *name)
{
@@ -530,152 +512,6 @@ em_folder_utils_copy_folder (GtkWindow *parent,
gtk_widget_destroy (dialog);
}
-static void
-new_folder_created_cb (CamelStore *store,
- GAsyncResult *result,
- AsyncContext *context)
-{
- GError *error = NULL;
-
- e_mail_store_create_folder_finish (store, result, &error);
-
- /* FIXME Use an EActivity here. */
- if (error != NULL) {
- e_notice (NULL, GTK_MESSAGE_ERROR, "%s", error->message);
- g_error_free (error);
-
- } else if (context->folder_tree != NULL) {
- gpointer data;
- gboolean expand_only;
-
- /* XXX What in the hell kind of lazy hack is this? */
- data = g_object_get_data (
- G_OBJECT (context->folder_tree), "select");
- expand_only = GPOINTER_TO_INT (data) ? FALSE : TRUE;
-
- em_folder_tree_set_selected (
- context->folder_tree,
- context->folder_uri, expand_only);
- }
-
- async_context_free (context);
-}
-
-void
-em_folder_utils_create_folder (GtkWindow *parent,
- EMailSession *session,
- EMFolderTree *emft,
- const gchar *initial_uri)
-{
- EMFolderSelector *selector;
- EMFolderTree *folder_tree;
- EMFolderTreeModel *model;
- EMailAccountStore *account_store;
- CamelStore *store = NULL;
- GtkWidget *dialog;
- GQueue queue = G_QUEUE_INIT;
- const gchar *caption;
- const gchar *folder_uri;
- gchar *folder_name = NULL;
- GError *error = NULL;
-
- g_return_if_fail (GTK_IS_WINDOW (parent));
- g_return_if_fail (E_IS_MAIL_SESSION (session));
-
- model = em_folder_tree_model_new ();
- em_folder_tree_model_set_session (model, session);
-
- account_store = e_mail_ui_session_get_account_store (E_MAIL_UI_SESSION (session));
- e_mail_account_store_queue_enabled_services (account_store, &queue);
-
- while (!g_queue_is_empty (&queue)) {
- CamelService *service;
- CamelStoreFlags flags;
-
- service = g_queue_pop_head (&queue);
- g_warn_if_fail (CAMEL_IS_STORE (service));
-
- flags = CAMEL_STORE (service)->flags;
- if ((flags & CAMEL_STORE_CAN_EDIT_FOLDERS) == 0)
- continue;
-
- em_folder_tree_model_add_store (model, CAMEL_STORE (service));
- }
-
- dialog = em_folder_selector_create_new (parent, model);
-
- gtk_window_set_title (GTK_WINDOW (dialog), _("Create Folder"));
-
- g_object_unref (model);
-
- selector = EM_FOLDER_SELECTOR (dialog);
-
- caption = _("Specify where to create the folder:");
- em_folder_selector_set_caption (selector, caption);
-
- folder_tree = em_folder_selector_get_folder_tree (selector);
-
- if (initial_uri != NULL)
- em_folder_tree_set_selected (folder_tree, initial_uri, FALSE);
-
- if (gtk_dialog_run (GTK_DIALOG (dialog)) != GTK_RESPONSE_OK)
- goto exit;
-
- folder_uri = em_folder_selector_get_selected_uri (selector);
- g_return_if_fail (folder_uri != NULL);
-
- e_mail_folder_uri_parse (
- CAMEL_SESSION (session), folder_uri,
- &store, &folder_name, &error);
-
- /* XXX This is unlikely to fail since the URI comes straight from
- * EMFolderSelector, but leave a breadcrumb if it does fail. */
- if (error != NULL) {
- g_warn_if_fail (store == NULL);
- g_warn_if_fail (folder_name == NULL);
- e_notice (parent, GTK_MESSAGE_ERROR, "%s", error->message);
- g_error_free (error);
- goto exit;
- }
-
- g_return_if_fail (folder_name != NULL);
-
- /* HACK: we need to create vfolders using the vfolder editor */
- if (CAMEL_IS_VEE_STORE (store)) {
- EFilterRule *rule;
- const gchar *skip_slash;
-
- if (*folder_name == '/')
- skip_slash = folder_name + 1;
- else
- skip_slash = folder_name;
-
- rule = em_vfolder_editor_rule_new (session);
- e_filter_rule_set_name (rule, skip_slash);
- vfolder_gui_add_rule (EM_VFOLDER_RULE (rule));
- } else {
- AsyncContext *context;
-
- context = g_slice_new0 (AsyncContext);
- context->folder_uri = e_mail_folder_uri_build (store, folder_name);
-
- if (EM_IS_FOLDER_TREE (emft))
- context->folder_tree = g_object_ref (emft);
-
- /* FIXME Not passing a GCancellable. */
- e_mail_store_create_folder (
- store, folder_name, G_PRIORITY_DEFAULT, NULL,
- (GAsyncReadyCallback) new_folder_created_cb,
- context);
- }
-
- g_free (folder_name);
- g_object_unref (store);
-
-exit:
- gtk_widget_destroy (dialog);
-}
-
const gchar *
em_folder_utils_get_icon_name (guint32 flags)
{