X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-ui-actions.c;h=959cc97fe9a26cf9d7e4d2bbb17179aace7bf9d5;hb=d8cb7ecc661787017912f164d52f6d7b39390446;hp=15be43a75d4645b0bd71ddf9b79d3fc7051095a1;hpb=0cc8439cc0cf7354a314eec5b5fd6b7cee057f1a;p=modest diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index 15be43a..959cc97 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) @@ -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) @@ -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); @@ -3011,3 +3038,17 @@ modest_ui_actions_on_search_messages (GtkAction *action, ModestWindow *window) modest_platform_show_search_messages (GTK_WINDOW (window)); } + + +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)); + +}