summary_lock(summaryview);
if (!prefs_common.summary_quicksearch_sticky
+ && !prefs_common.summary_quicksearch_recurse
&& !quicksearch_is_running(summaryview->quicksearch)) {
quicksearch_set(summaryview->quicksearch, prefs_common.summary_quicksearch_type, "");
}
gtk_clist_thaw(GTK_CLIST(ctree));
summary_unlock(summaryview);
inc_unlock();
+ if (item && quicksearch_is_running(summaryview->quicksearch)) {
+ main_window_cursor_wait(summaryview->mainwin);
+ quicksearch_reset_cur_folder_item(summaryview->quicksearch);
+ if (quicksearch_is_active(summaryview->quicksearch))
+ quicksearch_search_subfolders(summaryview->quicksearch,
+ summaryview->folderview,
+ summaryview->folder_item);
+ main_window_cursor_normal(summaryview->mainwin);
+ }
return TRUE;
}
g_free(buf);
else
procmsg_msginfo_free(msginfo);
}
-
+
+ if (quicksearch_is_running(summaryview->quicksearch)) {
+ /* only scan subfolders when quicksearch changed,
+ * not when search is the same and folder changed */
+ main_window_cursor_wait(summaryview->mainwin);
+ quicksearch_reset_cur_folder_item(summaryview->quicksearch);
+ quicksearch_search_subfolders(summaryview->quicksearch,
+ summaryview->folderview,
+ summaryview->folder_item);
+ main_window_cursor_normal(summaryview->mainwin);
+ }
+
g_slist_free(mlist);
mlist = not_killed;
}
MsgInfo *msginfo;
gchar *filename = NULL;
gchar *src, *dest;
+ gchar *tmp;
AlertValue aval = 0;
}
src = procmsg_get_message_file(msginfo);
+ tmp = g_path_get_basename(dest);
+
if ( aval==0 ) { /* append */
if (append_file(src, dest, TRUE) < 0)
- alertpanel_error(_("Can't save the file `%s'."),
- g_basename(dest));
+ alertpanel_error(_("Can't save the file `%s'."), tmp);
} else { /* overwrite */
if (copy_file(src, dest, TRUE) < 0)
- alertpanel_error(_("Can't save the file `%s'."),
- g_basename(dest));
+ alertpanel_error(_("Can't save the file `%s'."), tmp);
}
g_free(src);
-
/*
* If two or more msgs are selected,
if (!msginfo) break;
src = procmsg_get_message_file(msginfo);
if (append_file(src, dest, TRUE) < 0)
- alertpanel_error(_("Can't save the file `%s'."),
- g_basename(dest));
+ alertpanel_error(_("Can't save the file `%s'."), tmp);
}
g_free(src);
}
+ g_free(dest);
+ g_free(tmp);
}
void summary_print(SummaryView *summaryview)
MessageView *messageview;
TextView *textview;
GtkAdjustment *adj;
+ gboolean mod_pressed;
if (summary_is_locked(summaryview)) return TRUE;
if (!event) return TRUE;
summaryview->selected);
break;
}
- if (!textview_scroll_page(textview, FALSE))
- summary_select_next_unread(summaryview);
- }
+ mod_pressed = ((event->state &
+ (GDK_SHIFT_MASK|GDK_MOD1_MASK)) != 0);
+ if (mod_pressed) {
+ if (!textview_scroll_page(textview, TRUE))
+ summary_select_prev_unread(summaryview);
+ } else {
+ if (!textview_scroll_page(textview, FALSE))
+ summary_select_next_unread(summaryview);
+ }
+ }
break;
case GDK_BackSpace: /* Page up */
textview_scroll_page(textview, TRUE);
break;
}
textview_scroll_one_line
- (textview, (event->state & GDK_MOD1_MASK) != 0);
+ (textview, (event->state &
+ (GDK_SHIFT_MASK|GDK_MOD1_MASK)) != 0);
break;
case GDK_Delete:
BREAK_ON_MODIFIER_KEY();
if (node)
summary_select_node(summaryview, node, TRUE, TRUE);
}
+
+void summaryview_export_mbox_list(SummaryView *summaryview)
+{
+ GSList *list = summary_get_selected_msg_list(summaryview);
+ gchar *mbox = filesel_select_file_save(_("Export to mbox file"), NULL);
+
+ if (mbox == NULL || list == NULL)
+ return;
+
+ export_list_to_mbox(list, mbox);
+
+ g_slist_free(list);
+ g_free(mbox);
+
+}