[gnome-control-center] search-provider: Concatenate search terms with AND
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] search-provider: Concatenate search terms with AND
- Date: Fri, 1 Mar 2013 23:10:18 +0000 (UTC)
commit 4d01f6bfed83e7d1520e590a7c3898a01839ebf1
Author: Florian Müllner <fmuellner gnome org>
Date: Fri Mar 1 22:01:37 2013 +0100
search-provider: Concatenate search terms with AND
Currently the provider will match all panels that match at least
one search term. This differs from the search pattern we use in
GNOME Shell and other GNOME applications, where a result has to
match all search terms. The latter allows users to narrow down
search results by adding additional terms, which is generally
more useful than potentially adding additional results.
https://bugzilla.gnome.org/show_bug.cgi?id=694960
search-provider/cc-search-provider.c | 21 ++++++++++-----------
1 files changed, 10 insertions(+), 11 deletions(-)
---
diff --git a/search-provider/cc-search-provider.c b/search-provider/cc-search-provider.c
index 9376735..fde0fc7 100644
--- a/search-provider/cc-search-provider.c
+++ b/search-provider/cc-search-provider.c
@@ -71,21 +71,21 @@ get_casefolded_terms (char **terms)
}
static gboolean
-matches_multiple_terms (GtkTreeModel *model,
- GtkTreeIter *iter,
- char **terms)
+matches_all_terms (GtkTreeModel *model,
+ GtkTreeIter *iter,
+ char **terms)
{
int i;
for (i = 0; terms[i]; i++)
{
- if (cc_shell_model_iter_matches_search (CC_SHELL_MODEL (model),
- iter,
- terms[i]))
- return TRUE;
+ if (!cc_shell_model_iter_matches_search (CC_SHELL_MODEL (model),
+ iter,
+ terms[i]))
+ return FALSE;
}
- return FALSE;
+ return TRUE;
}
static GtkTreeModel *
@@ -116,8 +116,7 @@ handle_get_initial_result_set (CcShellSearchProvider2 *skeleton,
ok = gtk_tree_model_get_iter_first (model, &iter);
while (ok)
{
- if (matches_multiple_terms (model, &iter,
- casefolded_terms))
+ if (matches_all_terms (model, &iter, casefolded_terms))
{
g_ptr_array_add (results,
gtk_tree_model_get_string_from_iter (model,
@@ -159,7 +158,7 @@ handle_get_subsearch_result_set (CcShellSearchProvider2 *skeleton,
{
if (gtk_tree_model_get_iter_from_string (model, &iter,
previous_results[i]) &&
- matches_multiple_terms (model, &iter, casefolded_terms))
+ matches_all_terms (model, &iter, casefolded_terms))
{
g_ptr_array_add (results, g_strdup (previous_results[i]));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]