2004-10-01 [colin] 0.9.12cvs117.1
[claws.git] / src / mimeview.c
index 33fa522fb844705904aca31e6de0a9db866257e7..122dbf8ba8709f142bf77dbc2e9be544e62faeba 100644 (file)
@@ -60,7 +60,6 @@
 #include "utils.h"
 #include "gtkutils.h"
 #include "prefs_common.h"
-#include "rfc2015.h"
 #include "stock_pixmap.h"
 #include "gtk/gtkvscrollbutton.h"
 
@@ -202,7 +201,7 @@ MimeView *mimeview_create(MainWindow *mainwin)
        gtk_widget_show(scrolledwin);
        gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin),
                                       GTK_POLICY_AUTOMATIC,
-                                      GTK_POLICY_ALWAYS);
+                                      GTK_POLICY_AUTOMATIC);
 
        ctree = gtk_sctree_new_with_titles(N_MIMEVIEW_COLS, 0, titles);
        gtk_widget_show(ctree);
@@ -868,6 +867,11 @@ static gint mimeview_key_pressed(GtkWidget *widget, GdkEventKey *event,
        if (!event) return FALSE;
        if (!mimeview->opened) return FALSE;
 
+       summaryview = mimeview->messageview->mainwin->summaryview;
+       
+       if (summaryview && quicksearch_has_focus(summaryview->quicksearch))
+               return FALSE;
+               
        switch (event->keyval) {
        case GDK_space:
                if (textview_scroll_page(mimeview->textview, FALSE))
@@ -928,7 +932,7 @@ static gint mimeview_key_pressed(GtkWidget *widget, GdkEventKey *event,
        }
 
        if (!mimeview->messageview->mainwin) return FALSE;
-       summaryview = mimeview->messageview->mainwin->summaryview;
+
        summary_pass_key_press_event(summaryview, event);
        return TRUE;
 }
@@ -963,7 +967,7 @@ static void mimeview_drag_data_get(GtkWidget            *widget,
                alertpanel_error
                        (_("Can't save the part of multipart message."));
 
-       uriname = g_strconcat("file:/", filename, NULL);
+       uriname = g_strconcat("file://", filename, NULL);
        gtk_selection_data_set(selection_data, selection_data->target, 8,
                               uriname, strlen(uriname));
 
@@ -1054,7 +1058,7 @@ static void mimeview_save_all(MimeView *mimeview)
                startdir = g_strconcat(prefs_common.attach_save_dir,
                                       G_DIR_SEPARATOR_S, NULL);
 
-       dirname = filesel_select_file(_("Select destination folder"), startdir);
+       dirname = filesel_select_file_open_folder(_("Select destination folder"), startdir);
        if (!dirname) {
                if (startdir) g_free(startdir);
                return;
@@ -1073,7 +1077,7 @@ static void mimeview_save_all(MimeView *mimeview)
        while (partinfo != NULL) {
                if (partinfo->type != MIMETYPE_MESSAGE &&
                    partinfo->type != MIMETYPE_MULTIPART &&
-                   partinfo->disposition != DISPOSITIONTYPE_INLINE) {
+                   partinfo->disposition == DISPOSITIONTYPE_ATTACHMENT) {
                        gchar *filename = mimeview_get_filename_for_part
                                (partinfo, dirname, number++);
 
@@ -1098,7 +1102,6 @@ static void mimeview_save_all(MimeView *mimeview)
 static void mimeview_save_as(MimeView *mimeview)
 {
        gchar *filename;
-       gchar *defname = NULL;
        gchar *filepath = NULL;
        gchar *filedir = NULL;
        MimeInfo *partinfo;
@@ -1117,18 +1120,17 @@ static void mimeview_save_as(MimeView *mimeview)
        }                        
        g_return_if_fail(partinfo != NULL);
        
-       if ((partname = get_part_name(partinfo)) != NULL) {
-               Xstrdup_a(defname, partname, return);
-               subst_for_shellsafe_filename(defname);
+       if ((partname = get_part_name(partinfo)) == NULL) {
+               return;
        }
 
        if (prefs_common.attach_save_dir)
                filepath = g_strconcat(prefs_common.attach_save_dir,
-                                      G_DIR_SEPARATOR_S, defname, NULL);
+                                      G_DIR_SEPARATOR_S, partname, NULL);
        else
-               filepath = g_strdup(defname);
+               filepath = g_strdup(partname);
 
-       filename = filesel_select_file(_("Save as"), filepath);
+       filename = filesel_select_file_save(_("Save as"), filepath);
        if (!filename) {
                g_free(filepath);
                return;
@@ -1692,21 +1694,23 @@ static void icon_scroll_size_allocate_cb(GtkWidget *widget,
 static void icon_list_create(MimeView *mimeview, MimeInfo *mimeinfo)
 {
        GtkRequisition size;
-       gint           width;
+
        g_return_if_fail(mimeinfo != NULL);
 
        while (mimeinfo != NULL) {
                if (mimeinfo->type != MIMETYPE_MULTIPART)
                        icon_list_append_icon(mimeview, mimeinfo);
                if (mimeinfo->node->children != NULL)
-                       icon_list_create(mimeview, (MimeInfo *) mimeinfo->node->children->data);
-               mimeinfo = mimeinfo->node->next != NULL ? (MimeInfo *) mimeinfo->node->next->data : NULL;
+                       icon_list_create(mimeview, 
+                               (MimeInfo *) mimeinfo->node->children->data);
+               mimeinfo = mimeinfo->node->next != NULL 
+                        ? (MimeInfo *) mimeinfo->node->next->data 
+                        : NULL;
        }
        gtk_widget_size_request(mimeview->icon_vbox, &size);
-       width = size.width + 4;
-       if (width > mimeview->icon_mainbox->requisition.width) {
+       if (size.width > mimeview->icon_mainbox->requisition.width) {
                gtk_widget_set_size_request(mimeview->icon_mainbox, 
-                                           width, -1);
+                                           size.width, -1);
        }
 
 }