[gnome-builder] context: add helper to get project settings
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] context: add helper to get project settings
- Date: Wed, 31 Jan 2018 11:37:32 +0000 (UTC)
commit d815fbde4c21672e7567e7592705d414f933a3b3
Author: Christian Hergert <chergert redhat com>
Date: Wed Jan 31 02:58:46 2018 -0800
context: add helper to get project settings
Instead of duplicating g_settings_new_with_path() code all over
the place, just add a helper from the get-go to create the
project settings instance.
src/libide/ide-context.c | 26 ++++++++++++++++++++++++++
src/libide/ide-context.h | 2 ++
2 files changed, 28 insertions(+)
---
diff --git a/src/libide/ide-context.c b/src/libide/ide-context.c
index fdddd796e..3b4e2eb77 100644
--- a/src/libide/ide-context.c
+++ b/src/libide/ide-context.c
@@ -2831,3 +2831,29 @@ ide_context_build_filename (IdeContext *self,
return g_build_filenamev ((gchar **)ar->pdata);
}
+
+/**
+ * ide_context_get_project_settings:
+ * @self: a #IdeContext
+ *
+ * Gets an org.gnome.builder.project #GSettings.
+ *
+ * This creates a new #GSettings instance for the project.
+ *
+ * Returns: (transfer full): a #GSettings
+ */
+GSettings *
+ide_context_get_project_settings (IdeContext *self)
+{
+ g_autofree gchar *path = NULL;
+ const gchar *project_id;
+ IdeProject *project;
+
+ g_return_val_if_fail (IDE_IS_CONTEXT (self), NULL);
+
+ project = ide_context_get_project (self);
+ project_id = ide_project_get_id (project);
+ path = g_strdup_printf ("/org/gnome/builder/projects/%s/", project_id);
+
+ return g_settings_new_with_path ("org.gnome.builder.project", path);
+}
diff --git a/src/libide/ide-context.h b/src/libide/ide-context.h
index ad0d318df..7d47d5574 100644
--- a/src/libide/ide-context.h
+++ b/src/libide/ide-context.h
@@ -52,6 +52,8 @@ IDE_AVAILABLE_IN_ALL
IdeDocumentation *ide_context_get_documentation (IdeContext *self);
IDE_AVAILABLE_IN_ALL
IdeProject *ide_context_get_project (IdeContext *self);
+IDE_AVAILABLE_IN_3_28
+GSettings *ide_context_get_project_settings (IdeContext *self);
IDE_AVAILABLE_IN_ALL
GtkRecentManager *ide_context_get_recent_manager (IdeContext *self);
IDE_AVAILABLE_IN_ALL
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]