QuickSearchExecuteCallback callback;
gpointer callback_data;
gboolean running;
- FolderItem *root_folder_item
+ FolderItem *root_folder_item;
};
void quicksearch_set_running(QuickSearch *quicksearch, gboolean run);
return TRUE;
}
-static void searchtype_changed(GtkMenuItem *widget, gpointer data)
+static gboolean searchtype_changed(GtkMenuItem *widget, gpointer data)
{
QuickSearch *quicksearch = (QuickSearch *)data;
if (quicksearch->callback != NULL)
quicksearch->callback(quicksearch, quicksearch->callback_data);
quicksearch_set_running(quicksearch, FALSE);
+ return TRUE;
+}
+
+static gboolean searchtype_recursive_changed(GtkMenuItem *widget, gpointer data)
+{
+ QuickSearch *quicksearch = (QuickSearch *)data;
+ gboolean checked = GTK_CHECK_MENU_ITEM(widget)->active;
+
+ prefs_common.summary_quicksearch_recurse = checked;
+
+ /* reselect the search type */
+ gtk_option_menu_set_history(GTK_OPTION_MENU(quicksearch->search_type_opt),
+ prefs_common.summary_quicksearch_type);
+
+ prepare_matcher(quicksearch);
+
+ quicksearch_set_running(quicksearch, TRUE);
+ if (quicksearch->callback != NULL)
+ quicksearch->callback(quicksearch, quicksearch->callback_data);
+ quicksearch_set_running(quicksearch, FALSE);
+ return TRUE;
}
/*
GTK_SIGNAL_FUNC(searchtype_changed),
quicksearch);
+ MENUITEM_ADD (search_type, menuitem, NULL, NULL);
+
+ menuitem = gtk_check_menu_item_new_with_label(_("Recursive"));
+ gtk_widget_show(menuitem);
+ gtk_menu_shell_append(GTK_MENU_SHELL(search_type), menuitem);
+
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem),
+ prefs_common.summary_quicksearch_recurse);
+
+ gtk_signal_connect(GTK_OBJECT(menuitem), "activate",
+ GTK_SIGNAL_FUNC(searchtype_recursive_changed),
+ quicksearch);
+
gtk_option_menu_set_menu(GTK_OPTION_MENU(search_type_opt), search_type);
gtk_option_menu_set_history(GTK_OPTION_MENU(search_type_opt), prefs_common.summary_quicksearch_type);
FolderItem *cur = NULL;
GNode *node = folder_item->node->children;
+ if (!prefs_common.summary_quicksearch_recurse)
+ return;
+
for (; node != NULL; node = node->next) {
cur = FOLDER_ITEM(node->data);
if (quicksearch_match_subfolder(quicksearch, cur)) {
NULL, NULL, NULL},
{"summary_quicksearch_sticky", "1", &prefs_common.summary_quicksearch_sticky, P_INT,
NULL, NULL, NULL},
+ {"summary_quicksearch_recurse", "1", &prefs_common.summary_quicksearch_recurse, P_INT,
+ NULL, NULL, NULL},
{"io_timeout_secs", "60", &prefs_common.io_timeout_secs,
P_INT, &other.spinbtn_iotimeout,