Qt5 incompatibilities

This commit is contained in:
Uwe Rathmann 2020-10-26 18:50:48 +01:00
parent 4d7d9735dc
commit 4c6e0ae32d

View File

@ -136,6 +136,26 @@ static inline int qskToIntegerConstraint( qreal valueF )
return value; return value;
} }
static inline void qskSetVisualizationMode(
QQuickWindow* window, const QByteArray& mode )
{
auto d = QQuickWindowPrivate::get( window );
#if QT_VERSION >= QT_VERSION_CHECK( 6, 0, 0 )
d->visualizationMode = mode;
#else
d->customRenderMode = mode;
#endif
}
static inline QByteArray qskVisualizationMode( const QQuickWindow* window )
{
auto d = QQuickWindowPrivate::get( const_cast< QQuickWindow* >( window ) );
#if QT_VERSION >= QT_VERSION_CHECK( 6, 0, 0 )
return d->visualizationMode;
#else
return d->customRenderMode;
#endif
}
class QskWindowPrivate : public QQuickWindowPrivate class QskWindowPrivate : public QQuickWindowPrivate
{ {
Q_DECLARE_PUBLIC( QskWindow ) Q_DECLARE_PUBLIC( QskWindow )
@ -583,10 +603,9 @@ void QskWindow::setCustomRenderMode( const char* mode )
void run() override void run() override
{ {
auto* d = QQuickWindowPrivate::get( m_window ); qskSetVisualizationMode( m_window, m_mode );
d->customRenderMode = m_mode;
auto d = QQuickWindowPrivate::get( m_window );
if ( d->renderer ) if ( d->renderer )
{ {
delete d->renderer->rootNode(); delete d->renderer->rootNode();
@ -602,10 +621,11 @@ void QskWindow::setCustomRenderMode( const char* mode )
const QByteArray m_mode; const QByteArray m_mode;
}; };
const QByteArray m( mode ); const QByteArray newMode( mode );
Q_D( QskWindow ); const auto oldMode = qskVisualizationMode( this );
if ( m != d->customRenderMode )
if ( newMode != oldMode )
{ {
/* /*
batch renderer uses an optimized memory allocation strategy, batch renderer uses an optimized memory allocation strategy,
@ -616,10 +636,10 @@ void QskWindow::setCustomRenderMode( const char* mode )
after swapping. after swapping.
*/ */
if ( m.isEmpty() != d->customRenderMode.isEmpty() ) if ( newMode.isEmpty() != oldMode.isEmpty() )
scheduleRenderJob( new RenderJob( this, m ), AfterSwapStage ); scheduleRenderJob( new RenderJob( this, newMode ), AfterSwapStage );
else else
d->customRenderMode = m; qskSetVisualizationMode( this, newMode );
update(); update();
} }
@ -627,8 +647,7 @@ void QskWindow::setCustomRenderMode( const char* mode )
const char* QskWindow::customRenderMode() const const char* QskWindow::customRenderMode() const
{ {
Q_D( const QskWindow ); return qskVisualizationMode( this );
return d->customRenderMode;
} }
void QskWindow::enforceSkin() void QskWindow::enforceSkin()