diff --git a/src/common/QskNamespace.h b/src/common/QskNamespace.h index 35c2769b..73f33939 100644 --- a/src/common/QskNamespace.h +++ b/src/common/QskNamespace.h @@ -9,28 +9,36 @@ #include "QskGlobal.h" #include -/* - hack to run moc over a namespace, what is not - yet supported with Qt 5.6 - */ +#if QT_VERSION < QT_VERSION_CHECK( 5, 8, 0 ) + // hack to run moc over a namespace -#ifdef Q_MOC_RUN + #ifdef Q_MOC_RUN -#define QSK_NAMESPACE( name ) struct name -#define QSK_ENUM( name ) Q_GADGET Q_ENUM( name ) + #define QSK_NAMESPACE( name ) struct name + #define QSK_ENUM( name ) Q_GADGET Q_ENUM( name ) + + #else + + #define QSK_NAMESPACE( name ) namespace name + #define QSK_ENUM( name ) \ + inline constexpr const QMetaObject* qt_getEnumMetaObject(name) noexcept { return &staticMetaObject; } \ + inline constexpr const char* qt_getEnumName(name) noexcept { return #name; } + + #endif + + #define QSK_Q_NAMESPACE extern const QMetaObject staticMetaObject; #else -#define QSK_NAMESPACE( name ) namespace name -#define QSK_ENUM( name ) \ - inline constexpr const QMetaObject* qt_getEnumMetaObject(name) noexcept { return &staticMetaObject; } \ - inline constexpr const char* qt_getEnumName(name) noexcept { return #name; } + #define QSK_NAMESPACE( name ) namespace name + #define QSK_ENUM Q_ENUM_NS + #define QSK_Q_NAMESPACE Q_NAMESPACE #endif QSK_NAMESPACE( Qsk ) { - extern QSK_EXPORT const QMetaObject staticMetaObject; + QSK_EXPORT QSK_Q_NAMESPACE enum Direction { @@ -62,5 +70,6 @@ QSK_NAMESPACE( Qsk ) #undef QSK_NAMESPACE #undef QSK_ENUM +#undef QSK_Q_NAMESPACE #endif diff --git a/src/controls/QskQuickItem.cpp b/src/controls/QskQuickItem.cpp index 746b51ce..f6526d8e 100644 --- a/src/controls/QskQuickItem.cpp +++ b/src/controls/QskQuickItem.cpp @@ -256,8 +256,13 @@ void QskQuickItem::setGeometry( qreal x, qreal y, qreal width, qreal height ) Q_D( QQuickItem ); +#if QT_VERSION >= QT_VERSION_CHECK( 6, 2, 0 ) + d->heightValidFlag = true; + d->widthValidFlag = true; +#else d->heightValid = true; d->widthValid = true; +#endif const QRectF oldRect( d->x, d->y, d->width, d->height ); @@ -541,7 +546,11 @@ void QskQuickItem::applyUpdateFlag( UpdateFlag flag, bool on ) // Update the implicitSize and rebind the size to it. // Having set the size explicitly gets lost. +#if QT_VERSION >= QT_VERSION_CHECK( 6, 2, 0 ) + d->widthValidFlag = d->heightValidFlag = false; +#else d->widthValid = d->heightValid = false; +#endif d->updateImplicitSize( false ); } diff --git a/src/controls/QskQuickItemPrivate.cpp b/src/controls/QskQuickItemPrivate.cpp index f17f6dfd..fcad0f3b 100644 --- a/src/controls/QskQuickItemPrivate.cpp +++ b/src/controls/QskQuickItemPrivate.cpp @@ -38,7 +38,11 @@ QskQuickItemPrivate::QskQuickItemPrivate() but to make it working: the DeferredLayout flag needs to be disabled. */ +#if QT_VERSION >= QT_VERSION_CHECK( 6, 2, 0 ) + widthValidFlag = heightValidFlag = true; +#else widthValid = heightValid = true; +#endif } } @@ -130,6 +134,11 @@ void QskQuickItemPrivate::setImplicitSize( qreal w, qreal h, bool doNotify ) implicitWidth = w; implicitHeight = h; +#if QT_VERSION >= QT_VERSION_CHECK( 6, 2, 0 ) + const bool widthValid = widthValidFlag; + const bool heightValid = heightValidFlag; +#endif + if ( !( widthValid && heightValid ) ) { // auto adjusting the size diff --git a/src/controls/QskVariantAnimator.cpp b/src/controls/QskVariantAnimator.cpp index 0af96cd7..f22b29de 100644 --- a/src/controls/QskVariantAnimator.cpp +++ b/src/controls/QskVariantAnimator.cpp @@ -19,6 +19,13 @@ #include QSK_QT_PRIVATE_BEGIN +#if QT_VERSION >= QT_VERSION_CHECK( 6, 2, 0 ) + #ifndef emit + // qvariantanimation_p.h needs it + #define emit + #endif +#endif + #include QSK_QT_PRIVATE_END diff --git a/src/nodes/QskRichTextRenderer.cpp b/src/nodes/QskRichTextRenderer.cpp index 76568ed3..d9ef8f10 100644 --- a/src/nodes/QskRichTextRenderer.cpp +++ b/src/nodes/QskRichTextRenderer.cpp @@ -58,8 +58,13 @@ namespace { auto d = QQuickTextPrivate::get( this ); +#if QT_VERSION >= QT_VERSION_CHECK( 6, 2, 0 ) + d->heightValidFlag = true; + d->widthValidFlag = true; +#else d->heightValid = true; d->widthValid = true; +#endif if ( ( d->x != rect.x() ) || ( d->y != rect.y() ) ) {