[gnome-builder] project: add helper to generate project id
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] project: add helper to generate project id
- Date: Tue, 21 Nov 2017 07:29:10 +0000 (UTC)
commit e899c1d12e2be23b8f753f3979257126c466331b
Author: Christian Hergert <chergert redhat com>
Date: Mon Nov 20 23:27:51 2017 -0800
project: add helper to generate project id
This allows us to get the project id before we've created an
IdeProject instance.
src/libide/projects/ide-project.c | 22 +++++++++++++++++-----
src/libide/projects/ide-project.h | 2 ++
2 files changed, 19 insertions(+), 5 deletions(-)
---
diff --git a/src/libide/projects/ide-project.c b/src/libide/projects/ide-project.c
index 6d1a44b..dba8887 100644
--- a/src/libide/projects/ide-project.c
+++ b/src/libide/projects/ide-project.c
@@ -99,12 +99,24 @@ ide_project_writer_unlock (IdeProject *self)
g_rw_lock_writer_unlock (&self->rw_lock);
}
-static gchar *
-ide_project_create_id (IdeProject *self)
+/**
+ * ide_project_create_id:
+ * @name: the name of the project
+ *
+ * Escapes the project name into something suitable using as an id.
+ * This can be uesd to determine the directory name when the project
+ * name should be used.
+ *
+ * Returns: (transfer full): a new string
+ *
+ * Since: 3.28
+ */
+gchar *
+ide_project_create_id (const gchar *name)
{
- g_assert (IDE_IS_PROJECT (self));
+ g_return_val_if_fail (name != NULL, NULL);
- return g_strdelimit (g_strdup (self->name), " /|<>\n\t", '-');
+ return g_strdelimit (g_strdup (name), " /|<>\n\t", '-');
}
const gchar *
@@ -133,7 +145,7 @@ _ide_project_set_name (IdeProject *self,
{
g_free (self->name);
self->name = g_strdup (name);
- self->id = ide_project_create_id (self);
+ self->id = ide_project_create_id (name);
g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_NAME]);
}
}
diff --git a/src/libide/projects/ide-project.h b/src/libide/projects/ide-project.h
index 3590938..3c05a23 100644
--- a/src/libide/projects/ide-project.h
+++ b/src/libide/projects/ide-project.h
@@ -29,6 +29,8 @@ G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (IdeProject, ide_project, IDE, PROJECT, IdeObject)
+IDE_AVAILABLE_IN_3_28
+gchar *ide_project_create_id (const gchar *name);
IDE_AVAILABLE_IN_ALL
IdeProjectItem *ide_project_get_root (IdeProject *self);
IDE_AVAILABLE_IN_ALL
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]