// Copyright (C) 2022 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #ifndef WRAPWITHVARIANT_H #define WRAPWITHVARIANT_H #include #include #include #include #include struct WrapWithVariant { Q_GADGET QML_VALUE_TYPE(wrappedWithVariant) QML_CONSTRUCTIBLE_VALUE Q_PROPERTY(QVariant intPrimitiveValue READ intPrimitiveValue CONSTANT) Q_PROPERTY(QVariant undefinedPrimitiveValue READ undefinedPrimitiveValue CONSTANT) Q_PROPERTY(QVariant nullPrimitiveValue READ nullPrimitiveValue CONSTANT) Q_PROPERTY(QVariant intJSValue READ intJSValue CONSTANT) Q_PROPERTY(QVariant undefinedJsValue READ undefinedJsValue CONSTANT) Q_PROPERTY(QVariant nullJsValue READ nullJsValue CONSTANT) public: WrapWithVariant() = default; QVariant intPrimitiveValue() const { return QVariant::fromValue(QJSPrimitiveValue(12)); } QVariant undefinedPrimitiveValue() const { return QVariant::fromValue(QJSPrimitiveValue(QJSPrimitiveUndefined())); } QVariant nullPrimitiveValue() const { return QVariant::fromValue(QJSPrimitiveValue(QJSPrimitiveNull())); } QVariant intJSValue() const { return QVariant::fromValue(QJSValue(23)); } QVariant undefinedJsValue() const { return QVariant::fromValue(QJSValue(QJSValue::UndefinedValue)); } QVariant nullJsValue() const { return QVariant::fromValue(QJSValue(QJSValue::NullValue)); } }; #endif // WRAPWITHVARIANT_H