Dim "Reply to" commands when a message is in the outbox
[modest] / src / maemo / modest-msg-view-window.c
index 08c65d5..5316dd3 100644 (file)
@@ -1186,7 +1186,9 @@ modest_msg_view_window_get_header (ModestMsgViewWindow *self)
        /* If the message was not obtained from a treemodel,
         * for instance if it was opened directly by the search UI:
         */
-       if (priv->header_model == NULL || priv->row_reference == NULL) {
+       if (priv->header_model == NULL || 
+           priv->row_reference == NULL ||
+           !gtk_tree_row_reference_valid (priv->row_reference)) {
                msg = modest_msg_view_window_get_message (self);
                if (msg) {
                        header = tny_msg_get_header (msg);
@@ -1196,12 +1198,6 @@ modest_msg_view_window_get_header (ModestMsgViewWindow *self)
        }
 
        /* Get iter of the currently selected message in the header view: */
-       /* TODO: Why not just give this window a ref of the TnyHeader or TnyMessage,
-        * instead of sometimes retrieving it from the header view?
-        * Then we wouldn't be dependent on the message actually still being selected 
-        * in the header view. murrayc. */
-       if (!gtk_tree_row_reference_valid (priv->row_reference))
-               return NULL;
        path = gtk_tree_row_reference_get_path (priv->row_reference);
        g_return_val_if_fail (path != NULL, NULL);
        gtk_tree_model_get_iter (priv->header_model, 
@@ -1858,7 +1854,7 @@ modest_msg_view_window_get_folder_type (ModestMsgViewWindow *window)
 
                folder = tny_msg_get_folder (msg);
                if (folder) {
-                       folder_type = tny_folder_get_folder_type (folder);
+                       folder_type = modest_tny_folder_guess_folder_type (folder);
                        g_object_unref (folder);
                }
                g_object_unref (msg);
@@ -2418,7 +2414,6 @@ save_mime_part_info_free (SaveMimePartInfo *info, gboolean with_struct)
        info->pairs = NULL;
        if (with_struct) {
                gtk_widget_destroy (info->banner);
-               g_object_unref (info->banner);
                g_slice_free (SaveMimePartInfo, info);
        }
 }
@@ -2507,9 +2502,8 @@ save_mime_parts_to_file_with_checks (SaveMimePartInfo *info)
        } else {
                GtkWidget *banner = hildon_banner_show_animation (NULL, NULL, 
                                                                  _CS("sfil_ib_saving"));
-               info->banner = g_object_ref (banner);
+               info->banner = banner;
                g_thread_create ((GThreadFunc)save_mime_part_to_file, info, FALSE, NULL);
-               g_object_unref (banner);
        }
 
 }
@@ -2588,27 +2582,22 @@ modest_msg_view_window_save_attachments (ModestMsgViewWindow *window, TnyList *m
                        while (!tny_iterator_is_done (iter)) {
                                TnyMimePart *mime_part = (TnyMimePart *) tny_iterator_get_current (iter);
 
-                               tny_iterator_next (iter);
-                               if (tny_mime_part_is_attachment (mime_part)) {
+                               if ((tny_mime_part_is_attachment (mime_part)) && 
+                                   (tny_mime_part_get_filename (mime_part) != NULL)) {
                                        SaveMimePartPair *pair;
-
-                                       if ((!tny_iterator_is_done (iter)) &&
-                                           (tny_mime_part_get_filename (mime_part) == NULL)) {
-                                               g_object_unref (mime_part);
-                                               continue;
-                                       }
                                        
                                        pair = g_slice_new0 (SaveMimePartPair);
-                                       if (tny_iterator_is_done (iter)) {
-                                               pair->filename = g_strdup (chooser_uri);
-                                       } else {
+                                       if (save_multiple_str) {
                                                pair->filename = 
                                                        g_build_filename (chooser_uri,
                                                                          tny_mime_part_get_filename (mime_part), NULL);
+                                       } else {
+                                               pair->filename = g_strdup (chooser_uri);
                                        }
                                        pair->part = mime_part;
                                        files_to_save = g_list_prepend (files_to_save, pair);
                                }
+                               tny_iterator_next (iter);
                        }
                        g_object_unref (iter);
                }