/*
* Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2012 Colin Leroy <colin@colino.net>
+ * Copyright (C) 1999-2013 Colin Leroy <colin@colino.net>
* and the Claws Mail team
*
* This program is free software; you can redistribute it and/or modify
gboolean running;
gboolean has_focus;
gboolean in_typing;
- guint press_timeout_id;
+ gint press_timeout_id;
GList *normal_search_strings;
GList *extended_search_strings;
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, "");
}
{
GtkWidget *search_string_entry = quicksearch->search_string_entry;
+#if !GTK_CHECK_VERSION(2, 24, 0)
combobox_unset_popdown_strings(GTK_COMBO_BOX(search_string_entry));
-
if (prefs_common.summary_quicksearch_type == ADVANCED_SEARCH_EXTENDED)
combobox_set_popdown_strings(GTK_COMBO_BOX(search_string_entry),
quicksearch->extended_search_strings);
else
combobox_set_popdown_strings(GTK_COMBO_BOX(search_string_entry),
quicksearch->normal_search_strings);
+#else
+ combobox_unset_popdown_strings(GTK_COMBO_BOX_TEXT(search_string_entry));
+ if (prefs_common.summary_quicksearch_type == ADVANCED_SEARCH_EXTENDED)
+ combobox_set_popdown_strings(GTK_COMBO_BOX_TEXT(search_string_entry),
+ quicksearch->extended_search_strings);
+ else
+ combobox_set_popdown_strings(GTK_COMBO_BOX_TEXT(search_string_entry),
+ quicksearch->normal_search_strings);
+#endif
}
static void update_extended_buttons (QuickSearch *quicksearch)
"a", N_("all messages"),
"ag #", N_("messages whose age is greater than # days"),
"al #", N_("messages whose age is less than # days"),
+ "agh #", N_("messages whose age is greater than # hours"),
+ "alh #", N_("messages whose age is less than # hours"),
"b S", N_("messages which contain S in the message body"),
"B S", N_("messages which contain S in the whole message"),
"c S", N_("messages carbon-copied to S"),
static DescriptionWindow search_descr = {
NULL,
NULL,
+ FALSE,
2,
N_("Extended Search"),
N_("Extended Search allows the user to define criteria that messages must "
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->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:
g_list_append(
quicksearch->normal_search_strings,
g_strdup(strings->data));
- g_free(newstr);
- continue;
- }
+ } else {
+ matcher_list = matcher_parser_get_cond(newstr, FALSE);
- matcher_list = matcher_parser_get_cond(newstr, FALSE);
- g_free(newstr);
-
- 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);