* src/maemo/modest-msg-view-window.c:
authorJose Dapena Paz <jdapena@igalia.com>
Wed, 4 Jul 2007 12:37:50 +0000 (12:37 +0000)
committerJose Dapena Paz <jdapena@igalia.com>
Wed, 4 Jul 2007 12:37:50 +0000 (12:37 +0000)
        * Now we show a confirmation dialog for "next message"
          and "previous message" actions, when the message is
          not currently cached (fixes NB#59472).

pmo-trunk-r2561

src/maemo/modest-msg-view-window.c
src/widgets/modest-attachments-view.c

index a067cd3..ff345e0 100644 (file)
@@ -102,9 +102,10 @@ static void set_toolbar_mode (ModestMsgViewWindow *self,
 
 static gboolean set_toolbar_transfer_mode     (ModestMsgViewWindow *self); 
 
-
 static void update_window_title (ModestMsgViewWindow *window);
 
+static gboolean download_uncached_message (TnyHeader *header, GtkWindow *win);
+
 
 /* list my signals */
 enum {
@@ -1051,6 +1052,10 @@ modest_msg_view_window_select_next_message (ModestMsgViewWindow *window)
                        if (tny_header_get_flags (header) & TNY_HEADER_FLAG_DELETED)
                                continue;
 
+                       if (!download_uncached_message (header, GTK_WINDOW (window))) {
+                               break;
+                       }
+
                        /* Update the row reference */
                        gtk_tree_row_reference_free (priv->row_reference);
                        path = gtk_tree_model_get_path (priv->header_model, &tmp_iter);
@@ -1187,6 +1192,9 @@ modest_msg_view_window_select_previous_message (ModestMsgViewWindow *window)
                        continue;
                }
 
+               if (!download_uncached_message (header, GTK_WINDOW (window))) {
+                       break;
+               }
                /* Update the row reference */
                gtk_tree_row_reference_free (priv->row_reference);
                priv->row_reference = gtk_tree_row_reference_new (priv->header_model, path);
@@ -1927,4 +1935,21 @@ update_window_title (ModestMsgViewWindow *window)
        gtk_window_set_title (GTK_WINDOW (window), subject);
 }
 
+static gboolean 
+download_uncached_message (TnyHeader *header, GtkWindow *win)
+{
+       TnyHeaderFlags flags;
+       gboolean retval = TRUE;
+
+       flags = tny_header_get_flags (header);
 
+       if (! (flags & TNY_HEADER_FLAG_CACHED)) {
+               GtkResponseType response;
+               response = 
+                       modest_platform_run_confirmation_dialog (GTK_WINDOW (win),
+                                                                _("mcen_nc_get_msg"));
+               if (response == GTK_RESPONSE_CANCEL)
+                       retval = FALSE;
+       }
+       return retval;
+}
index e0b6501..09a7e77 100644 (file)
@@ -108,7 +108,7 @@ modest_attachments_view_set_message (ModestAttachmentsView *attachments_view, Tn
        
        if (msg == priv->msg) return;
 
-       if (priv->msg) 
+       if (priv->msg)
                g_object_unref (priv->msg);
        if (msg)
                g_object_ref (G_OBJECT(msg));