shell: Don't repeat the item title when searching

https://bugzilla.gnome.org/show_bug.cgi?id=657020
This commit is contained in:
Bastien Nocera 2011-08-26 13:59:23 +01:00
parent 760522d02c
commit 93d7d6b6ea
3 changed files with 19 additions and 17 deletions

View file

@ -161,7 +161,6 @@ cc_shell_model_add_item (CcShellModel *model,
const gchar *comment = g_app_info_get_description (appinfo);
gchar *id;
GdkPixbuf *pixbuf = NULL;
gchar *search_target;
GKeyFile *key_file;
gchar **keywords;
@ -199,23 +198,17 @@ cc_shell_model_add_item (CcShellModel *model,
pixbuf = load_pixbuf_for_gicon (icon);
if (comment && comment[0])
search_target = g_strconcat (name, " - ", comment, NULL);
else
search_target = g_strdup (name);
gtk_list_store_insert_with_values (GTK_LIST_STORE (model), NULL, 0,
COL_NAME, name,
COL_DESKTOP_FILE, desktop,
COL_ID, id,
COL_PIXBUF, pixbuf,
COL_CATEGORY, category_name,
COL_SEARCH_TARGET, search_target,
COL_DESCRIPTION, comment,
COL_GICON, icon,
COL_KEYWORDS, keywords,
-1);
g_free (id);
g_free (search_target);
g_strfreev (keywords);
}

View file

@ -60,7 +60,7 @@ enum
COL_ID,
COL_PIXBUF,
COL_CATEGORY,
COL_SEARCH_TARGET,
COL_DESCRIPTION,
COL_GICON,
COL_KEYWORDS,

View file

@ -399,29 +399,39 @@ model_filter_func (GtkTreeModel *model,
GtkTreeIter *iter,
GnomeControlCenterPrivate *priv)
{
gchar *name, *target;
gchar *name, *description;
gchar *needle, *haystack;
gboolean result;
gchar **keywords;
gtk_tree_model_get (model, iter, COL_NAME, &name,
COL_SEARCH_TARGET, &target,
gtk_tree_model_get (model, iter,
COL_NAME, &name,
COL_DESCRIPTION, &description,
COL_KEYWORDS, &keywords,
-1);
if (!priv->filter_string || !name || !target)
if (!priv->filter_string || !name)
{
g_free (name);
g_free (target);
g_free (description);
g_strfreev (keywords);
return FALSE;
}
needle = g_utf8_casefold (priv->filter_string, -1);
haystack = g_utf8_casefold (target, -1);
haystack = g_utf8_casefold (name, -1);
result = (strstr (haystack, needle) != NULL);
if (!result && description)
{
gchar *folded;
folded = g_utf8_casefold (description, -1);
result = (strstr (folded, needle) != NULL);
g_free (folded);
}
if (!result && keywords)
{
gint i;
@ -436,7 +446,6 @@ model_filter_func (GtkTreeModel *model,
}
g_free (name);
g_free (target);
g_free (haystack);
g_free (needle);
g_strfreev (keywords);
@ -582,7 +591,7 @@ setup_search (GnomeControlCenter *shell)
"title", COL_NAME);
gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (search_view),
priv->search_renderer,
"search-target", COL_SEARCH_TARGET);
"search-target", COL_DESCRIPTION);
/* connect the activated signal */
g_signal_connect (search_view, "desktop-item-activated",