summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Mayo <aklhfex@gmail.com>2023-03-27 19:22:34 +0100
committerFelipe Borges <felipeborges@gnome.org>2023-04-17 12:14:58 +0000
commit0d1ae3d4f49767ac3441e61aa119fcc7c386f8dd (patch)
tree9e762b553d911570a6f996e9cf16b0c753e4d11c
parent92c4b6a706b32c2c5eb89b4169a7e21537a59c3c (diff)
downloadgnome-control-center-0d1ae3d4f49767ac3441e61aa119fcc7c386f8dd.tar.gz
datetime: Fix Time Format ComboRow
Failed to set property AdwEnumListModel.enum-type to GDesktopClockFormat: Unsupported GType 'GDesktopClockFormat' for value of type 'GType' meson.build code adapted from background/meson.build.
-rw-r--r--panels/datetime/cc-datetime-panel.c2
-rw-r--r--panels/datetime/cc-datetime-panel.ui2
-rw-r--r--panels/datetime/meson.build25
3 files changed, 28 insertions, 1 deletions
diff --git a/panels/datetime/cc-datetime-panel.c b/panels/datetime/cc-datetime-panel.c
index 65a31800d..f19ebf014 100644
--- a/panels/datetime/cc-datetime-panel.c
+++ b/panels/datetime/cc-datetime-panel.c
@@ -34,6 +34,7 @@
#define GNOME_DESKTOP_USE_UNSTABLE_API
#include <gdesktop-enums.h>
+#include "gdesktop-enums-types.h"
#include <string.h>
#include <stdlib.h>
#include <libintl.h>
@@ -815,6 +816,7 @@ cc_date_time_panel_class_init (CcDateTimePanelClass *klass)
g_type_ensure (CC_TYPE_LIST_ROW);
g_type_ensure (CC_TYPE_TZ_DIALOG);
+ g_type_ensure (G_DESKTOP_TYPE_DESKTOP_CLOCK_FORMAT);
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/control-center/datetime/cc-datetime-panel.ui");
diff --git a/panels/datetime/cc-datetime-panel.ui b/panels/datetime/cc-datetime-panel.ui
index fbfa6f834..f15b33a03 100644
--- a/panels/datetime/cc-datetime-panel.ui
+++ b/panels/datetime/cc-datetime-panel.ui
@@ -199,7 +199,7 @@
<signal name="notify::selected-item" handler="change_clock_settings" object="CcDateTimePanel" swapped="no"/>
<property name="model">
<object class="AdwEnumListModel">
- <property name="enum_type">GDesktopClockFormat</property>
+ <property name="enum-type">GDesktopClockFormat</property>
</object>
</property>
<property name="expression">
diff --git a/panels/datetime/meson.build b/panels/datetime/meson.build
index 9aa67e80d..3b6f5e197 100644
--- a/panels/datetime/meson.build
+++ b/panels/datetime/meson.build
@@ -43,6 +43,31 @@ sources = files(
'tz.c'
)
+enums = 'gdesktop-enums-types'
+enums_header = files(
+ gsettings_desktop_dep.get_pkgconfig_variable('prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
+ 'cc-datetime-panel.h'
+)
+
+sources += gnome.mkenums(
+ enums + '.h',
+ sources: enums_header,
+ fhead: '#pragma once\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n',
+ fprod: '/* enumerations from "@filename@" */\n',
+ vhead: 'GType @enum_name@_get_type (void) G_GNUC_CONST;\n#define G_DESKTOP_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n',
+ ftail: 'G_END_DECLS\n'
+)
+
+sources += gnome.mkenums(
+ enums + '.c',
+ sources: enums_header,
+ fhead: '#include <gdesktop-enums.h>\n#include "gdesktop-enums-types.h"\n#include "cc-datetime-panel.h"',
+ fprod: '\n/* enumerations from "@filename@" */',
+ vhead: 'GType\n@enum_name@_get_type (void)\n{\n static GType etype = 0;\n if (etype == 0) {\n static const G@Type@Value values[] = {',
+ vprod: ' { @VALUENAME@, "@VALUENAME@", "@valuenick@" },',
+ vtail: ' { 0, NULL, NULL }\n };\n etype = g_@type@_register_static ("@EnumName@", values);\n }\n return etype;\n}\n'
+)
+
gdbus = 'timedated'
gdbus_iface_xml = gdbus + '1-interface.xml'