From: Sergio Villar Senin Date: Mon, 28 Jan 2008 11:47:03 +0000 (+0000) Subject: * Fixes NB#79905, show the proper message when the msg is not available on server X-Git-Tag: git_migration_finished~1755 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=acb49abcabb4f4104693a02d6b5814a3f50ab036 * Fixes NB#79905, show the proper message when the msg is not available on server pmo-trunk-r4096 --- diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index 816e9be..eaa9bc5 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -5428,3 +5428,54 @@ modest_ui_actions_on_account_connection_error (GtkWindow *parent_window, g_free (error_note); } } + +gchar * +modest_ui_actions_get_msg_already_deleted_error_msg (ModestWindow *win) +{ + gchar *msg = NULL; + TnyFolderStore *folder = NULL; + TnyAccount *account = NULL; + ModestTransportStoreProtocol proto; + TnyHeader *header = NULL; + + if (MODEST_IS_MAIN_WINDOW (win)) { + GtkWidget *header_view; + TnyList* headers = NULL; + TnyIterator *iter; + header_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW(win), + MODEST_MAIN_WINDOW_WIDGET_TYPE_HEADER_VIEW); + headers = modest_header_view_get_selected_headers (MODEST_HEADER_VIEW (header_view)); + if (!headers || tny_list_get_length (headers) == 0) { + if (headers) + g_object_unref (headers); + return NULL; + } + iter = tny_list_create_iterator (headers); + header = TNY_HEADER (tny_iterator_get_current (iter)); + folder = TNY_FOLDER_STORE (tny_header_get_folder (header)); + g_object_unref (iter); + g_object_unref (headers); + } else if (MODEST_IS_MSG_VIEW_WINDOW (win)) { + header = modest_msg_view_window_get_header (MODEST_MSG_VIEW_WINDOW (win)); + folder = TNY_FOLDER_STORE (tny_header_get_folder (header)); + } + + /* Get the account type */ + account = tny_folder_get_account (TNY_FOLDER (folder)); + proto = modest_protocol_info_get_transport_store_protocol (tny_account_get_proto (account)); + if (proto == MODEST_PROTOCOL_STORE_POP) { + msg = g_strdup (_("emev_ni_ui_pop3_msg_recv_error")); + } else if (proto == MODEST_PROTOCOL_STORE_IMAP) { + msg = g_strdup_printf (_("emev_ni_ui_imap_message_not_available_in_server"), + tny_header_get_subject (header)); + } else { + msg = g_strdup_printf (_("mail_ni_ui_folder_get_msg_folder_error")); + } + + /* Frees */ + g_object_unref (account); + g_object_unref (folder); + g_object_unref (header); + + return msg; +} diff --git a/src/modest-ui-actions.h b/src/modest-ui-actions.h index 8404866..7702b10 100644 --- a/src/modest-ui-actions.h +++ b/src/modest-ui-actions.h @@ -508,5 +508,8 @@ void modest_ui_actions_compose_msg (ModestWindow *win, void modest_ui_actions_on_account_connection_error (GtkWindow *parent_window, TnyAccount *account); +gchar *modest_ui_actions_get_msg_already_deleted_error_msg (ModestWindow *win); + + G_END_DECLS #endif /* __MODEST_UI_ACTIONS_H__ */ diff --git a/src/modest-ui-dimming-rules.c b/src/modest-ui-dimming-rules.c index 4050548..5229f5c 100644 --- a/src/modest-ui-dimming-rules.c +++ b/src/modest-ui-dimming-rules.c @@ -33,6 +33,7 @@ #include #include "modest-ui-dimming-rules.h" +#include "modest-ui-actions.h" #include "modest-dimming-rule.h" #include "modest-debug.h" #include "modest-tny-folder.h" @@ -599,8 +600,11 @@ modest_ui_dimming_rules_on_open_msg (ModestWindow *win, gpointer user_data) } if (!dimmed) { dimmed = state->any_marked_as_deleted; - if (dimmed) - modest_dimming_rule_set_notification (rule, _("mcen_ib_message_already_deleted")); + if (dimmed) { + gchar *msg = modest_ui_actions_get_msg_already_deleted_error_msg (win); + modest_dimming_rule_set_notification (rule, msg); + g_free (msg); + } } if (!dimmed) { dimmed = _selected_msg_sent_in_progress (win); @@ -736,7 +740,9 @@ modest_ui_dimming_rules_on_delete_msg (ModestWindow *win, gpointer user_data) if (!dimmed) { dimmed = state->any_marked_as_deleted; if (dimmed) { - modest_dimming_rule_set_notification (rule, _("mcen_ib_message_already_deleted")); + gchar *msg = modest_ui_actions_get_msg_already_deleted_error_msg (win); + modest_dimming_rule_set_notification (rule, msg); + g_free (msg); } } if (!dimmed) { @@ -753,8 +759,11 @@ modest_ui_dimming_rules_on_delete_msg (ModestWindow *win, gpointer user_data) } if (!dimmed) { dimmed = state->any_marked_as_deleted; - if (dimmed) - modest_dimming_rule_set_notification (rule, _("mcen_ib_message_already_deleted")); + if (dimmed) { + gchar *msg = modest_ui_actions_get_msg_already_deleted_error_msg (win); + modest_dimming_rule_set_notification (rule, msg); + g_free (msg); + } } if (!dimmed) { dimmed = state->sent_in_progress; diff --git a/src/widgets/modest-header-view.c b/src/widgets/modest-header-view.c index ea189e2..4499008 100644 --- a/src/widgets/modest-header-view.c +++ b/src/widgets/modest-header-view.c @@ -40,7 +40,7 @@ #include #include #include - +#include #include #include #include @@ -1300,7 +1300,12 @@ on_header_row_activated (GtkTreeView *treeview, GtkTreePath *path, /* Dont open DELETED messages */ if (flags & TNY_HEADER_FLAG_DELETED) { - modest_platform_information_banner (NULL, NULL, _("mcen_ib_message_already_deleted")); + GtkWidget *win; + gchar *msg; + win = gtk_widget_get_ancestor (GTK_WIDGET (treeview), GTK_TYPE_WINDOW); + msg = modest_ui_actions_get_msg_already_deleted_error_msg (MODEST_WINDOW (win)); + modest_platform_information_banner (NULL, NULL, msg); + g_free (msg); goto frees; }