[gnome-builder] libide/tweaks: add IdeTweaksPage:section
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] libide/tweaks: add IdeTweaksPage:section
- Date: Sat, 30 Jul 2022 02:40:13 +0000 (UTC)
commit 4b8f5571343d744d10e29f9c6bd46927ad83ef4c
Author: Christian Hergert <chergert redhat com>
Date: Fri Jul 29 19:38:20 2022 -0700
libide/tweaks: add IdeTweaksPage:section
The section will be used for grouping pages into areas of the list.
src/libide/tweaks/ide-tweaks-page.c | 33 +++++++++++++++++++++++++++++++++
src/libide/tweaks/ide-tweaks-page.h | 13 +++++++++----
2 files changed, 42 insertions(+), 4 deletions(-)
---
diff --git a/src/libide/tweaks/ide-tweaks-page.c b/src/libide/tweaks/ide-tweaks-page.c
index 999b42d7a..07accda5b 100644
--- a/src/libide/tweaks/ide-tweaks-page.c
+++ b/src/libide/tweaks/ide-tweaks-page.c
@@ -28,6 +28,7 @@
struct _IdeTweaksPage
{
IdeTweaksItem parent_instance;
+ char *section;
char *title;
};
@@ -35,6 +36,7 @@ G_DEFINE_FINAL_TYPE (IdeTweaksPage, ide_tweaks_page, IDE_TYPE_TWEAKS_ITEM)
enum {
PROP_0,
+ PROP_SECTION,
PROP_TITLE,
N_PROPS
};
@@ -52,6 +54,7 @@ ide_tweaks_page_finalize (GObject *object)
{
IdeTweaksPage *self = (IdeTweaksPage *)object;
+ g_clear_pointer (&self->section, g_free);
g_clear_pointer (&self->title, g_free);
G_OBJECT_CLASS (ide_tweaks_page_parent_class)->finalize (object);
@@ -67,6 +70,10 @@ ide_tweaks_page_get_property (GObject *object,
switch (prop_id)
{
+ case PROP_SECTION:
+ g_value_set_string (value, ide_tweaks_page_get_section (self));
+ break;
+
case PROP_TITLE:
g_value_set_string (value, ide_tweaks_page_get_title (self));
break;
@@ -86,6 +93,10 @@ ide_tweaks_page_set_property (GObject *object,
switch (prop_id)
{
+ case PROP_SECTION:
+ ide_tweaks_page_set_section (self, g_value_get_string (value));
+ break;
+
case PROP_TITLE:
ide_tweaks_page_set_title (self, g_value_get_string (value));
break;
@@ -104,6 +115,10 @@ ide_tweaks_page_class_init (IdeTweaksPageClass *klass)
object_class->get_property = ide_tweaks_page_get_property;
object_class->set_property = ide_tweaks_page_set_property;
+ properties [PROP_SECTION] =
+ g_param_spec_string ("section", NULL, NULL, NULL,
+ (G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS));
+
properties [PROP_TITLE] =
g_param_spec_string ("title", NULL, NULL, NULL,
(G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS));
@@ -116,6 +131,24 @@ ide_tweaks_page_init (IdeTweaksPage *self)
{
}
+const char *
+ide_tweaks_page_get_section (IdeTweaksPage *self)
+{
+ g_return_val_if_fail (IDE_IS_TWEAKS_PAGE (self), NULL);
+
+ return self->section;
+}
+
+void
+ide_tweaks_page_set_section (IdeTweaksPage *self,
+ const char *section)
+{
+ g_return_if_fail (IDE_IS_TWEAKS_PAGE (self));
+
+ if (ide_set_string (&self->section, section))
+ g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_SECTION]);
+}
+
const char *
ide_tweaks_page_get_title (IdeTweaksPage *self)
{
diff --git a/src/libide/tweaks/ide-tweaks-page.h b/src/libide/tweaks/ide-tweaks-page.h
index 4d2acb32f..96fb85c65 100644
--- a/src/libide/tweaks/ide-tweaks-page.h
+++ b/src/libide/tweaks/ide-tweaks-page.h
@@ -31,11 +31,16 @@ IDE_AVAILABLE_IN_ALL
G_DECLARE_FINAL_TYPE (IdeTweaksPage, ide_tweaks_page, IDE, TWEAKS_PAGE, IdeTweaksItem)
IDE_AVAILABLE_IN_ALL
-IdeTweaksPage *ide_tweaks_page_new (void);
+IdeTweaksPage *ide_tweaks_page_new (void);
IDE_AVAILABLE_IN_ALL
-const char *ide_tweaks_page_get_title (IdeTweaksPage *self);
+const char *ide_tweaks_page_get_section (IdeTweaksPage *self);
IDE_AVAILABLE_IN_ALL
-void ide_tweaks_page_set_title (IdeTweaksPage *self,
- const char *title);
+void ide_tweaks_page_set_section (IdeTweaksPage *self,
+ const char *section);
+IDE_AVAILABLE_IN_ALL
+const char *ide_tweaks_page_get_title (IdeTweaksPage *self);
+IDE_AVAILABLE_IN_ALL
+void ide_tweaks_page_set_title (IdeTweaksPage *self,
+ const char *title);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]