From fc5a9f2038421d46c25d8301a643cedb9de36878 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Mon, 26 Oct 2020 17:51:31 +0100 Subject: [PATCH] Qt6 incompatibilities --- playground/images/Image.cpp | 38 +++++++++++++++++++++++++++---------- playground/images/Image.h | 6 ++++++ 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/playground/images/Image.cpp b/playground/images/Image.cpp index bfdfbf58..6fe4b254 100644 --- a/playground/images/Image.cpp +++ b/playground/images/Image.cpp @@ -124,24 +124,42 @@ void Image::itemChange( QQuickItem::ItemChange change, } } +#if QT_VERSION >= QT_VERSION_CHECK( 6, 0, 0 ) + +void Image::geometryChange( + const QRectF& newGeometry, const QRectF& oldGeometry ) +{ + Inherited::geometryChange( newGeometry, oldGeometry ); + + if ( newGeometry.size() != oldGeometry.size() ) + adjustSourceSize( newGeometry.size() ); +} + +#else + void Image::geometryChanged( const QRectF& newGeometry, const QRectF& oldGeometry ) { Inherited::geometryChanged( newGeometry, oldGeometry ); if ( newGeometry.size() != oldGeometry.size() ) + adjustSourceSize( newGeometry.size() ); +} + +#endif + +void Image::adjustSourceSize( const QSizeF& size ) +{ + if ( m_data->sourceSizeAdjustment ) { - if ( m_data->sourceSizeAdjustment ) + if ( m_data->deferredUpdates ) { - if ( m_data->deferredUpdates ) - { - setImplicitSize( newGeometry.width(), newGeometry.height() ); - polish(); - } - else - { - setSourceSize( newGeometry.size().toSize() ); - } + setImplicitSize( size.width(), size.height() ); + polish(); + } + else + { + setSourceSize( size.toSize() ); } } } diff --git a/playground/images/Image.h b/playground/images/Image.h index 931a3dd9..30d4e75a 100644 --- a/playground/images/Image.h +++ b/playground/images/Image.h @@ -59,7 +59,11 @@ class Image : public QQuickImage void deferredUpdatesChanged(); protected: +#if QT_VERSION >= QT_VERSION_CHECK( 6, 0, 0 ) + void geometryChange( const QRectF&, const QRectF& ) override; +#else void geometryChanged( const QRectF&, const QRectF& ) override; +#endif void itemChange( ItemChange, const ItemChangeData& ) override; void componentComplete() override; @@ -67,6 +71,8 @@ class Image : public QQuickImage void updatePolish() override; private: + void adjustSourceSize( const QSizeF& ); + class PrivateData; std::unique_ptr< PrivateData > m_data; };