From 1dd3127f9f0ef88ed9647a018a25f0791350888d Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Fri, 7 Jan 2022 15:34:13 +0100 Subject: [PATCH] QskScrollBox::scrollOffset reintroduced --- src/controls/QskScrollBox.cpp | 17 +++++++++++------ src/controls/QskScrollBox.h | 1 + src/controls/QskScrollView.cpp | 9 ++++----- src/controls/QskScrollView.h | 2 +- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/controls/QskScrollBox.cpp b/src/controls/QskScrollBox.cpp index 67df2be4..a9dcba70 100644 --- a/src/controls/QskScrollBox.cpp +++ b/src/controls/QskScrollBox.cpp @@ -400,15 +400,20 @@ void QskScrollBox::gestureEvent( QskGestureEvent* event ) #ifndef QT_NO_WHEELEVENT -void QskScrollBox::wheelEvent( QWheelEvent* event ) +QPointF QskScrollBox::scrollOffset( const QWheelEvent* event ) const { const auto pos = qskWheelPosition( event ); if ( viewContentsRect().contains( pos ) ) - { - const auto offset = qskScrollIncrement( event ); - if ( !offset.isNull() ) - setScrollPos( m_data->scrollPos - offset ); - } + return qskScrollIncrement( event ); + + return QPointF(); +} + +void QskScrollBox::wheelEvent( QWheelEvent* event ) +{ + const auto offset = scrollOffset( event ); + if ( !offset.isNull() ) + setScrollPos( m_data->scrollPos - offset ); } #endif diff --git a/src/controls/QskScrollBox.h b/src/controls/QskScrollBox.h index 01b878a8..73fd0a64 100644 --- a/src/controls/QskScrollBox.h +++ b/src/controls/QskScrollBox.h @@ -68,6 +68,7 @@ class QSK_EXPORT QskScrollBox : public QskControl #ifndef QT_NO_WHEELEVENT void wheelEvent( QWheelEvent* ) override; + virtual QPointF scrollOffset( const QWheelEvent* ) const; #endif bool gestureFilter( QQuickItem*, QEvent* ) override; diff --git a/src/controls/QskScrollView.cpp b/src/controls/QskScrollView.cpp index 392a42f4..6644790b 100644 --- a/src/controls/QskScrollView.cpp +++ b/src/controls/QskScrollView.cpp @@ -209,7 +209,7 @@ void QskScrollView::mouseReleaseEvent( QMouseEvent* event ) #ifndef QT_NO_WHEELEVENT -void QskScrollView::wheelEvent( QWheelEvent* event ) +QPointF QskScrollView::scrollOffset( const QWheelEvent* event ) const { QPointF offset; @@ -236,13 +236,12 @@ void QskScrollView::wheelEvent( QWheelEvent* event ) } offset.setX( dx ); } - else if ( viewContentsRect().contains( pos ) ) + else { - offset = qskScrollIncrement( event ); + offset = Inherited::scrollOffset( event ); } - if ( !offset.isNull() ) - setScrollPos( scrollPos() - offset ); + return offset; } #endif diff --git a/src/controls/QskScrollView.h b/src/controls/QskScrollView.h index 05d32495..551a6db7 100644 --- a/src/controls/QskScrollView.h +++ b/src/controls/QskScrollView.h @@ -53,7 +53,7 @@ class QSK_EXPORT QskScrollView : public QskScrollBox void mouseReleaseEvent( QMouseEvent* ) override; #ifndef QT_NO_WHEELEVENT - void wheelEvent( QWheelEvent* ) override; + QPointF scrollOffset( const QWheelEvent* ) const override; #endif private: