[gnome-builder] context: add helper to get project settings



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]