metatype registrations moved to class implementations

This commit is contained in:
Uwe Rathmann 2022-11-18 09:44:11 +01:00
parent 5356f0ce88
commit 116b835906
6 changed files with 47 additions and 3 deletions

View File

@ -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 ...

View File

@ -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;

View File

@ -1,16 +1,22 @@
#include "QskMargins.h"
#include <qvariant.h>
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 )
{

View File

@ -11,6 +11,17 @@
#include <utility>
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;

View File

@ -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 )

View File

@ -8,6 +8,17 @@
#include <qnamespace.h>
#include <algorithm>
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)