gboolean quicksearch_run_on_folder(QuickSearch* quicksearch, FolderItem *folderItem, MsgInfoList **result)
{
if (quicksearch_has_sat_predicate(quicksearch)) {
+ gboolean was_running = quicksearch_is_running(quicksearch);
gboolean searchres;
+
+ if (!was_running)
+ quicksearch_set_running(quicksearch, TRUE);
+
main_window_cursor_wait(mainwindow_get_mainwindow());
searchres = advsearch_search_msgs_in_folders(quicksearch->asearch, result, folderItem, FALSE);
main_window_cursor_normal(mainwindow_get_mainwindow());
+
+ if (!was_running)
+ quicksearch_set_running(quicksearch, FALSE);
+
if (quicksearch->want_reexec) {
advsearch_set(quicksearch->asearch, quicksearch->request.type, "");
}
}
if (prefs_common.summary_quicksearch_dynamic) {
- if (qs->press_timeout_id != -1) {
+ if (qs->press_timeout_id != 0) {
g_source_remove(qs->press_timeout_id);
}
qs->press_timeout_id = g_timeout_add(500,
}
if (event != NULL && (event->keyval == GDK_KEY_Return || event->keyval == GDK_KEY_KP_Enter)) {
- if (quicksearch->press_timeout_id != -1) {
+ if (quicksearch->press_timeout_id != 0) {
g_source_remove(quicksearch->press_timeout_id);
- quicksearch->press_timeout_id = -1;
+ quicksearch->press_timeout_id = 0;
}
quicksearch->in_typing = FALSE;
/* add expression to history list and exec quicksearch */
quicksearch_set_popdown_strings(quicksearch);
quicksearch_invoke_execute(quicksearch, FALSE);
+ gtk_widget_grab_focus(quicksearch->search_string_entry);
return TRUE;
}
"N", N_("new messages"),
"O", N_("old messages"),
"p", N_("incomplete messages (not entirely downloaded)"),
- "r", N_("messages which have been replied to"),
+ "r", N_("messages which you have replied to"),
"R", N_("read messages"),
"s S", N_("messages which contain S in subject"),
"se #", N_("messages whose score is equal to # points"),
static void search_description_cb(GtkWidget *widget)
{
- search_descr.parent = mainwindow_get_mainwindow()->window;
+ search_descr.parent = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "description_window");
description_window_create(&search_descr);
};
quicksearch->active = FALSE;
quicksearch->running = FALSE;
quicksearch->in_typing = FALSE;
- quicksearch->press_timeout_id = -1;
+ quicksearch->press_timeout_id = 0;
quicksearch->normal_search_strings = NULL;
quicksearch->extended_search_strings = NULL;
quicksearch->running = FALSE;
quicksearch->clear_search = clear_search;
quicksearch->in_typing = FALSE;
- quicksearch->press_timeout_id = -1;
+ quicksearch->press_timeout_id = 0;
quicksearch->normal_search_strings = NULL;
quicksearch->extended_search_strings = NULL;
quicksearch_set_button(GTK_BUTTON(quicksearch->search_description), GTK_STOCK_INFO, _("_Information"));
- quicksearch_set_button(GTK_BUTTON(quicksearch->search_condition_expression), GTK_STOCK_EDIT, _("_Edit"));
+ quicksearch_set_button(GTK_BUTTON(quicksearch->search_condition_expression), GTK_STOCK_EDIT, _("E_dit"));
quicksearch_set_button(GTK_BUTTON(quicksearch->clear_search), GTK_STOCK_CLEAR, _("C_lear"));
update_extended_buttons(quicksearch);
case WIDE_LAYOUT:
case WIDE_MSGLIST_LAYOUT:
quicksearch_set_button(GTK_BUTTON(quicksearch->search_description), GTK_STOCK_INFO, _("_Information"));
- quicksearch_set_button(GTK_BUTTON(quicksearch->search_condition_expression), GTK_STOCK_EDIT, _("_Edit"));
+ quicksearch_set_button(GTK_BUTTON(quicksearch->search_condition_expression), GTK_STOCK_EDIT, _("E_dit"));
quicksearch_set_button(GTK_BUTTON(quicksearch->clear_search), GTK_STOCK_CLEAR, _("C_lear"));
break;
case SMALL_LAYOUT:
GtkWidget *ctree = NULL;
gtk_widget_show(quicksearch->hbox_search);
update_extended_buttons(quicksearch);
- gtk_widget_grab_focus(
- GTK_WIDGET(gtk_bin_get_child(GTK_BIN((quicksearch->search_string_entry)))));
+ gtk_widget_grab_focus(quicksearch->search_string_entry);
if (!mainwin || !mainwin->summaryview) {
return;
g_list_append(
quicksearch->normal_search_strings,
g_strdup(strings->data));
- g_free(newstr);
- continue;
- }
-
- matcher_list = matcher_parser_get_cond(newstr, FALSE);
- g_free(newstr);
+ } else {
+ matcher_list = matcher_parser_get_cond(newstr, FALSE);
- if (matcher_list) {
- quicksearch->extended_search_strings =
- g_list_prepend(
- quicksearch->extended_search_strings,
- g_strdup(strings->data));
- matcherlist_free(matcher_list);
- } else
- quicksearch->normal_search_strings =
- g_list_prepend(
- quicksearch->normal_search_strings,
- g_strdup(strings->data));
+ if (matcher_list) {
+ quicksearch->extended_search_strings =
+ g_list_prepend(
+ quicksearch->extended_search_strings,
+ g_strdup(strings->data));
+ matcherlist_free(matcher_list);
+ } else
+ quicksearch->normal_search_strings =
+ g_list_prepend(
+ quicksearch->normal_search_strings,
+ g_strdup(strings->data));
+ }
}
+ g_free(newstr);
} while ((strings = g_list_next(strings)) != NULL);