shell: Don't repeat the item title when searching
https://bugzilla.gnome.org/show_bug.cgi?id=657020
This commit is contained in:
parent
760522d02c
commit
93d7d6b6ea
3 changed files with 19 additions and 17 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -60,7 +60,7 @@ enum
|
|||
COL_ID,
|
||||
COL_PIXBUF,
|
||||
COL_CATEGORY,
|
||||
COL_SEARCH_TARGET,
|
||||
COL_DESCRIPTION,
|
||||
COL_GICON,
|
||||
COL_KEYWORDS,
|
||||
|
||||
|
|
|
@ -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",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue