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::QskGestureEvent( const QskGesture* gesture ) QskGestureEvent::QskGestureEvent( std::shared_ptr< const QskGesture > gesture )
: QskEvent( QskEvent::Gesture ) : QskEvent( QskEvent::Gesture )
, m_gesture( gesture ) , m_gesture( gesture )
{ {
} }
QskGestureEvent* QskGestureEvent::clone() const
{
return new QskGestureEvent( *this );
}
// -- QskAnimatorEvent // -- QskAnimatorEvent
QskAnimatorEvent::QskAnimatorEvent( QskAspect::Aspect aspect, State state ) 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 class QSK_EXPORT QskGestureEvent : public QskEvent
{ {
public: 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: private:
const QskGesture* m_gesture; std::shared_ptr< const QskGesture > m_gesture;
}; };
class QSK_EXPORT QskAnimatorEvent : public QskEvent class QSK_EXPORT QskAnimatorEvent : public QskEvent

View File

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

View File

@ -363,7 +363,7 @@ void QskScrollBox::gestureEvent( QskGestureEvent* event )
{ {
if ( event->gesture()->type() == QskGesture::Pan ) 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() ) switch ( gesture->state() )
{ {