X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-ui-actions.c;h=a7b20add80abb323e57c3643b7f60719a3e29a9b;hp=7d1d4ef70df3185874d452c40ca4ad9f664cbc38;hb=c3fa140bae7b51e3bca3ae33bf2b6f924cd9386f;hpb=9d8de13bc46137931a2790969dcb1fb932c7bcc6 diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index 7d1d4ef..a7b20ad 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -120,6 +120,13 @@ static void reply_forward (ReplyForwardAction action, ModestWindow static gchar* ask_for_folder_name (GtkWindow *parent_window, const gchar *title); + +static void _on_send_receive_progress_changed (ModestMailOperation *mail_op, + ModestMailOperationState *state, + gpointer user_data); + + + void modest_ui_actions_on_about (GtkAction *action, ModestWindow *win) { @@ -468,7 +475,7 @@ modest_ui_actions_on_new_msg (GtkAction *action, ModestWindow *win) /* GError *err = NULL; */ TnyAccount *account = NULL; ModestWindowMgr *mgr; - gchar *signature = NULL; + gchar *signature = NULL, *blank_and_signature = NULL; account_name = g_strdup(modest_window_get_active_account (win)); if (!account_name) @@ -478,7 +485,7 @@ modest_ui_actions_on_new_msg (GtkAction *action, ModestWindow *win) goto cleanup; } - account = modest_tny_account_store_get_tny_account_by_account (modest_runtime_get_account_store(), + account = modest_tny_account_store_get_server_account (modest_runtime_get_account_store(), account_name, TNY_ACCOUNT_TYPE_STORE); if (!account) { @@ -496,11 +503,13 @@ modest_ui_actions_on_new_msg (GtkAction *action, ModestWindow *win) MODEST_ACCOUNT_USE_SIGNATURE, FALSE)) { signature = modest_account_mgr_get_string (modest_runtime_get_account_mgr (), account_name, MODEST_ACCOUNT_SIGNATURE, FALSE); + blank_and_signature = g_strconcat ("\n", signature, NULL); + g_free (signature); } else { - signature = g_strdup (""); + blank_and_signature = g_strdup (""); } - msg = modest_tny_msg_new ("", from_str, "", "", "", signature, NULL); + msg = modest_tny_msg_new ("", from_str, "", "", "", blank_and_signature, NULL); if (!msg) { g_printerr ("modest: failed to create new msg\n"); goto cleanup; @@ -534,7 +543,7 @@ modest_ui_actions_on_new_msg (GtkAction *action, ModestWindow *win) cleanup: g_free (account_name); g_free (from_str); - g_free (signature); + g_free (blank_and_signature); if (account) g_object_unref (G_OBJECT(account)); if (msg) @@ -786,7 +795,7 @@ reply_forward_cb (ModestMailOperation *mail_op, goto cleanup; } - account = modest_tny_account_store_get_tny_account_by_account (modest_runtime_get_account_store(), + account = modest_tny_account_store_get_server_account (modest_runtime_get_account_store(), rf_helper->account_name, TNY_ACCOUNT_TYPE_STORE); if (!account) { @@ -916,7 +925,7 @@ reply_forward (ReplyForwardAction action, ModestWindow *win) reply_forward_cb must do it */ msg = modest_msg_view_window_get_message (MODEST_MSG_VIEW_WINDOW(win)); header = modest_msg_view_window_get_header (MODEST_MSG_VIEW_WINDOW(win)); - if (!msg || !header) { + if (!msg || !header) { if (msg) g_object_unref (msg); if (header) @@ -1055,6 +1064,14 @@ modest_ui_actions_do_send_receive (const gchar *account_name, ModestWindow *win) acc_name = g_strdup (account_name); } + /* Set send/receive operation in progress */ + modest_main_window_notify_send_receive_initied (MODEST_MAIN_WINDOW(win)); + + mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(win)); + g_signal_connect (G_OBJECT(mail_op), "progress-changed", + G_CALLBACK (_on_send_receive_progress_changed), + win); + /* Send & receive. */ /* TODO: The spec wants us to first do any pending deletions, before receiving. */ /* Receive and then send. The operation is tagged initially as @@ -1062,7 +1079,6 @@ modest_ui_actions_do_send_receive (const gchar *account_name, ModestWindow *win) receive and then a send. The operation changes its type internally, so the progress objects will receive the proper progress information */ - mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(win)); modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op); modest_mail_operation_update_account (mail_op, acc_name); g_object_unref (G_OBJECT (mail_op)); @@ -1218,7 +1234,8 @@ modest_ui_actions_on_folder_selection_changed (ModestFolderView *folder_view, { ModestConf *conf; GtkWidget *header_view; - + gboolean folder_empty = FALSE; + g_return_if_fail (MODEST_IS_MAIN_WINDOW(main_window)); header_view = modest_main_window_get_child_widget(main_window, @@ -1238,18 +1255,28 @@ modest_ui_actions_on_folder_selection_changed (ModestFolderView *folder_view, if (!TNY_IS_MERGE_FOLDER (folder_store)) { /* TnyMergeFolder can have no get_account() implementation. */ /* Update the active account */ - TnyAccount *account = tny_folder_get_account (TNY_FOLDER (folder_store)); + TnyAccount *account = modest_tny_folder_get_account (TNY_FOLDER (folder_store)); set_active_account_from_tny_account (account, MODEST_WINDOW (main_window)); g_object_unref (account); } + /* Set folder on header view */ - modest_main_window_set_contents_style (main_window, - MODEST_MAIN_WINDOW_CONTENTS_STYLE_HEADERS); modest_header_view_set_folder (MODEST_HEADER_VIEW(header_view), - TNY_FOLDER (folder_store)); - modest_widget_memory_restore (conf, G_OBJECT(header_view), - MODEST_CONF_HEADER_VIEW_KEY); + TNY_FOLDER (folder_store)); + + /* Set main view style */ + folder_empty = tny_folder_get_all_count (TNY_FOLDER (folder_store)) == 0; + if (folder_empty) { + modest_main_window_set_contents_style (main_window, + MODEST_MAIN_WINDOW_CONTENTS_STYLE_EMPTY); + } + else { + modest_main_window_set_contents_style (main_window, + MODEST_MAIN_WINDOW_CONTENTS_STYLE_HEADERS); + modest_widget_memory_restore (conf, G_OBJECT(header_view), + MODEST_CONF_HEADER_VIEW_KEY); + } } else { /* Update the active account */ modest_window_set_active_account (MODEST_WINDOW (main_window), NULL); @@ -1372,12 +1399,12 @@ modest_ui_actions_on_save_to_drafts (GtkWidget *widget, ModestMsgEditWindow *edi return; } - if (!strcmp (account_name, MODEST_ACTUAL_LOCAL_FOLDERS_ACCOUNT_ID)) { + if (!strcmp (account_name, MODEST_LOCAL_FOLDERS_ACCOUNT_ID)) { account_name = g_strdup (data->account_name); } transport_account = - TNY_TRANSPORT_ACCOUNT(modest_tny_account_store_get_tny_account_by_account + TNY_TRANSPORT_ACCOUNT(modest_tny_account_store_get_server_account (modest_runtime_get_account_store(), account_name, TNY_ACCOUNT_TYPE_TRANSPORT)); @@ -1440,7 +1467,7 @@ modest_ui_actions_on_send (GtkWidget *widget, ModestMsgEditWindow *edit_window) } MsgData *data = modest_msg_edit_window_get_msg_data (edit_window); - if (!strcmp (account_name, MODEST_ACTUAL_LOCAL_FOLDERS_ACCOUNT_ID)) { + if (!strcmp (account_name, MODEST_LOCAL_FOLDERS_ACCOUNT_ID)) { account_name = g_strdup (data->account_name); } @@ -2629,6 +2656,7 @@ modest_ui_actions_on_main_window_move_to (GtkAction *action, /* Create and run the dialog */ dialog = create_move_to_dialog (MODEST_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)); g_object_ref (tree_view); @@ -3011,3 +3039,33 @@ modest_ui_actions_on_search_messages (GtkAction *action, ModestWindow *window) modest_platform_show_search_messages (GTK_WINDOW (window)); } + +void +modest_ui_actions_on_open_addressbook (GtkAction *action, ModestWindow *win) +{ + g_return_if_fail (MODEST_IS_WINDOW (win)); + modest_platform_show_addressbook (GTK_WINDOW (win)); +} + + +void +modest_ui_actions_on_toggle_find_in_page (GtkToggleAction *action, + ModestWindow *window) +{ + g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window)); + + modest_msg_edit_window_toggle_find_toolbar (MODEST_MSG_EDIT_WINDOW (window), gtk_toggle_action_get_active (action)); +} + +static void +_on_send_receive_progress_changed (ModestMailOperation *mail_op, + ModestMailOperationState *state, + gpointer user_data) +{ + g_return_if_fail (MODEST_IS_MAIN_WINDOW(user_data)); + + /* Set send/receive operation finished */ + if (state->status != MODEST_MAIL_OPERATION_STATUS_IN_PROGRESS) + modest_main_window_notify_send_receive_completed (MODEST_MAIN_WINDOW(user_data)); + +}