#include <modest-maemo-utils.h>
#include <modest-tny-msg.h>
#include <modest-msg-view-window.h>
+#include <modest-attachments-view.h>
#include <modest-main-window-ui.h>
+#include "modest-msg-view-window-ui-dimming.h"
#include <modest-widget-memory.h>
#include <modest-runtime.h>
#include <modest-window-priv.h>
#include "modest-defs.h"
#include "modest-hildon-includes.h"
#include <gtkhtml/gtkhtml-search.h>
+#include "modest-ui-dimming-manager.h"
#include <gdk/gdkkeysyms.h>
#define DEFAULT_FOLDER "MyDocs/.documents"
ModestMailOperationQueueNotification type,
ModestMsgViewWindow *self);
-static void view_msg_cb (const GObject *obj, const TnyMsg *msg, gpointer user_data);
+static void view_msg_cb (ModestMailOperation *mail_op, TnyHeader *header, TnyMsg *msg, gpointer user_data);
static void set_toolbar_mode (ModestMsgViewWindow *self,
ModestToolBarModes mode);
+static gboolean set_toolbar_transfer_mode (ModestMsgViewWindow *self);
/* list my signals */
enum {
gboolean optimized_view;
GtkTreeModel *header_model;
- GtkTreeIter iter;
+ GtkTreeRowReference *row_reference;
guint clipboard_change_handler;
guint queue_change_handler;
+
+ guint progress_bar_timeout;
};
#define MODEST_MSG_VIEW_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \
priv->clipboard_change_handler = 0;
priv->optimized_view = FALSE;
-
+ priv->progress_bar_timeout = 0;
}
+static gboolean
+set_toolbar_transfer_mode (ModestMsgViewWindow *self)
+{
+ ModestMsgViewWindowPrivate *priv = NULL;
+
+ g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW (self), FALSE);
+
+ priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE(self);
+
+ set_toolbar_mode (self, TOOLBAR_MODE_TRANSFER);
+
+ if (priv->progress_bar_timeout > 0) {
+ g_source_remove (priv->progress_bar_timeout);
+ priv->progress_bar_timeout = 0;
+ }
+
+ return FALSE;
+}
+
static void
set_toolbar_mode (ModestMsgViewWindow *self,
ModestToolBarModes mode)
g_signal_connect (G_OBJECT (priv->find_toolbar), "close", G_CALLBACK (modest_msg_view_window_find_toolbar_close), obj);
g_signal_connect (G_OBJECT (priv->find_toolbar), "search", G_CALLBACK (modest_msg_view_window_find_toolbar_search), obj);
- /* TODO: I dont knonw why, but when get_msg_async is used, */
- /* this code makes application doest not work (jfernandez) */
- if (FALSE) {
- priv->clipboard_change_handler = g_signal_connect (G_OBJECT (gtk_clipboard_get (GDK_SELECTION_PRIMARY)), "owner-change", G_CALLBACK (modest_msg_view_window_clipboard_owner_change), obj);
- modest_msg_view_window_clipboard_owner_change (gtk_clipboard_get (GDK_SELECTION_PRIMARY), NULL, obj);
- }
+ priv->clipboard_change_handler = g_signal_connect (G_OBJECT (gtk_clipboard_get (GDK_SELECTION_PRIMARY)), "owner-change", G_CALLBACK (modest_msg_view_window_clipboard_owner_change), obj);
gtk_widget_show_all (GTK_WIDGET(main_vbox));
gtk_box_pack_end (GTK_BOX (main_vbox), priv->find_toolbar, FALSE, FALSE, 0);
+
}
ModestMsgViewWindowPrivate *priv;
priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (obj);
- if (priv->header_model != NULL) {
- g_object_unref (priv->header_model);
- priv->header_model = NULL;
- }
if (priv->clipboard_change_handler > 0) {
g_signal_handler_disconnect (gtk_clipboard_get (GDK_SELECTION_PRIMARY), priv->clipboard_change_handler);
priv->clipboard_change_handler = 0;
}
-
- /* disconnet operations queue observer */
if (priv->queue_change_handler > 0) {
g_signal_handler_disconnect (G_OBJECT (modest_runtime_get_mail_operation_queue ()), priv->queue_change_handler);
priv->queue_change_handler = 0;
}
+ if (priv->header_model != NULL) {
+ g_object_unref (priv->header_model);
+ priv->header_model = NULL;
+ }
+
+ /* disconnet operations queue observer */
+ if (priv->progress_bar_timeout > 0) {
+ g_source_remove (priv->progress_bar_timeout);
+ priv->progress_bar_timeout = 0;
+ }
+
+ if (priv->row_reference) {
+ gtk_tree_row_reference_free (priv->row_reference);
+ priv->row_reference = NULL;
+ }
+
G_OBJECT_CLASS(parent_class)->finalize (obj);
}
ModestWindow *
modest_msg_view_window_new_with_header_model (TnyMsg *msg, const gchar *account_name,
- GtkTreeModel *model, GtkTreeIter iter)
+ GtkTreeModel *model, GtkTreeRowReference *row_reference)
{
ModestMsgViewWindow *window = NULL;
ModestMsgViewWindowPrivate *priv = NULL;
g_object_ref (model);
priv->header_model = model;
- priv->iter = iter;
+ priv->row_reference = gtk_tree_row_reference_copy (row_reference);
modest_msg_view_window_update_priority (window);
ModestWindow *
modest_msg_view_window_new (TnyMsg *msg, const gchar *account_name)
{
- GObject *obj;
- ModestMsgViewWindowPrivate *priv;
- ModestWindowPrivate *parent_priv;
- GtkActionGroup *action_group;
+ ModestMsgViewWindow *self = NULL;
+ GObject *obj = NULL;
+ ModestMsgViewWindowPrivate *priv = NULL;
+ ModestWindowPrivate *parent_priv = NULL;
+ ModestDimmingRulesGroup *rules_group = NULL;
+ GtkActionGroup *action_group = NULL;
GError *error = NULL;
GdkPixbuf *window_icon = NULL;
+ GtkAction *action = NULL;
g_return_val_if_fail (msg, NULL);
obj = g_object_new(MODEST_TYPE_MSG_VIEW_WINDOW, NULL);
priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE(obj);
parent_priv = MODEST_WINDOW_GET_PRIVATE(obj);
-
+ self = MODEST_MSG_VIEW_WINDOW (obj);
+
parent_priv->ui_manager = gtk_ui_manager_new();
+ parent_priv->ui_dimming_manager = modest_ui_dimming_manager_new();
+
action_group = gtk_action_group_new ("ModestMsgViewWindowActions");
gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);
+ rules_group = modest_dimming_rules_group_new ("ModestCommonDimmingRules");
+
/* Add common actions */
gtk_action_group_add_actions (action_group,
modest_action_entries,
}
/* ****** */
+ /* Add common dimming rules */
+ modest_dimming_rules_group_add_rules (rules_group,
+ modest_msg_view_dimming_entries,
+ G_N_ELEMENTS (modest_msg_view_dimming_entries),
+ self);
+
+ /* Insert dimming rules group for this window */
+ modest_ui_dimming_manager_insert_rules_group (parent_priv->ui_dimming_manager, rules_group);
+ g_object_unref (rules_group);
+
/* Add accelerators */
gtk_window_add_accel_group (GTK_WINDOW (obj),
gtk_ui_manager_get_accel_group (parent_priv->ui_manager));
window_icon = modest_platform_get_icon (MODEST_APP_MSG_VIEW_ICON);
gtk_window_set_icon (GTK_WINDOW (obj), window_icon);
+ /* Init the clipboard actions dim status */
+ action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/EditMenu/EditCopyMenu");
+ gtk_action_set_sensitive (action, FALSE);
+
+ action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/EditMenu/EditCutMenu");
+ gtk_action_set_sensitive (action, FALSE);
+
gtk_widget_grab_focus (priv->msg_view);
return MODEST_WINDOW(obj);
+TnyHeader*
+modest_msg_view_window_get_header (ModestMsgViewWindow *self)
+{
+ ModestMsgViewWindowPrivate *priv= NULL;
+ TnyHeader *header = NULL;
+ GtkTreeIter iter;
+
+ g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW (self), NULL);
+ priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (self);
+
+ /* Get current message iter */
+ gtk_tree_model_get_iter (priv->header_model,
+ &iter,
+ gtk_tree_row_reference_get_path (priv->row_reference));
+
+ /* Get current message header */
+ gtk_tree_model_get (priv->header_model, &iter,
+ TNY_GTK_HEADER_LIST_MODEL_INSTANCE_COLUMN,
+ &header, -1);
+
+ return header;
+}
+
TnyMsg*
modest_msg_view_window_get_message (ModestMsgViewWindow *self)
{
retval = tny_header_get_uid (header);
g_object_unref (header);
}
+ g_object_unref (msg);
+
return retval;
}
priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
if (priv->header_model) {
- path = gtk_tree_model_get_path (priv->header_model, &priv->iter);
+ path = gtk_tree_row_reference_get_path (priv->row_reference);
if (!path)
return TRUE;
while (!has_next) {
}
}
- gtk_tree_path_free (path);
return !has_next;
} else {
return TRUE;
if (priv->header_model) {
gchar * path_string;
- path = gtk_tree_model_get_path (priv->header_model, &priv->iter);
+ path = gtk_tree_row_reference_get_path (priv->row_reference);
if (!path)
return TRUE;
}
g_free (path_string);
}
- gtk_tree_path_free (path);
return result;
} else {
return TRUE;
gboolean
modest_msg_view_window_select_next_message (ModestMsgViewWindow *window)
{
+ TnyHeaderFlags flags;
ModestMailOperation *mail_op = NULL;
ModestMsgViewWindowPrivate *priv;
GtkTreeIter tmp_iter;
priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
if (priv->header_model) {
- tmp_iter = priv->iter;
+ gtk_tree_model_get_iter (priv->header_model,
+ &tmp_iter,
+ gtk_tree_row_reference_get_path (priv->row_reference));
while (gtk_tree_model_iter_next (priv->header_model, &tmp_iter)) {
TnyHeader *header;
- guint op_status;
+ GtkTreePath *path;
- priv->iter = tmp_iter;
- gtk_tree_model_get (priv->header_model, &(priv->iter), TNY_GTK_HEADER_LIST_MODEL_INSTANCE_COLUMN,
+ gtk_tree_model_get (priv->header_model, &tmp_iter, TNY_GTK_HEADER_LIST_MODEL_INSTANCE_COLUMN,
&header, -1);
if (!header)
break;
if (tny_header_get_flags (header) & TNY_HEADER_FLAG_DELETED)
continue;
+ /* Update the row reference */
+ gtk_tree_row_reference_free (priv->row_reference);
+ path = gtk_tree_model_get_path (priv->header_model, &tmp_iter);
+ priv->row_reference = gtk_tree_row_reference_new (priv->header_model, path);
+ gtk_tree_path_free (path);
+
+ /* Mark as read */
+ flags = tny_header_get_flags (header);
+ if (!(flags & TNY_HEADER_FLAG_SEEN))
+ tny_header_set_flags (header, flags | TNY_HEADER_FLAG_SEEN);
+
/* New mail operation */
- mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_ID_RECEIVE, G_OBJECT(window));
+ mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(window));
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op);
modest_mail_operation_get_msg (mail_op, header, view_msg_cb, NULL);
- op_status = modest_mail_operation_get_status (mail_op);
-
g_object_unref (mail_op);
- if (op_status == MODEST_MAIL_OPERATION_STATUS_FAILED)
- return FALSE;
- else
- return TRUE;
+ return TRUE;
}
-
- return FALSE;
- } else {
- return FALSE;
}
+ return FALSE;
}
+gboolean
+modest_msg_view_window_select_first_message (ModestMsgViewWindow *self)
+{
+ ModestMsgViewWindowPrivate *priv = NULL;
+ ModestMailOperation *mail_op = NULL;
+ TnyHeader *header = NULL;
+ TnyHeaderFlags flags;
+ GtkTreePath *path = NULL;
+ GtkTreeIter iter;
+
+ g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW (self), FALSE);
+ priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (self);
+
+ path = gtk_tree_path_new_from_string ("0");
+
+ /* Update the row reference */
+ /* Get first message */
+ gtk_tree_model_get_iter (priv->header_model, &iter, path);
+ gtk_tree_model_get (priv->header_model, &iter, TNY_GTK_HEADER_LIST_MODEL_INSTANCE_COLUMN,
+ &header, -1);
+
+ g_return_val_if_fail (TNY_IS_HEADER (header), FALSE);
+ if (tny_header_get_flags (header) & TNY_HEADER_FLAG_DELETED)
+ return modest_msg_view_window_select_next_message (self);
+
+ /* 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_tree_path_free (path);
+
+ /* Mark as read */
+ flags = tny_header_get_flags (header);
+ if (!(flags & TNY_HEADER_FLAG_SEEN))
+ tny_header_set_flags (header, flags | TNY_HEADER_FLAG_SEEN);
+
+ /* New mail operation */
+ mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(self));
+ modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op);
+ modest_mail_operation_get_msg (mail_op, header, view_msg_cb, NULL);
+ g_object_unref (mail_op);
+
+ /* Free */
+/* g_object_unref (header); */
+
+ return TRUE;
+}
+
gboolean
modest_msg_view_window_select_previous_message (ModestMsgViewWindow *window)
{
+ TnyHeaderFlags flags;
ModestMsgViewWindowPrivate *priv = NULL;
ModestMailOperation *mail_op = NULL;
if (priv->header_model) {
GtkTreePath *path;
- path = gtk_tree_model_get_path (priv->header_model, &(priv->iter));
+ path = gtk_tree_row_reference_get_path (priv->row_reference);
while (gtk_tree_path_prev (path)) {
TnyHeader *header;
- guint op_status;
+ GtkTreeIter iter;
- gtk_tree_model_get_iter (priv->header_model, &(priv->iter), path);
- gtk_tree_model_get (priv->header_model, &(priv->iter), TNY_GTK_HEADER_LIST_MODEL_INSTANCE_COLUMN,
+ gtk_tree_model_get_iter (priv->header_model, &iter, path);
+ gtk_tree_model_get (priv->header_model, &iter, TNY_GTK_HEADER_LIST_MODEL_INSTANCE_COLUMN,
&header, -1);
if (!header)
break;
if (tny_header_get_flags (header) & TNY_HEADER_FLAG_DELETED)
continue;
+
+ /* Update the row reference */
+ gtk_tree_row_reference_free (priv->row_reference);
+ priv->row_reference = gtk_tree_row_reference_new (priv->header_model, path);
+ /* Mark as read */
+ flags = tny_header_get_flags (header);
+ if (!(flags & TNY_HEADER_FLAG_SEEN))
+ tny_header_set_flags (header, flags | TNY_HEADER_FLAG_SEEN);
+
/* New mail operation */
- mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_ID_RECEIVE, G_OBJECT(window));
+ mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(window));
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op);
- modest_mail_operation_get_msg (mail_op, header, view_msg_cb, NULL);
-
- gtk_tree_path_free (path);
+ modest_mail_operation_get_msg (mail_op, header, view_msg_cb, NULL);
- op_status = modest_mail_operation_get_status (mail_op);
- if (op_status == MODEST_MAIL_OPERATION_STATUS_FAILED)
- return FALSE;
- else
- return TRUE;
+ return TRUE;
}
- } else {
- return FALSE;
}
return FALSE;
}
static void
-view_msg_cb(const GObject *obj, const TnyMsg *msg, gpointer user_data)
+view_msg_cb (ModestMailOperation *mail_op,
+ TnyHeader *header,
+ TnyMsg *msg,
+ gpointer user_data)
{
ModestMsgViewWindow *self = NULL;
ModestMsgViewWindowPrivate *priv = NULL;
- TnyMsg *new_msg = NULL;
-
- g_return_if_fail (MODEST_IS_MSG_VIEW_WINDOW (obj));
+
g_return_if_fail (TNY_IS_MSG (msg));
- self = MODEST_MSG_VIEW_WINDOW (obj);
+
+ /* Get the window */
+ self = (ModestMsgViewWindow *) modest_mail_operation_get_source (mail_op);
+ g_return_if_fail (MODEST_IS_MSG_VIEW_WINDOW (self));
+
priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (self);
/* Set new message */
- new_msg = g_object_ref (G_OBJECT(msg));
- modest_msg_view_set_message (MODEST_MSG_VIEW (priv->msg_view), new_msg);
+ modest_msg_view_set_message (MODEST_MSG_VIEW (priv->msg_view), msg);
modest_msg_view_window_update_dimmed (self);
modest_msg_view_window_update_priority (self);
gtk_widget_grab_focus (priv->msg_view);
g_object_unref (folder);
}
+ g_object_unref (msg);
}
return folder_type;
GList *attachments, *node;
gint n_selected;
gboolean selected_messages = FALSE;
+ gboolean nested_attachments = FALSE;
parent_priv = MODEST_WINDOW_GET_PRIVATE (window);
priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
widget = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/MessageMenu/MessageForwardMenu");
gtk_action_set_sensitive (widget, !is_not_sent);
+ /* Attachment actions dimming */
attachments = modest_msg_view_get_selected_attachments (MODEST_MSG_VIEW (priv->msg_view));
n_selected = g_list_length (attachments);
for (node = attachments; node != NULL; node = g_list_next (node)) {
- if (!tny_mime_part_is_attachment (TNY_MIME_PART (node->data))) {
+ TnyMimePart *mime_part = TNY_MIME_PART (node->data);
+ TnyList *nested_list = tny_simple_list_new ();
+ if (!tny_mime_part_is_attachment (mime_part)) {
selected_messages = TRUE;
break;
}
+ tny_mime_part_get_parts (mime_part, nested_list);
+ if (tny_list_get_length (nested_list) > 0)
+ nested_attachments = TRUE;
+ g_object_unref (nested_list);
}
g_list_free (attachments);
widget = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/AttachmentsMenu/ViewAttachmentMenu");
gtk_action_set_sensitive (widget, n_selected == 1);
widget = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/AttachmentsMenu/SaveAttachmentMenu");
- gtk_action_set_sensitive (widget, (n_selected > 0) && (!selected_messages));
-
+ gtk_action_set_sensitive (widget, (n_selected > 0) && (!selected_messages) && (!nested_attachments));
+
+ /* Dimming depending of message being an attachment or not. It's not an attachment if
+ * we opened it outside a folder view */
+ widget = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/MessageMenu/MessageDeleteMenu");
+ gtk_action_set_sensitive (widget, priv->header_model != NULL);
+ widget = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/EditMenu/EditMoveToMenu");
+ gtk_action_set_sensitive (widget, priv->header_model != NULL);
+
}
static void
if (priv->header_model) {
TnyHeader *header;
+ GtkTreeIter iter;
- gtk_tree_model_get (priv->header_model, &(priv->iter), TNY_GTK_HEADER_LIST_MODEL_INSTANCE_COLUMN,
+ gtk_tree_model_get_iter (priv->header_model,
+ &iter,
+ gtk_tree_row_reference_get_path (priv->row_reference));
+
+ gtk_tree_model_get (priv->header_model, &iter, TNY_GTK_HEADER_LIST_MODEL_INSTANCE_COLUMN,
&header, -1);
flags = tny_header_get_flags (header);
}
priv->cancel_toolitem = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/ToolBar/ToolbarCancel");
priv->next_toolitem = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/ToolBar/ToolbarMessageNext");
priv->prev_toolitem = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/ToolBar/ToolbarMessageBack");
- gtk_tool_item_set_expand (GTK_TOOL_ITEM (priv->progress_toolitem), FALSE);
- gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (priv->progress_toolitem), FALSE);
+ gtk_tool_item_set_expand (GTK_TOOL_ITEM (priv->progress_toolitem), TRUE);
+ gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (priv->progress_toolitem), TRUE);
gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (priv->cancel_toolitem), FALSE);
gtk_tool_item_set_expand (GTK_TOOL_ITEM (priv->cancel_toolitem), FALSE);
GtkAction *action;
gboolean is_address;
gchar *selection;
+ GtkWidget *focused;
parent_priv = MODEST_WINDOW_GET_PRIVATE (window);
selection = gtk_clipboard_wait_for_text (clipboard);
is_address = ((selection != NULL) && (modest_text_utils_validate_recipient (selection)));
- g_free (selection);
action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/ToolsMenu/ToolsAddToContactsMenu");
gtk_action_set_sensitive (action, is_address);
+ focused = gtk_window_get_focus (GTK_WINDOW (window));
+
+ action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/EditMenu/EditCopyMenu");
+ gtk_action_set_sensitive (action, (selection != NULL) && (!MODEST_IS_ATTACHMENTS_VIEW (focused)));
+
+ action = gtk_ui_manager_get_action (parent_priv->ui_manager, "/MenuBar/EditMenu/EditCutMenu");
+ gtk_action_set_sensitive (action, (selection != NULL) && (!MODEST_IS_ATTACHMENTS_VIEW (focused)));
+
+ g_free (selection);
modest_msg_view_window_update_dimmed (window);
}
{
GSList *tmp;
ModestMsgViewWindowPrivate *priv;
- ModestMailOperationId op_id;
+ ModestMailOperationTypeOperation op_type;
ModestToolBarModes mode;
g_return_if_fail (MODEST_IS_MSG_VIEW_WINDOW (self));
return;
/* Get toolbar mode from operation id*/
- op_id = modest_mail_operation_get_id (mail_op);
- switch (op_id) {
- case MODEST_MAIL_OPERATION_ID_SEND:
- case MODEST_MAIL_OPERATION_ID_RECEIVE:
+ op_type = modest_mail_operation_get_type_operation (mail_op);
+ switch (op_type) {
+ case MODEST_MAIL_OPERATION_TYPE_SEND:
+ case MODEST_MAIL_OPERATION_TYPE_RECEIVE:
mode = TOOLBAR_MODE_TRANSFER;
break;
default:
switch (type) {
case MODEST_MAIL_OPERATION_QUEUE_OPERATION_ADDED:
if (mode == TOOLBAR_MODE_TRANSFER) {
+ /* Enable transfer toolbar mode */
+ set_toolbar_transfer_mode(self);
while (tmp) {
modest_progress_object_add_operation (MODEST_PROGRESS_OBJECT (tmp->data),
mail_op);
tmp = g_slist_next (tmp);
}
- /* Enable transfer toolbar mode */
- set_toolbar_mode (MODEST_MSG_VIEW_WINDOW(self), mode);
}
break;
case MODEST_MAIL_OPERATION_QUEUE_OPERATION_REMOVED:
}
/* If no more operations are being observed, NORMAL mode is enabled again */
- if (observers_empty (self))
+ if (observers_empty (self)) {
set_toolbar_mode (self, TOOLBAR_MODE_NORMAL);
+ }
}
break;
}