X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fhildon2%2Fmodest-msg-view-window.c;h=c9ab43ee5828674da46ba7f0e126d27ebe778f5e;hp=a40707d31d191f5ac7b34ab0238ae9e0412b2ad1;hb=80626ce030a130a158768d2b62301067c6c20c7f;hpb=dfcf0a4615a074ddddf12d380c9d60426b32eca2 diff --git a/src/hildon2/modest-msg-view-window.c b/src/hildon2/modest-msg-view-window.c index a40707d..c9ab43e 100644 --- a/src/hildon2/modest-msg-view-window.c +++ b/src/hildon2/modest-msg-view-window.c @@ -33,6 +33,7 @@ #include #include #include +#include #include "modest-marshal.h" #include "modest-platform.h" #include @@ -489,9 +490,7 @@ set_progress_hint (ModestMsgViewWindow *self, /* Sets current progress hint */ priv->progress_hint = enabled; - if (GTK_WIDGET_VISIBLE (self)) { - hildon_gtk_window_set_progress_indicator (GTK_WINDOW (self), enabled?1:0); - } + hildon_gtk_window_set_progress_indicator (GTK_WINDOW (self), enabled?1:0); } @@ -1443,7 +1442,7 @@ modest_msg_view_window_find_toolbar_search (GtkWidget *widget, if ((current_search == NULL) || (strcmp (current_search, "") == 0)) { g_free (current_search); - hildon_banner_show_information (NULL, NULL, dgettext("hildon-common-strings", "ecdg_ib_find_rep_enter_text")); + hildon_banner_show_information (NULL, NULL, _CS("ecdg_ib_find_rep_enter_text")); return; } @@ -1454,7 +1453,8 @@ modest_msg_view_window_find_toolbar_search (GtkWidget *widget, result = modest_isearch_view_search (MODEST_ISEARCH_VIEW (priv->msg_view), priv->last_search); if (!result) { - hildon_banner_show_information (NULL, NULL, dgettext("hildon-libs", "ckct_ib_find_no_matches")); + hildon_banner_show_information (NULL, NULL, + _HL("ckct_ib_find_no_matches")); g_free (priv->last_search); priv->last_search = NULL; } else { @@ -1463,7 +1463,8 @@ modest_msg_view_window_find_toolbar_search (GtkWidget *widget, } } else { if (!modest_isearch_view_search_next (MODEST_ISEARCH_VIEW (priv->msg_view))) { - hildon_banner_show_information (NULL, NULL, dgettext("hildon-libs", "ckct_ib_find_search_complete")); + hildon_banner_show_information (NULL, NULL, + _HL("ckct_ib_find_search_complete")); g_free (priv->last_search); priv->last_search = NULL; } else { @@ -1507,6 +1508,8 @@ modest_msg_view_window_zoom_plus (ModestWindow *window) { gdouble zoom_level; ModestMsgViewWindowPrivate *priv; + gint int_zoom; + gchar *banner_text; g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW (window), 1.0); priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window); @@ -1514,7 +1517,8 @@ modest_msg_view_window_zoom_plus (ModestWindow *window) zoom_level = modest_zoomable_get_zoom (MODEST_ZOOMABLE (priv->msg_view)); if (zoom_level >= 2.0) { - hildon_banner_show_information (NULL, NULL, dgettext("hildon-common-strings", "ckct_ib_max_zoom_level_reached")); + hildon_banner_show_information (NULL, NULL, + _CS("ckct_ib_max_zoom_level_reached")); return FALSE; } else if (zoom_level >= 1.5) { zoom_level = 2.0; @@ -1531,10 +1535,13 @@ modest_msg_view_window_zoom_plus (ModestWindow *window) } /* set zoom level */ + int_zoom = (gint) rint (zoom_level*100.0+0.1); + banner_text = g_strdup_printf (_HL("wdgt_ib_zoom"), int_zoom); + modest_platform_information_banner (GTK_WIDGET (window), NULL, banner_text); + g_free (banner_text); modest_zoomable_set_zoom (MODEST_ZOOMABLE (priv->msg_view), zoom_level); return TRUE; - } static gboolean @@ -1542,6 +1549,8 @@ modest_msg_view_window_zoom_minus (ModestWindow *window) { gdouble zoom_level; ModestMsgViewWindowPrivate *priv; + gint int_zoom; + gchar *banner_text; g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW (window), 1.0); priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window); @@ -1549,7 +1558,8 @@ modest_msg_view_window_zoom_minus (ModestWindow *window) zoom_level = modest_zoomable_get_zoom (MODEST_ZOOMABLE (priv->msg_view)); if (zoom_level <= 0.5) { - hildon_banner_show_information (NULL, NULL, dgettext("hildon-common-strings", "ckct_ib_min_zoom_level_reached")); + hildon_banner_show_information (NULL, NULL, + _CS("ckct_ib_min_zoom_level_reached")); return FALSE; } else if (zoom_level <= 0.8) { zoom_level = 0.5; @@ -1566,6 +1576,10 @@ modest_msg_view_window_zoom_minus (ModestWindow *window) } /* set zoom level */ + int_zoom = (gint) rint (zoom_level*100.0+0.1); + banner_text = g_strdup_printf (_HL("wdgt_ib_zoom"), int_zoom); + modest_platform_information_banner (GTK_WIDGET (window), NULL, banner_text); + g_free (banner_text); modest_zoomable_set_zoom (MODEST_ZOOMABLE (priv->msg_view), zoom_level); return TRUE; @@ -1603,7 +1617,7 @@ modest_msg_view_window_key_event (GtkWidget *window, if (event->type == GDK_KEY_PRESS) { GtkScrollType scroll_type; - + switch (event->keyval) { case GDK_Up: case GDK_KP_Up: @@ -1625,7 +1639,7 @@ modest_msg_view_window_key_event (GtkWidget *window, scroll_type = GTK_SCROLL_END; break; default: scroll_type = GTK_SCROLL_NONE; } - + /* g_signal_emit_by_name (G_OBJECT (priv->main_scroll), "scroll-child", */ /* scroll_type, FALSE, &return_value); */ return FALSE; @@ -1830,6 +1844,11 @@ message_reader (ModestMsgViewWindow *window, mgr = modest_runtime_get_window_mgr (); /* Msg download completed */ if (!(tny_header_get_flags (header) & TNY_HEADER_FLAG_CACHED)) { + + /* We set the header from model while we're loading */ + tny_header_view_set_header (TNY_HEADER_VIEW (priv->msg_view), header); + gtk_window_set_title (GTK_WINDOW (window), _CS("ckdg_pb_updating")); + /* Ask the user if he wants to download the message if we're not online */ if (!tny_device_is_online (modest_runtime_get_device())) { @@ -2260,7 +2279,7 @@ on_account_removed (TnyAccountStore *account_store, parent_acc = modest_tny_account_get_parent_modest_account_name_for_server_account (account); /* Close this window if I'm showing a message of the removed account */ - if (strcmp (parent_acc, our_acc) == 0) + if (our_acc && parent_acc && strcmp (parent_acc, our_acc) == 0) modest_ui_actions_on_close_window (NULL, MODEST_WINDOW (user_data)); } } @@ -2374,7 +2393,8 @@ modest_msg_view_window_get_attachments (ModestMsgViewWindow *win) g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW (win), NULL); priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (win); - selected_attachments = modest_msg_view_get_selected_attachments (MODEST_MSG_VIEW (priv->msg_view)); + /* In Hildon 2.2 as there's no selection we assume we have all attachments selected */ + selected_attachments = modest_msg_view_get_attachments (MODEST_MSG_VIEW (priv->msg_view)); return selected_attachments; } @@ -2599,8 +2619,8 @@ idle_save_mime_part_show_result (SaveMimePartInfo *info) if (info->result == GNOME_VFS_OK) { hildon_banner_show_information (NULL, NULL, _CS("sfil_ib_saved")); } else if (info->result == GNOME_VFS_ERROR_NO_SPACE) { - hildon_banner_show_information (NULL, NULL, dgettext("ke-recv", - "cerm_device_memory_full")); + hildon_banner_show_information (NULL, NULL, + _KR("cerm_device_memory_full")); } else { hildon_banner_show_information (NULL, NULL, _("mail_ib_file_operation_failed")); } @@ -2623,8 +2643,14 @@ save_mime_part_to_file (SaveMimePartInfo *info) stream = tny_vfs_stream_new (handle); if (tny_mime_part_decode_to_stream (pair->part, stream, &error) < 0) { g_warning ("modest: could not save attachment %s: %d (%s)\n", pair->filename, error?error->code:-1, error?error->message:"Unknown error"); - - info->result = GNOME_VFS_ERROR_IO; + + if ((error->domain == TNY_ERROR_DOMAIN) && + (error->code = TNY_IO_ERROR_WRITE) && + (errno == ENOSPC)) { + info->result = GNOME_VFS_ERROR_NO_SPACE; + } else { + info->result = GNOME_VFS_ERROR_IO; + } } g_object_unref (G_OBJECT (stream)); g_object_unref (pair->part); @@ -2693,7 +2719,7 @@ save_attachments_response (GtkDialog *dialog, if (!modest_utils_folder_writable (chooser_uri)) { hildon_banner_show_information - (NULL, NULL, dgettext("hildon-fm", "sfil_ib_readonly_location")); + (NULL, NULL, _FM("sfil_ib_readonly_location")); } else { TnyIterator *iter; @@ -2705,7 +2731,7 @@ save_attachments_response (GtkDialog *dialog, !tny_mime_part_is_purged (mime_part) && (tny_mime_part_get_filename (mime_part) != NULL)) { SaveMimePartPair *pair; - + pair = g_slice_new0 (SaveMimePartPair); if (tny_list_get_length (mime_parts) > 1) { @@ -2751,7 +2777,9 @@ modest_msg_view_window_save_attachments (ModestMsgViewWindow *window, TnyList *m priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window); if (mime_parts == NULL) { - mime_parts = modest_msg_view_get_selected_attachments (MODEST_MSG_VIEW (priv->msg_view)); + /* In Hildon 2.2 save and delete operate over all the attachments as there's no + * selection available */ + mime_parts = modest_msg_view_get_attachments (MODEST_MSG_VIEW (priv->msg_view)); if (mime_parts == NULL || tny_list_get_length (mime_parts) == 0) return; } else { @@ -2847,10 +2875,10 @@ modest_msg_view_window_remove_attachments (ModestMsgViewWindow *window, gboolean g_return_if_fail (MODEST_IS_MSG_VIEW_WINDOW (window)); priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window); - if (get_all) - mime_parts = modest_msg_view_get_attachments (MODEST_MSG_VIEW (priv->msg_view)); - else - mime_parts = modest_msg_view_get_selected_attachments (MODEST_MSG_VIEW (priv->msg_view)); + /* In hildon 2.2 we ignore the get_all flag as we always get all attachments. This is + * because we don't have selection + */ + mime_parts = modest_msg_view_get_attachments (MODEST_MSG_VIEW (priv->msg_view)); /* Remove already purged messages from mime parts list */ iter = tny_list_create_iterator (mime_parts); @@ -3099,21 +3127,21 @@ setup_menu (ModestMsgViewWindow *self) modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_inbox_forward"), "d", APP_MENU_CALLBACK (modest_ui_actions_on_forward), MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_reply_msg)); - + modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_inbox_mark_as_read"), NULL, APP_MENU_CALLBACK (modest_ui_actions_on_mark_as_read), MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_mark_as_read_msg_in_view)); modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_inbox_mark_as_unread"), NULL, APP_MENU_CALLBACK (modest_ui_actions_on_mark_as_unread), MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_mark_as_unread_msg_in_view)); - + modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_viewer_save_attachments"), NULL, APP_MENU_CALLBACK (modest_ui_actions_save_attachments), MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_save_attachments)); modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_inbox_remove_attachments"), NULL, APP_MENU_CALLBACK (modest_ui_actions_remove_attachments), MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_remove_attachments)); - + modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_new_message"), "n", APP_MENU_CALLBACK (modest_ui_actions_on_new_msg), MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_new_msg)); @@ -3132,8 +3160,18 @@ modest_msg_view_window_add_to_contacts (ModestMsgViewWindow *self) gboolean contacts_to_add = FALSE; msg = tny_msg_view_get_msg (TNY_MSG_VIEW (priv->msg_view)); - if (msg == NULL) return; - recipients = modest_tny_msg_get_all_recipients_list (msg); + if (msg == NULL) { + TnyHeader *header; + + header = modest_msg_view_window_get_header (self); + if (header == NULL) + return; + recipients = modest_tny_msg_header_get_all_recipients_list (header); + g_object_unref (header); + } else { + recipients = modest_tny_msg_get_all_recipients_list (msg); + g_object_unref (msg); + } if (recipients != NULL) { GtkWidget *picker_dialog; @@ -3180,5 +3218,4 @@ modest_msg_view_window_add_to_contacts (ModestMsgViewWindow *self) } if (recipients) {g_slist_foreach (recipients, (GFunc) g_free, NULL); g_slist_free (recipients);} - g_object_unref (msg); }