#ifdef MODEST_PLATFORM_MAEMO
#include "maemo/modest-osso-state-saving.h"
+#include "maemo/modest-maemo-utils.h"
#endif /* MODEST_PLATFORM_MAEMO */
#include "widgets/modest-ui-constants.h"
g_object_unref (G_OBJECT (mail_op));
/* refilter treemodel to hide marked-as-deleted rows */
- if (MODEST_IS_HEADER_VIEW (user_data))
- modest_header_view_refilter (MODEST_HEADER_VIEW (user_data));
+/* if (MODEST_IS_HEADER_VIEW (user_data)) */
+/* modest_header_view_refilter (MODEST_HEADER_VIEW (user_data)); */
}
void
if (response == GTK_RESPONSE_OK) {
- ModestMainWindow *main_window;
- ModestWindowMgr *mgr;
-
+ ModestWindow *main_window = NULL;
+ ModestWindowMgr *mgr = NULL;
+ GtkTreeModel *model = NULL;
+ GtkTreeSelection *sel = NULL;
+ GList *sel_list = NULL, *tmp = NULL;
+ GtkTreeRowReference *row_reference = NULL;
+ GtkTreePath *next_path = NULL;
+
+ /* Find last selected row */
+ if (MODEST_IS_MAIN_WINDOW (win)) {
+ model = gtk_tree_view_get_model (GTK_TREE_VIEW (header_view));
+ sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (header_view));
+ sel_list = gtk_tree_selection_get_selected_rows (sel, &model);
+ for (tmp=sel_list; tmp; tmp=tmp->next) {
+ if (tmp->next == NULL) {
+ next_path = gtk_tree_path_copy((GtkTreePath *) tmp->data);
+ gtk_tree_path_next (next_path);
+ row_reference = gtk_tree_row_reference_new (model, next_path);
+ gtk_tree_path_free (next_path);
+ }
+ }
+ }
+
/* Remove each header. If it's a view window header_view == NULL */
do_headers_action (win, headers_action_delete, header_view);
} else {
modest_msg_view_window_select_next_message (MODEST_MSG_VIEW_WINDOW (win));
}
+
+ /* Get main window */
+ mgr = modest_runtime_get_window_mgr ();
+ main_window = modest_window_mgr_get_main_window (mgr);
+ }
+ else {
+ /* Move cursor to next row */
+ main_window = win;
+
+ /* Select next row */
+ if (gtk_tree_row_reference_valid (row_reference)) {
+ next_path = gtk_tree_row_reference_get_path (row_reference);
+ gtk_tree_selection_select_path (sel, next_path);
+ gtk_tree_path_free (next_path);
+ }
+ if (row_reference != NULL)
+ gtk_tree_row_reference_free (row_reference);
}
- /* Refilter header view model, if main window still exists */
- mgr = modest_runtime_get_window_mgr ();
- main_window = MODEST_MAIN_WINDOW (modest_window_mgr_get_main_window (mgr));
- if (main_window) {
- GtkWidget *widget;
-
- widget = modest_main_window_get_child_widget (main_window,
- MODEST_WIDGET_TYPE_HEADER_VIEW);
- modest_header_view_refilter (MODEST_HEADER_VIEW (widget));
+ /* Update toolbar dimming state */
+ modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (main_window));
- /* Update toolbar dimming state */
- modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (main_window));
- }
+ /* Free */
+ g_list_foreach (sel_list, (GFunc) gtk_tree_path_free, NULL);
+ g_list_free (sel_list);
}
- /* free */
+ /* Free*/
g_free(message);
g_free(desc);
g_object_unref (header_list);
} else {
/* Show the list of accounts: */
GtkDialog *account_win = GTK_DIALOG(modest_account_view_window_new ());
- gtk_window_set_transient_for (GTK_WINDOW (account_win), GTK_WINDOW(win));
- gtk_dialog_run (account_win);
- gtk_widget_destroy (GTK_WIDGET(account_win));
+ modest_maemo_show_dialog_and_forget (GTK_WINDOW (win), account_win);
}
#else
GtkWidget *dialog, *label;
* of them are currently downloaded
*/
static gboolean
-download_uncached_messages (TnyList *header_list, GtkWindow *win)
+download_uncached_messages (TnyList *header_list, GtkWindow *win,
+ gboolean reply_fwd)
{
TnyIterator *iter;
gboolean retval;
retval = TRUE;
if (uncached_messages > 0) {
GtkResponseType response;
- response =
- modest_platform_run_confirmation_dialog (GTK_WINDOW (win),
- ngettext("mcen_nc_get_msg",
- "mcen_nc_get_msgs",
- uncached_messages));
+ if (reply_fwd)
+ response = modest_platform_run_confirmation_dialog (GTK_WINDOW (win),
+ _("emev_nc_include_original"));
+ else
+ response =
+ modest_platform_run_confirmation_dialog (GTK_WINDOW (win),
+ ngettext("mcen_nc_get_msg",
+ "mcen_nc_get_msgs",
+ uncached_messages));
if (response == GTK_RESPONSE_CANCEL)
retval = FALSE;
else {
return;
/* Check that the messages have been previously downloaded */
- continue_download = download_uncached_messages (header_list, GTK_WINDOW (win));
+ continue_download = download_uncached_messages (header_list, GTK_WINDOW (win), TRUE);
if (!continue_download) {
g_object_unref (header_list);
return;
folder_store = modest_folder_view_get_selected (MODEST_FOLDER_VIEW (folder_view));
- if (TNY_IS_FOLDER (folder_store)) {
+ if (folder_store && TNY_IS_FOLDER (folder_store)) {
header_view =
modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (win),
MODEST_WIDGET_TYPE_HEADER_VIEW);
folder_refreshed_cb,
MODEST_MAIN_WINDOW (win));
}
- g_object_unref (folder_store);
+
+ if (folder_store)
+ g_object_unref (folder_store);
}
/* Refresh the active account */
gchar *account_name, *from;
ModestAccountMgr *account_mgr;
gchar *info_text = NULL;
- TnyMsg *new_draft = NULL;
g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW(edit_window));
mail_operation = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_INFO, G_OBJECT(edit_window));
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_operation);
- new_draft = modest_mail_operation_save_to_drafts (mail_operation,
- transport_account,
- data->draft_msg,
- from,
- data->to,
- data->cc,
- data->bcc,
- data->subject,
- data->plain_body,
- data->html_body,
- data->attachments,
- data->priority_flags);
+ modest_mail_operation_save_to_drafts (mail_operation,
+ transport_account,
+ data->draft_msg,
+ edit_window,
+ from,
+ data->to,
+ data->cc,
+ data->bcc,
+ data->subject,
+ data->plain_body,
+ data->html_body,
+ data->attachments,
+ data->priority_flags);
/* Frees */
g_free (from);
g_free (account_name);
modest_msg_edit_window_free_msg_data (edit_window, data);
- modest_msg_edit_window_set_draft (edit_window, new_draft);
- if (new_draft != NULL)
- g_object_unref (new_draft);
-
info_text = g_strdup_printf (_("mail_va_saved_to_drafts"), _("mcen_me_folder_drafts"));
modest_platform_information_banner (NULL, NULL, info_text);
g_free (info_text);
/* Check that the messages have been previously downloaded */
gboolean continue_download = TRUE;
if (ask)
- continue_download = download_uncached_messages (header_list, GTK_WINDOW (window));
+ continue_download = download_uncached_messages (header_list, GTK_WINDOW (window), FALSE);
if (continue_download)
modest_header_view_copy_selection (MODEST_HEADER_VIEW (focused_widget));
g_object_unref (header_list);
modest_ui_actions_toggle_folders_view (GtkAction *action,
ModestMainWindow *main_window)
{
- ModestConf *conf;
-
g_return_if_fail (MODEST_IS_MAIN_WINDOW(main_window));
- conf = modest_runtime_get_conf ();
-
- if (modest_main_window_get_style (main_window) == MODEST_MAIN_WINDOW_STYLE_SPLIT)
- modest_main_window_set_style (main_window, MODEST_MAIN_WINDOW_STYLE_SIMPLE);
- else
+ if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)))
modest_main_window_set_style (main_window, MODEST_MAIN_WINDOW_STYLE_SPLIT);
+ else
+ modest_main_window_set_style (main_window, MODEST_MAIN_WINDOW_STYLE_SIMPLE);
}
void
static GtkWidget*
-create_move_to_dialog (ModestWindow *win,
+create_move_to_dialog (GtkWindow *win,
GtkWidget *folder_view,
GtkWidget **tree_view)
{
modest_folder_view_update_model (MODEST_FOLDER_VIEW (*tree_view),
TNY_ACCOUNT_STORE (modest_runtime_get_account_store ()));
+ modest_folder_view_show_non_move_folders(MODEST_FOLDER_VIEW (*tree_view), FALSE);
+
gtk_container_add (GTK_CONTAINER (scroll), *tree_view);
/* Add scroll to dialog */
MODEST_WIDGET_TYPE_HEADER_VIEW);
/* Create and run the dialog */
- dialog = create_move_to_dialog (MODEST_WINDOW (win), folder_view, &tree_view);
+ dialog = create_move_to_dialog (GTK_WINDOW(win), folder_view, &tree_view);
modest_folder_view_select_first_inbox_or_local (MODEST_FOLDER_VIEW (tree_view));
result = gtk_dialog_run (GTK_DIALOG(dialog));
+ modest_folder_view_show_non_move_folders(MODEST_FOLDER_VIEW (tree_view), TRUE);
g_object_ref (tree_view);
/* We do this to save an indentation level ;-) */
folder_view = NULL;
/* Create and run the dialog */
- dialog = create_move_to_dialog (MODEST_WINDOW (win), folder_view, &tree_view);
+ dialog = create_move_to_dialog (GTK_WINDOW (win), folder_view, &tree_view);
result = gtk_dialog_run (GTK_DIALOG(dialog));
+ modest_folder_view_show_non_move_folders(MODEST_FOLDER_VIEW (tree_view), TRUE);
if (result == GTK_RESPONSE_ACCEPT) {
TnyFolderStore *folder_store;