[gtksourceview] completion: add gtk_source_completion_context_get_proposals_for_provider
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview] completion: add gtk_source_completion_context_get_proposals_for_provider
- Date: Sat, 3 Sep 2022 06:29:41 +0000 (UTC)
commit 1b46403ad63ffd5955acbaa1fd388b5979084036
Author: Christian Hergert <chergert redhat com>
Date: Fri Sep 2 23:26:10 2022 -0700
completion: add gtk_source_completion_context_get_proposals_for_provider
This adds a getter for API symmetry. It's useful to monitor the changes of
models in conjunction with an additional signals.
gtksourceview/gtksourcecompletioncontext.c | 34 ++++++++++++++++++++++++++++++
gtksourceview/gtksourcecompletioncontext.h | 3 +++
2 files changed, 37 insertions(+)
---
diff --git a/gtksourceview/gtksourcecompletioncontext.c b/gtksourceview/gtksourcecompletioncontext.c
index 88dd9333..3a31ba66 100644
--- a/gtksourceview/gtksourcecompletioncontext.c
+++ b/gtksourceview/gtksourcecompletioncontext.c
@@ -589,6 +589,40 @@ gtk_source_completion_context_items_changed_cb (GtkSourceCompletionContext *self
gtk_source_completion_context_update_empty (self);
}
+/**
+ * gtk_source_completion_context_get_proposals_for_provider:
+ * @self: a #GtkSourceCompletionContext
+ * @provider: a #GtkSourceCompletionProvider
+ *
+ * Gets the #GListModel associated with the provider.
+ *
+ * You can connect to #GtkSourceCompletionContext::model-changed to receive
+ * notifications about when the model has been replaced by a new model.
+ *
+ * Returns: (transfer none) (nullable): a #GListModel or %NULL
+ *
+ * Since: 5.6
+ */
+GListModel *
+gtk_source_completion_context_get_proposals_for_provider (GtkSourceCompletionContext *self,
+ GtkSourceCompletionProvider *provider)
+{
+ g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_CONTEXT (self), NULL);
+ g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROVIDER (provider), NULL);
+
+ for (guint i = 0; i < self->providers->len; i++)
+ {
+ const ProviderInfo *info = &g_array_index (self->providers, ProviderInfo, i);
+
+ if (info->provider == provider)
+ {
+ return info->results;
+ }
+ }
+
+ return NULL;
+}
+
/**
* gtk_source_completion_context_set_proposals_for_provider:
* @self: an #GtkSourceCompletionContext
diff --git a/gtksourceview/gtksourcecompletioncontext.h b/gtksourceview/gtksourcecompletioncontext.h
index 1b013a11..7f3fe8c2 100644
--- a/gtksourceview/gtksourcecompletioncontext.h
+++ b/gtksourceview/gtksourcecompletioncontext.h
@@ -63,5 +63,8 @@ GTK_SOURCE_AVAILABLE_IN_ALL
void gtk_source_completion_context_set_proposals_for_provider
(GtkSourceCompletionContext *self,
GtkSourceCompletionProvider *provider,
GListModel
*results);
+GTK_SOURCE_AVAILABLE_IN_5_6
+GListModel *gtk_source_completion_context_get_proposals_for_provider
(GtkSourceCompletionContext *self,
+
GtkSourceCompletionProvider *provider);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]