diff --git a/qmlexport/QskQml.cpp b/qmlexport/QskQml.cpp index 441bf47f..dc13f94c 100644 --- a/qmlexport/QskQml.cpp +++ b/qmlexport/QskQml.cpp @@ -60,7 +60,6 @@ QSK_QT_PRIVATE_END qmlRegisterType< className >( QSK_MODULE_NAME, 1, 0, typeName ); #define QSK_REGISTER_GADGET( className, typeName ) \ - qRegisterMetaType< className >(); \ qmlRegisterUncreatableType< className >( QSK_MODULE_NAME, 1, 0, typeName, QString() ) // Required for QFlags to be constructed from an enum value @@ -208,6 +207,7 @@ void QskQml::registerTypes() // Support (lists of) GradientStop QMetaType::registerConverter< QJSValue, QskGradientStop >( qskToGradientStop ); +#if 0 QMetaType::registerConverter< QJSValue, QskGradientStops >( []( const QJSValue& value ) @@ -223,6 +223,7 @@ void QskQml::registerTypes() return stops; } ); +#endif #if QT_VERSION < QT_VERSION_CHECK( 6, 2, 0 ) // how to do this with >= 6.2 TODO ... diff --git a/src/common/QskAspect.cpp b/src/common/QskAspect.cpp index d59ceeee..30533426 100644 --- a/src/common/QskAspect.cpp +++ b/src/common/QskAspect.cpp @@ -17,6 +17,17 @@ static_assert( sizeof( QskAspect ) == sizeof( quint64 ), "QskAspect::Aspect has to match quint64" ); +static void qskRegisterAspect() +{ + qRegisterMetaType< QskAspect >(); + +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + QMetaType::registerEqualsComparator< QskAspect >(); +#endif +} + +Q_CONSTRUCTOR_FUNCTION( qskRegisterAspect ) + namespace { using namespace std; diff --git a/src/common/QskMargins.cpp b/src/common/QskMargins.cpp index f1e65c3f..5aa5f98e 100644 --- a/src/common/QskMargins.cpp +++ b/src/common/QskMargins.cpp @@ -1,16 +1,22 @@ #include "QskMargins.h" #include -static void qskRegisterConverter() +static void qskRegisterMargins() { + qRegisterMetaType< QskMargins >(); + QMetaType::registerConverter< int, QskMargins >( []( int value ) { return QskMargins( value ); } ); QMetaType::registerConverter< qreal, QskMargins >( []( qreal value ) { return QskMargins( value ); } ); + +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + QMetaType::registerEqualsComparator< QskMargins >(); +#endif } -Q_CONSTRUCTOR_FUNCTION( qskRegisterConverter ) +Q_CONSTRUCTOR_FUNCTION( qskRegisterMargins ) static inline qreal qskInterpolated( qreal from, qreal to, qreal ratio ) { diff --git a/src/common/QskSizePolicy.cpp b/src/common/QskSizePolicy.cpp index 4d4cbb92..fbae27f6 100644 --- a/src/common/QskSizePolicy.cpp +++ b/src/common/QskSizePolicy.cpp @@ -11,6 +11,17 @@ #include +static void qskRegisterSizePolicy() +{ + qRegisterMetaType< QskSizePolicy >(); + +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + QMetaType::registerEqualsComparator< QskSizePolicy >(); +#endif +} + +Q_CONSTRUCTOR_FUNCTION( qskRegisterSizePolicy ) + QskSizePolicy::ConstraintType QskSizePolicy::constraintType() const noexcept { constexpr unsigned char mask = IgnoreFlag | ConstrainedFlag; diff --git a/src/common/QskTextOptions.cpp b/src/common/QskTextOptions.cpp index e6801fbd..712ec150 100644 --- a/src/common/QskTextOptions.cpp +++ b/src/common/QskTextOptions.cpp @@ -9,6 +9,10 @@ static void qskRegisterTextOptions() { qRegisterMetaType< QskTextOptions >(); + +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + QMetaType::registerEqualsComparator< QskTextOptions >(); +#endif } Q_CONSTRUCTOR_FUNCTION( qskRegisterTextOptions ) diff --git a/src/layouts/QskLayoutMetrics.cpp b/src/layouts/QskLayoutMetrics.cpp index 086c29a3..7d45470d 100644 --- a/src/layouts/QskLayoutMetrics.cpp +++ b/src/layouts/QskLayoutMetrics.cpp @@ -8,6 +8,17 @@ #include #include +static void qskRegisterLayoutMetrics() +{ + qRegisterMetaType< QskLayoutMetrics >(); + +#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 ) + QMetaType::registerEqualsComparator< QskLayoutMetrics >(); +#endif +} + +Q_CONSTRUCTOR_FUNCTION( qskRegisterLayoutMetrics ) + void QskLayoutMetrics::setMetric( int which, qreal metric ) noexcept { switch (which)