- OpenMsgPerformerInfo *info;
- gchar *uri;
- TnyHeader *header;
- gchar *msg_uid;
- ModestWindowMgr *win_mgr;
- ModestWindow *msg_view = NULL;
- gboolean is_draft = FALSE;
- TnyFolder *folder = NULL;
- TnyMsg *msg = NULL;
-
- info = (OpenMsgPerformerInfo *) user_data;
- uri = info->uri;
-
- if (canceled || err) {
- goto frees;
- }
-
- /* Get folder */
- if (!account) {
- ModestTnyAccountStore *account_store;
- ModestTnyLocalFoldersAccount *local_folders_account;
-
- account_store = modest_runtime_get_account_store ();
- local_folders_account = MODEST_TNY_LOCAL_FOLDERS_ACCOUNT (
- modest_tny_account_store_get_local_folders_account (account_store));
- folder = modest_tny_local_folders_account_get_merged_outbox (local_folders_account);
- g_object_unref (local_folders_account);
- } else {
- folder = tny_store_account_find_folder (TNY_STORE_ACCOUNT (account), uri, NULL);
- }
-
-
- if (!folder) {
- g_idle_add (notify_msg_not_found_in_idle, NULL);
- goto frees;
- }
-
- if (modest_tny_folder_is_local_folder (folder) &&
- (modest_tny_folder_get_local_or_mmc_folder_type (folder) == TNY_FOLDER_TYPE_DRAFTS)) {
- is_draft = TRUE;
- }
-
- /* Get message */
- msg = tny_folder_find_msg (folder, uri, NULL);
- if (!msg) {
- g_idle_add (notify_msg_not_found_in_idle, NULL);
- goto frees;
- }
-
- header = tny_msg_get_header (msg);
- if (header && (tny_header_get_flags (header)&TNY_HEADER_FLAG_DELETED)) {
- g_object_unref (header);
- g_object_unref (msg);
- g_idle_add (notify_msg_not_found_in_idle, NULL);
- goto frees;
- }
- msg_uid = modest_tny_folder_get_header_unique_id (header);
- win_mgr = modest_runtime_get_window_mgr ();
-
- if (modest_window_mgr_find_registered_header (win_mgr, header, &msg_view)) {
- gtk_window_present (GTK_WINDOW(msg_view));
- } else {
-
- /* g_debug ("creating new window for this msg"); */
- modest_window_mgr_register_header (win_mgr, header, NULL);
-
- /* Drafts will be opened in the editor, and others will be opened in the viewer */
- if (is_draft) {
+ TnyHeader *header;
+ gchar *msg_uid;
+ ModestWindowMgr *win_mgr;
+ ModestWindow *msg_view = NULL;
+ gboolean is_draft = FALSE;
+ OpenMsgPerformerInfo *info = (OpenMsgPerformerInfo *) user_data;
+
+ if (err || cancelled) {
+ g_idle_add (notify_msg_not_found_in_idle, NULL);
+ goto end;
+ }
+
+ header = tny_msg_get_header (msg);
+ if (header && (tny_header_get_flags (header) & TNY_HEADER_FLAG_DELETED)) {
+ g_object_unref (header);
+ g_object_unref (msg);
+ g_idle_add (notify_msg_not_found_in_idle, NULL);
+ goto end;
+ }
+
+ msg_uid = modest_tny_folder_get_header_unique_id (header);
+ win_mgr = modest_runtime_get_window_mgr ();
+
+ if (modest_tny_folder_is_local_folder (folder) &&
+ (modest_tny_folder_get_local_or_mmc_folder_type (folder) == TNY_FOLDER_TYPE_DRAFTS)) {
+ is_draft = TRUE;
+ }
+
+ if (modest_window_mgr_find_registered_header (win_mgr, header, &msg_view)) {
+ gtk_window_present (GTK_WINDOW(msg_view));
+ } else {
+ const gchar *modest_account_name;
+ TnyAccount *account;
+
+ modest_window_mgr_register_header (win_mgr, header, NULL);
+
+ account = tny_folder_get_account (folder);
+ if (account) {
+ modest_account_name =
+ modest_tny_account_get_parent_modest_account_name_for_server_account (account);
+ } else {
+ modest_account_name = NULL;
+ }
+
+ /* Drafts will be opened in the editor, and others will be opened in the viewer */
+ if (is_draft) {