2005-02-27 [paul] 1.0.1cvs20.1
[claws.git] / src / messageview.c
index 6172c89a655c5805968fc3a7d6fb3a7cea604adc..d915de2d48b95bb377979758ba5a5953f875b315 100644 (file)
@@ -20,6 +20,7 @@
 #include "defs.h"
 
 #include <glib.h>
+#include <glib/gi18n.h>
 #include <gdk/gdkkeysyms.h>
 #include <gtk/gtkvbox.h>
 #include <gtk/gtkcontainer.h>
@@ -32,7 +33,6 @@
 #include <ctype.h>
 #include <string.h>
 
-#include "intl.h"
 #include "main.h"
 #include "messageview.h"
 #include "message_search.h"
@@ -294,7 +294,7 @@ static GtkItemFactoryEntry msgview_entries[] =
                                        NULL, create_filter_cb, FILTER_BY_TO, NULL},
        {N_("/_Tools/_Create filter rule/by _Subject"),
                                        NULL, create_filter_cb, FILTER_BY_SUBJECT, NULL},
-       {N_("/_Tools/Create processing rule/"),
+       {N_("/_Tools/Create processing rule"),
                                        NULL, NULL, 0, "<Branch>"},
        {N_("/_Tools/Create processing rule/_Automatically"),
                                        NULL, create_processing_cb, FILTER_BY_AUTO, NULL},
@@ -658,7 +658,13 @@ static gint disposition_notification_send(MsgInfo *msginfo)
                unlink(tmp);
                return -1;
        }
-       
+               
+       if (prefs_common.work_offline)
+               if (alertpanel(_("Offline warning"), 
+                              _("You're working offline. Override?"),
+                              _("Yes"), _("No"), NULL) != G_ALERTDEFAULT)
+                       return 0;
+
        /* send it */
        path = folder_item_fetch_msg(queue, num);
        ok = procmsg_send_message_queue(path);
@@ -749,6 +755,13 @@ gint messageview_show(MessageView *messageview, MsgInfo *msginfo,
        else 
                noticeview_hide(messageview->noticeview);
 
+       mimeinfo = procmime_mimeinfo_next(mimeinfo);
+       if (mimeinfo && (mimeinfo->type != MIMETYPE_TEXT || 
+           (strcmp(mimeinfo->subtype, "plain") &&
+            strcmp(mimeinfo->subtype, "html")))) {
+               mimeview_show_part(messageview->mimeview,mimeinfo);
+       }
+
        g_free(file);
 
        return 0;
@@ -907,10 +920,28 @@ void messageview_copy_clipboard(MessageView *messageview)
 void messageview_select_all(MessageView *messageview)
 {
        TextView *text;
+       GtkTextView *edit = NULL;
+       GtkTextBuffer *textbuf;
+       gint body_pos = 0;
+       GtkTextIter start, end;
+       
+       g_return_if_fail(messageview != NULL);
 
        text = messageview_get_current_textview(messageview);
-       if (text)
-               gtk_editable_select_region(GTK_EDITABLE(text->text), 0, -1);
+       g_return_if_fail(text != NULL);
+
+       edit = GTK_TEXT_VIEW(text->text);
+       g_return_if_fail(edit != NULL);
+
+       textbuf = gtk_text_view_get_buffer(edit);
+       g_return_if_fail(textbuf != NULL);
+
+       gtk_text_buffer_get_bounds(textbuf, &start, &end);
+       
+       gtk_text_buffer_move_mark_by_name(textbuf, 
+               "selection_bound", &start);
+       gtk_text_buffer_move_mark_by_name(textbuf, 
+               "insert", &end);
 }
 
 void messageview_set_position(MessageView *messageview, gint pos)
@@ -1379,7 +1410,7 @@ static void reply_cb(gpointer data, guint action, GtkWidget *widget)
 
        msginfo_list = g_slist_append(msginfo_list, messageview->msginfo);
        compose_reply_from_messageview(messageview, msginfo_list, action);
-       g_list_free(msginfo_list);
+       g_slist_free(msginfo_list);
 }
 
 static void reedit_cb(gpointer data, guint action, GtkWidget *widget)