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);
|
const gchar *comment = g_app_info_get_description (appinfo);
|
||||||
gchar *id;
|
gchar *id;
|
||||||
GdkPixbuf *pixbuf = NULL;
|
GdkPixbuf *pixbuf = NULL;
|
||||||
gchar *search_target;
|
|
||||||
GKeyFile *key_file;
|
GKeyFile *key_file;
|
||||||
gchar **keywords;
|
gchar **keywords;
|
||||||
|
|
||||||
|
@ -199,23 +198,17 @@ cc_shell_model_add_item (CcShellModel *model,
|
||||||
|
|
||||||
pixbuf = load_pixbuf_for_gicon (icon);
|
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,
|
gtk_list_store_insert_with_values (GTK_LIST_STORE (model), NULL, 0,
|
||||||
COL_NAME, name,
|
COL_NAME, name,
|
||||||
COL_DESKTOP_FILE, desktop,
|
COL_DESKTOP_FILE, desktop,
|
||||||
COL_ID, id,
|
COL_ID, id,
|
||||||
COL_PIXBUF, pixbuf,
|
COL_PIXBUF, pixbuf,
|
||||||
COL_CATEGORY, category_name,
|
COL_CATEGORY, category_name,
|
||||||
COL_SEARCH_TARGET, search_target,
|
COL_DESCRIPTION, comment,
|
||||||
COL_GICON, icon,
|
COL_GICON, icon,
|
||||||
COL_KEYWORDS, keywords,
|
COL_KEYWORDS, keywords,
|
||||||
-1);
|
-1);
|
||||||
|
|
||||||
g_free (id);
|
g_free (id);
|
||||||
g_free (search_target);
|
|
||||||
g_strfreev (keywords);
|
g_strfreev (keywords);
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,7 +60,7 @@ enum
|
||||||
COL_ID,
|
COL_ID,
|
||||||
COL_PIXBUF,
|
COL_PIXBUF,
|
||||||
COL_CATEGORY,
|
COL_CATEGORY,
|
||||||
COL_SEARCH_TARGET,
|
COL_DESCRIPTION,
|
||||||
COL_GICON,
|
COL_GICON,
|
||||||
COL_KEYWORDS,
|
COL_KEYWORDS,
|
||||||
|
|
||||||
|
|
|
@ -399,29 +399,39 @@ model_filter_func (GtkTreeModel *model,
|
||||||
GtkTreeIter *iter,
|
GtkTreeIter *iter,
|
||||||
GnomeControlCenterPrivate *priv)
|
GnomeControlCenterPrivate *priv)
|
||||||
{
|
{
|
||||||
gchar *name, *target;
|
gchar *name, *description;
|
||||||
gchar *needle, *haystack;
|
gchar *needle, *haystack;
|
||||||
gboolean result;
|
gboolean result;
|
||||||
gchar **keywords;
|
gchar **keywords;
|
||||||
|
|
||||||
gtk_tree_model_get (model, iter, COL_NAME, &name,
|
gtk_tree_model_get (model, iter,
|
||||||
COL_SEARCH_TARGET, &target,
|
COL_NAME, &name,
|
||||||
|
COL_DESCRIPTION, &description,
|
||||||
COL_KEYWORDS, &keywords,
|
COL_KEYWORDS, &keywords,
|
||||||
-1);
|
-1);
|
||||||
|
|
||||||
if (!priv->filter_string || !name || !target)
|
if (!priv->filter_string || !name)
|
||||||
{
|
{
|
||||||
g_free (name);
|
g_free (name);
|
||||||
g_free (target);
|
g_free (description);
|
||||||
g_strfreev (keywords);
|
g_strfreev (keywords);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
needle = g_utf8_casefold (priv->filter_string, -1);
|
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);
|
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)
|
if (!result && keywords)
|
||||||
{
|
{
|
||||||
gint i;
|
gint i;
|
||||||
|
@ -436,7 +446,6 @@ model_filter_func (GtkTreeModel *model,
|
||||||
}
|
}
|
||||||
|
|
||||||
g_free (name);
|
g_free (name);
|
||||||
g_free (target);
|
|
||||||
g_free (haystack);
|
g_free (haystack);
|
||||||
g_free (needle);
|
g_free (needle);
|
||||||
g_strfreev (keywords);
|
g_strfreev (keywords);
|
||||||
|
@ -582,7 +591,7 @@ setup_search (GnomeControlCenter *shell)
|
||||||
"title", COL_NAME);
|
"title", COL_NAME);
|
||||||
gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (search_view),
|
gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (search_view),
|
||||||
priv->search_renderer,
|
priv->search_renderer,
|
||||||
"search-target", COL_SEARCH_TARGET);
|
"search-target", COL_DESCRIPTION);
|
||||||
|
|
||||||
/* connect the activated signal */
|
/* connect the activated signal */
|
||||||
g_signal_connect (search_view, "desktop-item-activated",
|
g_signal_connect (search_view, "desktop-item-activated",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue