From 2feba4447a482840e21fa2d3b33f1a5da12d09b7 Mon Sep 17 00:00:00 2001 From: Fabien Proriol Date: Thu, 22 May 2025 17:10:35 +0200 Subject: qt: Add Qt Wrapper library and QML module --- qt/kzqproperty.cpp | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 qt/kzqproperty.cpp (limited to 'qt/kzqproperty.cpp') diff --git a/qt/kzqproperty.cpp b/qt/kzqproperty.cpp new file mode 100644 index 0000000..4290e8c --- /dev/null +++ b/qt/kzqproperty.cpp @@ -0,0 +1,64 @@ +#include "kzqproperty.h" +#include "kzqsettings.h" + +namespace KaZoe { +class KzQPropertyPrivate +{ + Q_DISABLE_COPY(KzQPropertyPrivate) + Q_DECLARE_PUBLIC(KaZoe::KzQProperty) + + KaZoe::KzQProperty * const q_ptr; + QString m_key; + QVariant m_value; + KaZoe::KzQSettings m_settings; + + KzQPropertyPrivate(KaZoe::KzQProperty* systemprop): q_ptr(systemprop){} +}; +}; + +KaZoe::KzQProperty::KzQProperty(QObject *parent) + : QObject{parent} + , d_ptr(new KaZoe::KzQPropertyPrivate(this)) +{ + Q_D(KzQProperty); + QObject::connect(&d->m_settings, &KaZoe::KzQSettings::valueChanged, [this](QString id, QVariant value){ + Q_D(KzQProperty); + if(id == d->m_key) + { + setValue(value); + } + }); +} + +KaZoe::KzQProperty::~KzQProperty() = default; + +QString KaZoe::KzQProperty::key() const +{ + Q_D(const KzQProperty); + return d->m_key; +} + +void KaZoe::KzQProperty::setKey(const QString &newKey) +{ + Q_D(KzQProperty); + if (d->m_key == newKey) + return; + d->m_key = newKey; + setValue(d->m_settings.get(d->m_key)); + emit keyChanged(); +} + +QVariant KaZoe::KzQProperty::value() const +{ + Q_D(const KzQProperty); + return d->m_value; +} + +void KaZoe::KzQProperty::setValue(const QVariant &newValue) +{ + Q_D(KzQProperty); + if (d->m_value == newValue) + return; + d->m_value = newValue; + emit valueChanged(); +} -- cgit v1.2.3