[gnome-builder] libide/search: implement default refiltering
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] libide/search: implement default refiltering
- Date: Sat, 16 Jul 2022 00:27:15 +0000 (UTC)
commit 408596b80e2d7bf69681df471e7171cc08eccc74
Author: Christian Hergert <chergert redhat com>
Date: Fri Jul 15 17:11:48 2022 -0700
libide/search: implement default refiltering
This is to help us avoid requerying all providers when typing additional
words in the search box.
src/libide/search/ide-search-result.c | 20 ++++++++++++++++++++
src/libide/search/meson.build | 2 ++
2 files changed, 22 insertions(+)
---
diff --git a/src/libide/search/ide-search-result.c b/src/libide/search/ide-search-result.c
index 206809c6a..80867f359 100644
--- a/src/libide/search/ide-search-result.c
+++ b/src/libide/search/ide-search-result.c
@@ -22,6 +22,8 @@
#include "config.h"
+#include <gtksourceview/gtksource.h>
+
#include "ide-search-result.h"
typedef struct
@@ -49,6 +51,22 @@ G_DEFINE_TYPE_WITH_PRIVATE (IdeSearchResult, ide_search_result, G_TYPE_OBJECT)
static GParamSpec *properties [N_PROPS];
+static gboolean
+ide_search_result_real_matches (IdeSearchResult *self,
+ const char *query)
+{
+ IdeSearchResultPrivate *priv = ide_search_result_get_instance_private (self);
+ guint prio;
+
+ if (priv->title != NULL && gtk_source_completion_fuzzy_match (priv->title, query, &prio))
+ return TRUE;
+
+ if (priv->subtitle != NULL && gtk_source_completion_fuzzy_match (priv->subtitle, query, &prio))
+ return TRUE;
+
+ return FALSE;
+}
+
static void
ide_search_result_finalize (GObject *object)
{
@@ -150,6 +168,8 @@ ide_search_result_class_init (IdeSearchResultClass *klass)
object_class->get_property = ide_search_result_get_property;
object_class->set_property = ide_search_result_set_property;
+ klass->matches = ide_search_result_real_matches;
+
properties [PROP_PAINTABLE] =
g_param_spec_object ("paintable",
"Paintable",
diff --git a/src/libide/search/meson.build b/src/libide/search/meson.build
index de7ee7f56..49df38919 100644
--- a/src/libide/search/meson.build
+++ b/src/libide/search/meson.build
@@ -64,7 +64,9 @@ libide_search_sources += libide_search_resources
libide_search_deps = [
libgio_dep,
+ libgtksource_dep,
libpeas_dep,
+
libide_core_dep,
libide_threading_dep,
libide_plugins_dep
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]