summaryrefslogtreecommitdiff
path: root/gui/src/settings.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2025-05-24 11:58:39 +0200
committerFelix Morgner <felix.morgner@gmail.com>2025-05-24 11:58:39 +0200
commit72ab1fb4c1bf363f46470816d8b914a78ac493c4 (patch)
tree27349a1bacbab4ea698be35d2d3d9b5184b15ca1 /gui/src/settings.cpp
parentb7f2ff4d991ae068f7834bf8e565f6261bf7fff1 (diff)
downloadturns-72ab1fb4c1bf363f46470816d8b914a78ac493c4.tar.xz
turns-72ab1fb4c1bf363f46470816d8b914a78ac493c4.zip
gui: restructure file layout and apply licenses
Diffstat (limited to 'gui/src/settings.cpp')
-rw-r--r--gui/src/settings.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/gui/src/settings.cpp b/gui/src/settings.cpp
new file mode 100644
index 0000000..161a709
--- /dev/null
+++ b/gui/src/settings.cpp
@@ -0,0 +1,33 @@
+/*
+ * SPDX-FileCopyrightText: 2025 Felix Morgner <felix.morgner@gmail.com>
+ * SPDX-License-Identifier: LGPL-2.1-only
+ */
+
+#include "turns/core/settings.hpp"
+
+#include <glibmm/refptr.h>
+#include <glibmm/wrap.h>
+
+#include <giomm/settings.h>
+#include <giomm/settingsschemasource.h>
+
+#include <gio/gsettings.h>
+
+namespace turns::core
+{
+
+ auto get_settings() -> Glib::RefPtr<Gio::Settings>
+ {
+ auto constexpr schema_id = "ch.arknet.Turns";
+
+#ifdef TURNS_SETTINGS_SCHEMA_DIR
+ auto source = Gio::SettingsSchemaSource::create(TURNS_SETTINGS_SCHEMA_DIR "/glib-2.0/schemas", true);
+ auto schema = source->lookup(schema_id, true);
+ auto settings = g_settings_new_full(Glib::unwrap(schema), nullptr, nullptr);
+ return Glib::wrap(settings);
+#else
+ return Gio::Settings::create(schema_id);
+#endif
+ }
+
+} // namespace turns::core