/* Copyright (c) 2006, Nokia Corporation
- * All rights reserved.
+ * All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
return;
}
- account_name = modest_account_mgr_get_default_account (modest_runtime_get_account_mgr ());
+ account_name = g_strdup (modest_window_get_active_account (win));
if (!account_name)
- account_name = g_strdup (modest_window_get_active_account (win));
+ account_name = modest_account_mgr_get_default_account (modest_runtime_get_account_mgr ());
if (!account_name) {
g_printerr ("modest: no account found\n");
goto cleanup;
goto cleanup;
}
-
+
/* Create and register edit window */
/* This is destroyed by TODO. */
msg_win = modest_msg_edit_window_new (msg, account_name, FALSE);
}
static void
-open_msg_cb (ModestMailOperation *mail_op,
- TnyHeader *header,
- TnyMsg *msg,
- gpointer user_data)
+open_msg_cb (ModestMailOperation *mail_op, TnyHeader *header, TnyMsg *msg, gpointer user_data)
{
ModestWindowMgr *mgr = NULL;
ModestWindow *parent_win = NULL;
/* Do nothing if there was any problem with the mail
operation. The error will be shown by the error_handler of
the mail operation */
- if (!modest_ui_actions_msg_retrieval_check (mail_op, header, msg)) {
+ if (!modest_ui_actions_msg_retrieval_check (mail_op, header, msg))
return;
- }
parent_win = (ModestWindow *) modest_mail_operation_get_source (mail_op);
folder = tny_header_get_folder (header);
}
static void
-reply_forward_cb (ModestMailOperation *mail_op,
- TnyHeader *header,
- TnyMsg *msg,
+reply_forward_cb (ModestMailOperation *mail_op, TnyHeader *header, TnyMsg *msg,
gpointer user_data)
{
TnyMsg *new_msg;
modest_tny_account_store_get_tny_account_by (modest_runtime_get_account_store (),
MODEST_TNY_ACCOUNT_STORE_QUERY_ID,
server_acc_name);
+ if (!modest_server_account) {
+ g_warning ("%s: could not get tny account\n", __FUNCTION__);
+ return;
+ }
+
+ /* Update active account, but only if it's not a pseudo-account */
+ if ((!modest_tny_account_is_virtual_local_folders(modest_server_account)) &&
+ (!modest_tny_account_is_memory_card_account(modest_server_account))) {
+ const gchar *modest_acc_name =
+ modest_tny_account_get_parent_modest_account_name_for_server_account (modest_server_account);
+ if (modest_acc_name)
+ modest_window_set_active_account (window, modest_acc_name);
+ }
- const gchar *modest_acc_name =
- modest_tny_account_get_parent_modest_account_name_for_server_account (modest_server_account);
- modest_window_set_active_account (window, modest_acc_name);
g_object_unref (modest_server_account);
}
/* Check if folder is empty and set headers view contents style */
folder_empty = (tny_folder_get_all_count (folder) == 0);
all_marked_as_deleted = modest_header_view_is_empty (MODEST_HEADER_VIEW(header_view));
- folder_empty = folder_empty || all_marked_as_deleted ;
- if (folder_empty) {
-
- printf ("DEBUG: %s: tny_folder_get_all_count() returned 0.\n", __FUNCTION__);
+ if (folder_empty || all_marked_as_deleted)
modest_main_window_set_contents_style (win,
MODEST_MAIN_WINDOW_CONTENTS_STYLE_EMPTY);
- } else {
- printf ("DEBUG: %s: tny_folder_get_all_count() returned >0.\n", __FUNCTION__);
- }
}
void
if (TNY_IS_ACCOUNT (folder_store)) {
if (selected) {
- /* Update active account */
set_active_account_from_tny_account (TNY_ACCOUNT (folder_store), MODEST_WINDOW (main_window));
+
/* Show account details */
modest_main_window_set_contents_style (main_window, MODEST_MAIN_WINDOW_CONTENTS_STYLE_DETAILS);
}
MODEST_CONF_HEADER_VIEW_KEY);
} else {
/* Update the active account */
- modest_window_set_active_account (MODEST_WINDOW (main_window), NULL);
+ //modest_window_set_active_account (MODEST_WINDOW (main_window), NULL);
/* Save only if we're seeing headers */
if (modest_main_window_get_contents_style (main_window) ==
MODEST_MAIN_WINDOW_CONTENTS_STYLE_HEADERS)
static void
-transfer_msgs_from_viewer_cb (const GObject *object, gpointer user_data)
+move_to_cb (const GObject *object, gpointer user_data)
{
ModestMsgViewWindow *self = NULL;
+ g_return_if_fail (GTK_IS_WIDGET (user_data));
+ g_return_if_fail (MODEST_IS_WINDOW (object));
- g_return_if_fail (MODEST_IS_MSG_VIEW_WINDOW (object));
- self = MODEST_MSG_VIEW_WINDOW (object);
-
- if (!modest_msg_view_window_select_next_message (self))
- if (!modest_msg_view_window_select_previous_message (self))
- /* No more messages to view, so close this window */
- modest_ui_actions_on_close_window (NULL, MODEST_WINDOW(self));
+ if (MODEST_IS_MSG_VIEW_WINDOW (object)) {
+ self = MODEST_MSG_VIEW_WINDOW (object);
+
+ if (!modest_msg_view_window_select_next_message (self))
+ if (!modest_msg_view_window_select_previous_message (self))
+ /* No more messages to view, so close this window */
+ modest_ui_actions_on_close_window (NULL, MODEST_WINDOW(self));
+ }
+ gtk_widget_destroy (GTK_WIDGET(user_data));
}
void
/* Transfer messages */
if (response == GTK_RESPONSE_OK) {
+ GtkWidget *inf_note;
+ inf_note = modest_platform_animation_banner (GTK_WIDGET (win), NULL,
+ _CS("ckct_nw_pasting"));
+ if (inf_note != NULL) {
+ gtk_window_set_modal (GTK_WINDOW(inf_note), FALSE);
+ gtk_widget_show (GTK_WIDGET(inf_note));
+ }
+
ModestMailOperation *mail_op =
modest_mail_operation_new_with_error_handling (MODEST_MAIL_OPERATION_TYPE_RECEIVE,
G_OBJECT(win),
headers,
TNY_FOLDER (dst_folder),
TRUE,
- (MODEST_IS_MSG_VIEW_WINDOW (win)) ? transfer_msgs_from_viewer_cb : NULL,
- NULL);
+ move_to_cb,
+ inf_note);
g_object_unref (G_OBJECT (mail_op));
}
}
if (do_xfer) {
+ GtkWidget *inf_note;
+ inf_note = modest_platform_animation_banner (GTK_WIDGET (win), NULL,
+ _CS("ckct_nw_pasting"));
+ if (inf_note != NULL) {
+ gtk_window_set_modal (GTK_WINDOW(inf_note), FALSE);
+ gtk_widget_show (GTK_WIDGET(inf_note));
+ }
/* Clean folder on header view before moving it */
sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (folder_view));
gtk_tree_selection_unselect_all (sel);
modest_mail_operation_xfer_folder (mail_op,
TNY_FOLDER (src_folder),
dst_folder,
- TRUE, NULL, NULL);
+ TRUE, move_to_cb, inf_note);
/* Unref mail operation */
g_object_unref (G_OBJECT (mail_op));
}
const gchar *help_id = NULL;
if (MODEST_IS_MAIN_WINDOW (win)) {
- const gchar *action_name;
- action_name = gtk_action_get_name (action);
-
- if (!strcmp (action_name, "FolderViewCSMHelp") ||
- !strcmp (action_name, "HeaderViewCSMHelp")) {
- GtkWidget *folder_view;
- TnyFolderStore *folder_store;
- /* Get selected folder */
- folder_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (win),
- MODEST_WIDGET_TYPE_FOLDER_VIEW);
- folder_store = modest_folder_view_get_selected (MODEST_FOLDER_VIEW (folder_view));
-
- /* Switch help_id */
- if (TNY_IS_FOLDER (folder_store)) {
- switch (modest_tny_folder_guess_folder_type (TNY_FOLDER (folder_store))) {
- case TNY_FOLDER_TYPE_NORMAL:
- help_id = "applications_email_managefolders";
- break;
- case TNY_FOLDER_TYPE_INBOX:
- help_id = "applications_email_inbox";
- break;
- case TNY_FOLDER_TYPE_OUTBOX:
- help_id = "applications_email_outbox";
- break;
- case TNY_FOLDER_TYPE_SENT:
- help_id = "applications_email_sent";
- break;
- case TNY_FOLDER_TYPE_DRAFTS:
- help_id = "applications_email_drafts";
- break;
- case TNY_FOLDER_TYPE_ARCHIVE:
- help_id = "applications_email_managefolders";
- break;
- default:
- help_id = "applications_email_managefolders";
- }
- } else {
- help_id = "applications_email_mainview";
+ GtkWidget *folder_view;
+ TnyFolderStore *folder_store;
+
+ /* Get selected folder */
+ folder_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (win),
+ MODEST_WIDGET_TYPE_FOLDER_VIEW);
+ folder_store = modest_folder_view_get_selected (MODEST_FOLDER_VIEW (folder_view));
+
+ /* Switch help_id */
+ if (TNY_IS_FOLDER (folder_store)) {
+ switch (modest_tny_folder_guess_folder_type (TNY_FOLDER (folder_store))) {
+ case TNY_FOLDER_TYPE_NORMAL:
+ help_id = "applications_email_managefolders";
+ break;
+ case TNY_FOLDER_TYPE_INBOX:
+ help_id = "applications_email_inbox";
+ break;
+ case TNY_FOLDER_TYPE_OUTBOX:
+ help_id = "applications_email_outbox";
+ break;
+ case TNY_FOLDER_TYPE_SENT:
+ help_id = "applications_email_sent";
+ break;
+ case TNY_FOLDER_TYPE_DRAFTS:
+ help_id = "applications_email_drafts";
+ break;
+ case TNY_FOLDER_TYPE_ARCHIVE:
+ help_id = "applications_email_managefolders";
+ break;
+ default:
+ help_id = "applications_email_managefolders";
}
- g_object_unref (folder_store);
} else {
- help_id = "applications_email_mainview";
+ help_id = "applications_email_mainview";
}
+ g_object_unref (folder_store);
} else if (MODEST_IS_MSG_VIEW_WINDOW (win)) {
help_id = "applications_email_viewer";
} else if (MODEST_IS_MSG_EDIT_WINDOW (win))