[gnome-builder] libide/tweaks: add IdeTweaksItem:id property
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] libide/tweaks: add IdeTweaksItem:id property
- Date: Sat, 30 Jul 2022 02:40:13 +0000 (UTC)
commit 2f0602bc32af911bae13615ab8dcd06784206846
Author: Christian Hergert <chergert redhat com>
Date: Fri Jul 29 19:31:09 2022 -0700
libide/tweaks: add IdeTweaksItem:id property
src/libide/tweaks/ide-tweaks-item.c | 37 +++++++++++++++++++++++++++++++++++++
src/libide/tweaks/ide-tweaks-item.h | 5 +++++
2 files changed, 42 insertions(+)
---
diff --git a/src/libide/tweaks/ide-tweaks-item.c b/src/libide/tweaks/ide-tweaks-item.c
index 8fa1b1cd4..4cabaa4ad 100644
--- a/src/libide/tweaks/ide-tweaks-item.c
+++ b/src/libide/tweaks/ide-tweaks-item.c
@@ -26,12 +26,14 @@
typedef struct
{
+ char *id;
char **keywords;
char *sort_key;
} IdeTweaksItemPrivate;
enum {
PROP_0,
+ PROP_ID,
PROP_KEYWORDS,
PROP_SORT_KEY,
N_PROPS
@@ -49,6 +51,7 @@ ide_tweaks_item_finalize (GObject *object)
g_clear_pointer (&priv->keywords, g_strfreev);
g_clear_pointer (&priv->sort_key, g_free);
+ g_clear_pointer (&priv->id, g_free);
G_OBJECT_CLASS (ide_tweaks_item_parent_class)->finalize (object);
}
@@ -71,6 +74,10 @@ ide_tweaks_item_get_property (GObject *object,
g_value_set_string (value, ide_tweaks_item_get_sort_key (self));
break;
+ case PROP_ID:
+ g_value_set_string (value, ide_tweaks_item_get_id (self));
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
@@ -94,6 +101,10 @@ ide_tweaks_item_set_property (GObject *object,
ide_tweaks_item_set_sort_key (self, g_value_get_string (value));
break;
+ case PROP_ID:
+ ide_tweaks_item_set_id (self, g_value_get_string (value));
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
@@ -108,6 +119,10 @@ ide_tweaks_item_class_init (IdeTweaksItemClass *klass)
object_class->get_property = ide_tweaks_item_get_property;
object_class->set_property = ide_tweaks_item_set_property;
+ properties [PROP_ID] =
+ g_param_spec_string ("id", NULL, NULL, NULL,
+ (G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS));
+
properties [PROP_KEYWORDS] =
g_param_spec_boxed ("keywords", NULL, NULL,
G_TYPE_STRV,
@@ -126,6 +141,28 @@ ide_tweaks_item_init (IdeTweaksItem *self)
{
}
+const char *
+ide_tweaks_item_get_id (IdeTweaksItem *self)
+{
+ IdeTweaksItemPrivate *priv = ide_tweaks_item_get_instance_private (self);
+
+ g_return_val_if_fail (IDE_IS_TWEAKS_ITEM (self), NULL);
+
+ return priv->id;
+}
+
+void
+ide_tweaks_item_set_id (IdeTweaksItem *self,
+ const char *id)
+{
+ IdeTweaksItemPrivate *priv = ide_tweaks_item_get_instance_private (self);
+
+ g_return_if_fail (IDE_IS_TWEAKS_ITEM (self));
+
+ if (ide_set_string (&priv->id, id))
+ g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_ID]);
+}
+
const char * const *
ide_tweaks_item_get_keywords (IdeTweaksItem *self)
{
diff --git a/src/libide/tweaks/ide-tweaks-item.h b/src/libide/tweaks/ide-tweaks-item.h
index 274652461..a8c42167e 100644
--- a/src/libide/tweaks/ide-tweaks-item.h
+++ b/src/libide/tweaks/ide-tweaks-item.h
@@ -38,6 +38,11 @@ struct _IdeTweaksItemClass
GObjectClass parent_class;
};
+IDE_AVAILABLE_IN_ALL
+const char *ide_tweaks_item_get_id (IdeTweaksItem *self);
+IDE_AVAILABLE_IN_ALL
+void ide_tweaks_item_set_id (IdeTweaksItem *self,
+ const char *id);
IDE_AVAILABLE_IN_ALL
const char * const *ide_tweaks_item_get_keywords (IdeTweaksItem *self);
IDE_AVAILABLE_IN_ALL
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]