* fix the fallout of the configuration changes - builds again now
[modest] / src / maemo / modest-msg-view-window.c
index 3b51a95..85f2822 100644 (file)
@@ -104,9 +104,6 @@ static gboolean set_toolbar_transfer_mode     (ModestMsgViewWindow *self);
 
 static void update_window_title (ModestMsgViewWindow *window);
 
-static gchar * 
-translate_func (const gchar *msgid,
-               const gchar *domain_name);
 
 /* list my signals */
 enum {
@@ -529,7 +526,6 @@ modest_msg_view_window_new (TnyMsg *msg,
 
        action_group = gtk_action_group_new ("ModestMsgViewWindowActions");
        gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);
-       gtk_action_group_set_translate_func (action_group, (GtkTranslateFunc) translate_func, GETTEXT_PACKAGE, g_free);
 
        menu_rules_group = modest_dimming_rules_group_new ("ModestMenuDimmingRules");
        toolbar_rules_group = modest_dimming_rules_group_new ("ModestToolbarDimmingRules");
@@ -762,8 +758,9 @@ modest_msg_view_window_find_toolbar_search (GtkWidget *widget,
 
        g_object_get (G_OBJECT (widget), "prefix", &current_search, NULL);
 
-       if ((current_search == NULL) && (strcmp (current_search, "") == 0)) {
+       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"));
                return;
        }
 
@@ -818,7 +815,7 @@ modest_msg_view_window_zoom_plus (ModestWindow *window)
        group = gtk_radio_action_get_group (zoom_radio_action);
 
        if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (group->data))) {
-               hildon_banner_show_information (NULL, NULL, _("mcen_ib_max_zoom_level"));
+               hildon_banner_show_information (NULL, NULL, dgettext("hildon-common-strings", "ckct_ib_max_zoom_level_reached"));
                return FALSE;
        }
 
@@ -850,7 +847,7 @@ modest_msg_view_window_zoom_minus (ModestWindow *window)
                                gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (node->next->data), TRUE);
                                return TRUE;
                        } else {
-                               hildon_banner_show_information (NULL, NULL, _("mcen_ib_min_zoom_level"));
+                         hildon_banner_show_information (NULL, NULL, dgettext("hildon-common-strings", "ckct_ib_min_zoom_level_reached"));
                                return FALSE;
                        }
                        break;
@@ -1035,7 +1032,8 @@ modest_msg_view_window_select_next_message (ModestMsgViewWindow *window)
                        /* Mark as read */
                        flags = tny_header_get_flags (header);
                        if (!(flags & TNY_HEADER_FLAG_SEEN))
-                               tny_header_set_flags (header, flags | TNY_HEADER_FLAG_SEEN);
+/*                             tny_header_set_flags (header, flags | TNY_HEADER_FLAG_SEEN); */
+                               tny_header_set_flags (header, TNY_HEADER_FLAG_SEEN);
 
                        /* Msg download initied */
 
@@ -1092,7 +1090,8 @@ modest_msg_view_window_select_first_message (ModestMsgViewWindow *self)
        /* Mark as read */
        flags = tny_header_get_flags (header);
        if (!(flags & TNY_HEADER_FLAG_SEEN))
-               tny_header_set_flags (header, flags | TNY_HEADER_FLAG_SEEN);
+/*             tny_header_set_flags (header, flags | TNY_HEADER_FLAG_SEEN); */
+               tny_header_set_flags (header, TNY_HEADER_FLAG_SEEN);
        
        /* New mail operation */
        mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(self));
@@ -1147,7 +1146,8 @@ modest_msg_view_window_select_previous_message (ModestMsgViewWindow *window)
                /* Mark as read */
                flags = tny_header_get_flags (header);
                if (!(flags & TNY_HEADER_FLAG_SEEN))
-                       tny_header_set_flags (header, flags | TNY_HEADER_FLAG_SEEN);
+/*                     tny_header_set_flags (header, flags | TNY_HEADER_FLAG_SEEN); */
+                       tny_header_set_flags (header, TNY_HEADER_FLAG_SEEN);
 
                /* New mail operation */
                mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_RECEIVE, G_OBJECT(window));
@@ -1187,6 +1187,9 @@ view_msg_cb (ModestMailOperation *mail_op,
        modest_msg_view_window_update_priority (self);
        update_window_title (MODEST_MSG_VIEW_WINDOW (self));
        modest_msg_view_grab_focus (MODEST_MSG_VIEW (priv->msg_view));
+
+       /* Free new references */
+       g_object_unref (self);
 }
 
 TnyFolderType
@@ -1534,7 +1537,7 @@ modest_msg_view_window_view_attachment (ModestMsgViewWindow *window, TnyMimePart
                if (selected_attachments == NULL) {
                        error = TRUE;
                } else if (g_list_length (selected_attachments) > 1) {
-                       hildon_banner_show_information (NULL, NULL, _("TODO: more than one attachment is selected"));
+                       hildon_banner_show_information (NULL, NULL, _("mcen_ib_unable_to_display_more"));
                        error = TRUE;
                } else {
                        mime_part = (TnyMimePart *) selected_attachments->data;
@@ -1685,7 +1688,11 @@ modest_msg_view_window_save_attachments (ModestMsgViewWindow *window, GList *mim
        } else {
                GtkWidget *save_dialog = NULL;
                gchar *folder;
-               save_dialog = hildon_file_chooser_dialog_new (GTK_WINDOW (window), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
+               gchar *save_multiple_str = g_strdup_printf (_("FIXME: %d attachments"), 
+                                                           g_list_length (mime_parts));
+               save_dialog = hildon_file_chooser_dialog_new (GTK_WINDOW (window), GTK_FILE_CHOOSER_ACTION_SAVE);
+               g_object_set (G_OBJECT (save_dialog), "save-multiple", save_multiple_str, NULL);
+               
                folder = g_build_filename (g_get_home_dir (), DEFAULT_FOLDER, NULL);
                gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (save_dialog), folder);
                g_free (folder);
@@ -1728,9 +1735,53 @@ modest_msg_view_window_save_attachments (ModestMsgViewWindow *window, GList *mim
 }
 
 void
-modest_msg_view_window_remove_attachments (ModestMsgViewWindow *window, GList *mime_parts)
+modest_msg_view_window_remove_attachments (ModestMsgViewWindow *window)
 {
-/*     g_message ("not implemented %s", __FUNCTION__); */
+       ModestMsgViewWindowPrivate *priv;
+       GList *mime_parts = NULL, *node;
+       gchar *confirmation_message;
+       gint response;
+       gint n_attachments;
+
+       g_return_if_fail (MODEST_IS_MSG_VIEW_WINDOW (window));
+       priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
+
+       mime_parts = modest_msg_view_get_selected_attachments (MODEST_MSG_VIEW (priv->msg_view));
+       if (mime_parts == NULL)
+               return;
+
+       n_attachments = g_list_length (mime_parts);
+       if (n_attachments == 1) {
+               const gchar *filename;
+
+               if (TNY_IS_MSG (mime_parts->data)) {
+                       TnyHeader *header;
+                       header = tny_msg_get_header (TNY_MSG (mime_parts->data));
+                       filename = tny_header_get_subject (header);
+                       g_object_unref (header);
+                       if (filename == NULL)
+                               filename = _("mail_va_no_subject");
+               } else {
+                       filename = tny_mime_part_get_filename (TNY_MIME_PART (mime_parts->data));
+               }
+               confirmation_message = g_strdup_printf (_("mcen_nc_purge_file_text"), filename);
+       } else {
+               confirmation_message = g_strdup_printf (ngettext("mcen_nc_purge_file_text", 
+                                                                "mcen_nc_purge_files_text", 
+                                                                n_attachments), n_attachments);
+       }
+       response = modest_platform_run_confirmation_dialog (GTK_WINDOW (window),
+                                                           confirmation_message);
+       g_free (confirmation_message);
+
+       if (response != GTK_RESPONSE_OK)
+               return;
+
+       for (node = mime_parts; node != NULL; node = g_list_next (node)) {
+               modest_msg_view_remove_attachment (MODEST_MSG_VIEW (priv->msg_view), node->data);
+       }
+       g_list_foreach (mime_parts, (GFunc) g_object_unref, NULL);
+       g_list_free (mime_parts);
 }
 
 
@@ -1754,9 +1805,3 @@ update_window_title (ModestMsgViewWindow *window)
        gtk_window_set_title (GTK_WINDOW (window), subject);
 }
 
-static gchar * 
-translate_func (const gchar *msgid,
-               const gchar *domain_name)
-{
-       return _(msgid);
-}