X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmaemo%2Fmodest-msg-view-window.c;h=5316dd3329ca722cd9748dc54722545a15018ff6;hb=03cea934ab725b777fa4ce22917b069e2f219c3d;hp=2df64699cdc3f319a33b9f72e7ed65f622e9330e;hpb=51fbd931b1da97fb6a1512fa2ad99c19ce996672;p=modest diff --git a/src/maemo/modest-msg-view-window.c b/src/maemo/modest-msg-view-window.c index 2df6469..5316dd3 100644 --- a/src/maemo/modest-msg-view-window.c +++ b/src/maemo/modest-msg-view-window.c @@ -47,7 +47,7 @@ #include #include #include -#include "modest-progress-bar-widget.h" +#include "modest-progress-bar.h" #include "modest-defs.h" #include "modest-hildon-includes.h" #include "modest-ui-dimming-manager.h" @@ -538,10 +538,8 @@ init_window (ModestMsgViewWindow *obj) { GtkWidget *main_vbox; ModestMsgViewWindowPrivate *priv; - ModestWindowPrivate *parent_priv; priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE(obj); - parent_priv = MODEST_WINDOW_GET_PRIVATE(obj); priv->msg_view = GTK_WIDGET (tny_platform_factory_new_msg_view (modest_tny_platform_factory_get_instance ())); modest_msg_view_set_shadow_type (MODEST_MSG_VIEW (priv->msg_view), GTK_SHADOW_NONE); @@ -690,7 +688,8 @@ select_next_valid_row (GtkTreeModel *model, gboolean cycle) { GtkTreeIter tmp_iter; - GtkTreePath *path, *next; + GtkTreePath *path; + GtkTreePath *next = NULL; gboolean retval = FALSE; g_return_val_if_fail (gtk_tree_row_reference_valid (*row_reference), FALSE); @@ -716,6 +715,8 @@ select_next_valid_row (GtkTreeModel *model, /* Free */ gtk_tree_path_free (path); + if (next) + gtk_tree_path_free (next); return retval; } @@ -1185,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); @@ -1195,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, @@ -1806,6 +1803,9 @@ view_msg_cb (ModestMailOperation *mail_op, if (priv->row_reference != NULL) { gtk_tree_row_reference_free (priv->row_reference); priv->row_reference = gtk_tree_row_reference_copy (row_reference); + if (priv->next_row_reference != NULL) { + gtk_tree_row_reference_free (priv->next_row_reference); + } priv->next_row_reference = gtk_tree_row_reference_copy (priv->row_reference); select_next_valid_row (priv->header_model, &(priv->next_row_reference), TRUE); gtk_tree_row_reference_free (row_reference); @@ -1854,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); @@ -2008,7 +2008,7 @@ modest_msg_view_window_show_toolbar (ModestWindow *self, toolbar_resize (MODEST_MSG_VIEW_WINDOW (self)); /* Add ProgressBar (Transfer toolbar) */ - priv->progress_bar = modest_progress_bar_widget_new (); + priv->progress_bar = modest_progress_bar_new (); gtk_widget_set_no_show_all (priv->progress_bar, TRUE); placeholder = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/ToolBar/ProgressbarView"); insert_index = gtk_toolbar_get_item_index(GTK_TOOLBAR (parent_priv->toolbar), GTK_TOOL_ITEM(placeholder)); @@ -2414,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); } } @@ -2503,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); } } @@ -2584,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); }