Qt6 incompatibilities fixed

This commit is contained in:
Uwe Rathmann 2020-10-25 15:56:22 +01:00
parent 0c37453d5f
commit a101080231
4 changed files with 26 additions and 11 deletions

View File

@ -16,6 +16,15 @@ QSK_QT_PRIVATE_BEGIN
#include <private/qobject_p.h>
QSK_QT_PRIVATE_END
static inline void *qskMetaTypeCreate( int type, const void *copy )
{
#if QT_VERSION >= QT_VERSION_CHECK( 6, 0, 0 )
return QMetaType( type ).create( copy );
#else
return QMetaType::create( type, copy );
#endif
}
namespace
{
using CallFunction = QObjectPrivate::StaticMetaCallFunction;
@ -233,7 +242,7 @@ static void qskInvokeMetaCall(
}
types[ i ] = method.parameterType( i - 1 );
arguments[ i ] = QMetaType::create( types[ i ], argv[ i ] );
arguments[ i ] = qskMetaTypeCreate( types[ i ], argv[ i ] );
}
}
else
@ -247,7 +256,7 @@ static void qskInvokeMetaCall(
arguments = static_cast< void** >( malloc( argc * sizeof( void* ) ) );
types[ 0 ] = property.userType();
arguments[ 0 ] = QMetaType::create( types[ 0 ], argv[ 0 ] );
arguments[ 0 ] = qskMetaTypeCreate( types[ 0 ], argv[ 0 ] );
}
if ( receiver.isNull() )

View File

@ -1,4 +1,5 @@
#include "QskGestureRecognizer.h"
#include "QskEvent.h"
#include <qbasictimer.h>
#include <qcoreapplication.h>
@ -20,7 +21,7 @@ static inline QMouseEvent* qskClonedMouseEvent(
if ( item )
{
QPointF localPos = item->mapFromScene( event->windowPos() );
QPointF localPos = item->mapFromScene( qskMouseScenePosition( event ) );
clonedEvent = QQuickWindowPrivate::cloneMouseEvent( event, &localPos );
}
else

View File

@ -6,6 +6,7 @@
#include "QskSlider.h"
#include "QskAnimationHint.h"
#include "QskAspect.h"
#include "QskIntervalF.h"
QSK_SUBCONTROL( QskSlider, Panel )
QSK_SUBCONTROL( QskSlider, Groove )

View File

@ -90,7 +90,7 @@ class QskSubWindowArea::PrivateData
bool isDraggableByHeaderOnly : 1;
bool isDragging : 1;
Qt::Edges draggedEdges;
QPoint mousePos;
QPointF mousePos;
};
QskSubWindowArea::QskSubWindowArea( QQuickItem* parent )
@ -192,7 +192,9 @@ bool QskSubWindowArea::mouseEventFilter( QskSubWindow* window, const QMouseEvent
{
case QEvent::MouseButtonPress:
{
if ( !( cr.contains( event->localPos() ) &&
const auto mousePos = qskMousePosition( event );
if ( !( cr.contains( mousePos ) &&
event->button() == Qt::LeftButton ) )
{
return false;
@ -214,14 +216,14 @@ bool QskSubWindowArea::mouseEventFilter( QskSubWindow* window, const QMouseEvent
if ( !doDrag )
{
// dragging by title bar only
doDrag = window->titleBarRect().contains( event->localPos() );
doDrag = window->titleBarRect().contains( mousePos );
}
if ( doDrag )
{
m_data->isDragging = true;
m_data->draggedEdges = qskSelectedEdges( cr, event->localPos() );
m_data->mousePos = event->globalPos();
m_data->draggedEdges = qskSelectedEdges( cr, mousePos );
m_data->mousePos = qskMouseScenePosition( event );
setDragging( window, true );
return true;
@ -233,10 +235,12 @@ bool QskSubWindowArea::mouseEventFilter( QskSubWindow* window, const QMouseEvent
{
if ( m_data->isDragging )
{
qskDragWindow( event->globalPos() - m_data->mousePos,
const auto scenePos = qskMouseScenePosition( event );
qskDragWindow( scenePos - m_data->mousePos,
m_data->draggedEdges, window );
m_data->mousePos = event->globalPos();
m_data->mousePos = scenePos;
return true;
}
break;
@ -247,7 +251,7 @@ bool QskSubWindowArea::mouseEventFilter( QskSubWindow* window, const QMouseEvent
{
setDragging( window, false );
m_data->mousePos = QPoint();
m_data->mousePos = QPointF();
m_data->isDragging = false;
return true;