+static void
+save_mime_part_to_file_connect_handler (gboolean canceled,
+ GError *err,
+ GtkWindow *parent_window,
+ TnyAccount *account,
+ SaveMimePartInfo *info)
+{
+ if (canceled || err) {
+ g_idle_add ((GSourceFunc) idle_save_mime_part_show_result, info);
+ } else {
+ g_thread_create ((GThreadFunc)save_mime_part_to_file, info, FALSE, NULL);
+ }
+}
+
+static gboolean
+save_mime_part_to_file_connect_idle (SaveMimePartInfo *info)
+{
+ gboolean is_merge;
+ TnyAccount *account;
+ ModestMsgViewWindowPrivate *priv;
+
+ priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (info->window);
+
+ is_merge = g_str_has_prefix (priv->msg_uid, "merge:");
+ account = NULL;
+
+ /* Get the account */
+ if (!is_merge)
+ account = tny_account_store_find_account (TNY_ACCOUNT_STORE (modest_runtime_get_account_store ()),
+ priv->msg_uid);
+
+ modest_platform_connect_and_perform (GTK_WINDOW (info->window),
+ TRUE,
+ TNY_ACCOUNT (account),
+ (ModestConnectedPerformer) save_mime_part_to_file_connect_handler,
+ info);
+ return FALSE;
+}
+