untwist file selection logic - be explicit
[claws.git] / src / summaryview.c
index b05bcc2bb063300602e8204b342d414d860c14ff..ac8fcb6f0c0c84faf78bd449587feca557c968fb 100644 (file)
@@ -83,6 +83,7 @@
 #include "description_window.h"
 #include "folderutils.h"
 #include "quicksearch.h"
+#include "partial_download.h"
 
 #define SUMMARY_COL_MARK_WIDTH         10
 #define SUMMARY_COL_STATUS_WIDTH       13
@@ -403,10 +404,10 @@ static GtkItemFactoryEntry summary_popup_entries[] =
        {N_("/Cancel a news message"),  NULL, summary_cancel,   0, NULL},
        {N_("/---"),                    NULL, NULL,             0, "<Separator>"},
        {N_("/_Mark"),                  NULL, NULL,             0, "<Branch>"},
-       {N_("/_Mark/_Mark"),            "<shift>asterisk", summary_mark,        0, NULL},
-       {N_("/_Mark/_Unmark"),          "U", summary_unmark,    0, NULL},
+       {N_("/_Mark/_Mark"),            NULL, summary_mark,     0, NULL},
+       {N_("/_Mark/_Unmark"),          NULL, summary_unmark,   0, NULL},
        {N_("/_Mark/---"),              NULL, NULL,             0, "<Separator>"},
-       {N_("/_Mark/Mark as unr_ead"),  "<shift>exclam", summary_mark_as_unread, 0, NULL},
+       {N_("/_Mark/Mark as unr_ead"),  NULL, summary_mark_as_unread, 0, NULL},
        {N_("/_Mark/Mark as rea_d"),    NULL, summary_mark_as_read, 0, NULL},
        {N_("/_Mark/Mark all read"),    NULL, summary_mark_all_read, 0, NULL},
        {N_("/_Mark/Ignore thread"),    NULL, summary_ignore_thread, 0, NULL},
@@ -798,6 +799,11 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item)
        inc_lock();
        summary_lock(summaryview);
 
+       if (!prefs_common.summary_quicksearch_sticky
+        && !quicksearch_is_running(summaryview->quicksearch)) {
+               quicksearch_set(summaryview->quicksearch, prefs_common.summary_quicksearch_type, "");
+       }
+
        /* STATUSBAR_POP(summaryview->mainwin); */
 
        is_refresh = (item == summaryview->folder_item) ? TRUE : FALSE;
@@ -855,9 +861,6 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item)
        summaryview->folder_item = item;
        item->opened = TRUE;
 
-       g_signal_handlers_unblock_matched(G_OBJECT(ctree), G_SIGNAL_MATCH_DATA,
-                                         0, 0, NULL, NULL, summaryview);
-
        buf = g_strdup_printf(_("Scanning folder (%s)..."), item->path);
        debug_print("%s\n", buf);
        STATUSBAR_PUSH(summaryview->mainwin, buf);
@@ -958,9 +961,6 @@ gboolean summary_show(SummaryView *summaryview, FolderItem *item)
        if (summaryview->sort_key != SORT_BY_NONE)
                summary_sort(summaryview, summaryview->sort_key, summaryview->sort_type);
 
-       g_signal_handlers_unblock_matched(G_OBJECT(ctree), G_SIGNAL_MATCH_DATA,
-                                         0, 0, NULL, NULL, summaryview);
-
        gtk_clist_thaw(GTK_CLIST(ctree));
 
        if (is_refresh) {
@@ -2957,11 +2957,19 @@ void summary_delete(SummaryView *summaryview)
        /* if current folder is trash, ask for confirmation */
        if (item->stype == F_TRASH) {
                AlertValue aval;
+               MsgInfo *msginfo;
 
                aval = alertpanel(_("Delete message(s)"),
                                  _("Do you really want to delete message(s) from the trash?"),
                                  _("Yes"), _("No"), NULL);
                if (aval != G_ALERTDEFAULT) return;
+
+               for (cur = GTK_CLIST(ctree)->selection; cur != NULL; cur = cur->next) {
+                       GtkCTreeNode *row = GTK_CTREE_NODE(cur->data);
+                       msginfo = gtk_ctree_node_get_row_data(ctree, row);
+                       partial_mark_for_delete(msginfo);
+               }
+       
        }
 
        main_window_cursor_wait(summaryview->mainwin);
@@ -3256,10 +3264,10 @@ void summary_save_as(SummaryView *summaryview)
                        g_warning("summary_save_as(): faild to convert character set.");
                        filename = g_strdup(oldstr);
                }
-               dest = filesel_select_file(_("Save as"), filename);
+               dest = filesel_select_file_save(_("Save as"), filename);
                g_free(filename);
        } else
-               dest = filesel_select_file(_("Save as"), filename);
+               dest = filesel_select_file_save(_("Save as"), filename);
        filename = NULL;
        if (!dest) return;
        if (is_file_exist(dest)) {
@@ -4320,6 +4328,9 @@ static gboolean summary_key_pressed(GtkWidget *widget, GdkEventKey *event,
        if (summary_is_locked(summaryview)) return TRUE;
        if (!event) return TRUE;
 
+       if (quicksearch_has_focus(summaryview->quicksearch))
+               return FALSE;
+
        switch (event->keyval) {
        case GDK_Left:          /* Move focus */
                adj = gtk_scrolled_window_get_hadjustment