* 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
static gboolean set_toolbar_transfer_mode (ModestMsgViewWindow *self);
static gboolean set_toolbar_transfer_mode (ModestMsgViewWindow *self);
static void update_window_title (ModestMsgViewWindow *window);
static void update_window_title (ModestMsgViewWindow *window);
+static gboolean download_uncached_message (TnyHeader *header, GtkWindow *win);
+
/* list my signals */
enum {
/* list my signals */
enum {
if (tny_header_get_flags (header) & TNY_HEADER_FLAG_DELETED)
continue;
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);
/* Update the row reference */
gtk_tree_row_reference_free (priv->row_reference);
path = gtk_tree_model_get_path (priv->header_model, &tmp_iter);
+ 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);
/* Update the row reference */
gtk_tree_row_reference_free (priv->row_reference);
priv->row_reference = gtk_tree_row_reference_new (priv->header_model, path);
gtk_window_set_title (GTK_WINDOW (window), subject);
}
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;
+}
if (msg == priv->msg) return;
if (msg == priv->msg) return;
g_object_unref (priv->msg);
if (msg)
g_object_ref (G_OBJECT(msg));
g_object_unref (priv->msg);
if (msg)
g_object_ref (G_OBJECT(msg));