[gtk/prop-list: 96/96] inspector: Use search instead of filtering for properties
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/prop-list: 96/96] inspector: Use search instead of filtering for properties
- Date: Tue, 24 Dec 2019 20:44:59 +0000 (UTC)
commit 3d536795edc4ff6d62753a61571ea3c5c5c4aaa9
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Dec 24 15:34:04 2019 -0500
inspector: Use search instead of filtering for properties
This is mainly to test the search support.
gtk/inspector/prop-list.c | 28 +++++++++++++++++++---------
1 file changed, 19 insertions(+), 9 deletions(-)
---
diff --git a/gtk/inspector/prop-list.c b/gtk/inspector/prop-list.c
index 9ba203258f..4c5d311ea0 100644
--- a/gtk/inspector/prop-list.c
+++ b/gtk/inspector/prop-list.c
@@ -229,6 +229,18 @@ update_filter (GtkInspectorPropList *pl,
gtk_string_filter_set_search (GTK_STRING_FILTER (pl->priv->filter), text);
}
+static void
+next_match (GtkInspectorPropList *pl)
+{
+ gtk_column_view_select_next_match (GTK_COLUMN_VIEW (pl->priv->list));
+}
+
+static void
+previous_match (GtkInspectorPropList *pl)
+{
+ gtk_column_view_select_previous_match (GTK_COLUMN_VIEW (pl->priv->list));
+}
+
static void
constructed (GObject *object)
{
@@ -243,6 +255,10 @@ constructed (GObject *object)
G_CALLBACK (show_search_entry), pl);
g_signal_connect_swapped (pl->priv->search_entry, "search-changed",
G_CALLBACK (update_filter), pl);
+ g_signal_connect_swapped (pl->priv->search_entry, "next-match",
+ G_CALLBACK (next_match), pl);
+ g_signal_connect_swapped (pl->priv->search_entry, "previous-match",
+ G_CALLBACK (previous_match), pl);
}
static void
@@ -579,8 +595,6 @@ gtk_inspector_prop_list_set_object (GtkInspectorPropList *pl,
guint num_properties;
guint i;
GListStore *store;
- GListModel *list;
- GListModel *filtered;
GtkSortListModel *sorted;
if (!object)
@@ -618,19 +632,15 @@ gtk_inspector_prop_list_set_object (GtkInspectorPropList *pl,
if (GTK_IS_WIDGET (object))
g_signal_connect_object (object, "destroy", G_CALLBACK (cleanup_object), pl, G_CONNECT_SWAPPED);
- filtered = G_LIST_MODEL (gtk_filter_list_model_new (G_LIST_MODEL (store), pl->priv->filter));
- sorted = gtk_sort_list_model_new (filtered, NULL);
- list = G_LIST_MODEL (gtk_no_selection_new (G_LIST_MODEL (sorted)));
+ sorted = gtk_sort_list_model_new (G_LIST_MODEL (store), gtk_column_view_get_sorter (GTK_COLUMN_VIEW
(pl->priv->list)));
- gtk_column_view_set_model (GTK_COLUMN_VIEW (pl->priv->list), list);
- gtk_sort_list_model_set_sorter (sorted, gtk_column_view_get_sorter (GTK_COLUMN_VIEW (pl->priv->list)));
+ gtk_column_view_set_selection_filter (GTK_COLUMN_VIEW (pl->priv->list), pl->priv->filter);
+ gtk_column_view_set_model (GTK_COLUMN_VIEW (pl->priv->list), G_LIST_MODEL (sorted));
gtk_column_view_sort_by_column (GTK_COLUMN_VIEW (pl->priv->list), pl->priv->name, GTK_SORT_ASCENDING);
gtk_widget_show (GTK_WIDGET (pl));
- g_object_unref (list);
g_object_unref (sorted);
- g_object_unref (filtered);
g_object_unref (store);
return TRUE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]