QEvent::clone finished

This commit is contained in:
Uwe Rathmann 2020-12-09 15:58:27 +01:00
parent de419971c8
commit c98a2a7032
4 changed files with 13 additions and 6 deletions

View File

@ -151,12 +151,17 @@ QskPopupEvent* QskPopupEvent::clone() const
// -- QskGestureEvent
QskGestureEvent::QskGestureEvent( const QskGesture* gesture )
QskGestureEvent::QskGestureEvent( std::shared_ptr< const QskGesture > gesture )
: QskEvent( QskEvent::Gesture )
, m_gesture( gesture )
{
}
QskGestureEvent* QskGestureEvent::clone() const
{
return new QskGestureEvent( *this );
}
// -- QskAnimatorEvent
QskAnimatorEvent::QskAnimatorEvent( QskAspect::Aspect aspect, State state )

View File

@ -102,12 +102,14 @@ class QSK_EXPORT QskPopupEvent : public QskEvent
class QSK_EXPORT QskGestureEvent : public QskEvent
{
public:
QskGestureEvent( const QskGesture* gesture );
QskGestureEvent( std::shared_ptr< const QskGesture > );
inline const QskGesture* gesture() const { return m_gesture; }
inline std::shared_ptr< const QskGesture > gesture() const { return m_gesture; }
QskGestureEvent* clone() const override;
private:
const QskGesture* m_gesture;
std::shared_ptr< const QskGesture > m_gesture;
};
class QSK_EXPORT QskAnimatorEvent : public QskEvent

View File

@ -58,7 +58,7 @@ static void qskSendPanGestureEvent(
QQuickItem* item, QskGesture::State state, qreal velocity, qreal angle,
const QPointF& origin, const QPointF& lastPosition, const QPointF& position )
{
auto gesture = new QskPanGesture();
auto gesture = std::make_shared< QskPanGesture >();
gesture->setState( state );
gesture->setAngle( angle );

View File

@ -363,7 +363,7 @@ void QskScrollBox::gestureEvent( QskGestureEvent* event )
{
if ( event->gesture()->type() == QskGesture::Pan )
{
const auto gesture = static_cast< const QskPanGesture* >( event->gesture() );
const auto gesture = static_cast< const QskPanGesture* >( event->gesture().get() );
switch ( gesture->state() )
{