handlePosition property added
This commit is contained in:
parent
4ebd07390f
commit
b3d8598965
|
@ -56,8 +56,8 @@ QskSlider::QskSlider( Qt::Orientation orientation, QQuickItem* parent )
|
|||
else
|
||||
initSizePolicy( QskSizePolicy::Fixed, QskSizePolicy::Minimum );
|
||||
|
||||
connect( this, &QskSlider::boundariesChanged, [ this ]() { updatePosition(); } );
|
||||
connect( this, &QskSlider::valueChanged, [ this ]() { updatePosition(); } );
|
||||
connect( this, &QskSlider::boundariesChanged, this, &QskSlider::moveHandle );
|
||||
connect( this, &QskSlider::valueChanged, this, &QskSlider::moveHandle );
|
||||
}
|
||||
|
||||
QskSlider::~QskSlider()
|
||||
|
@ -186,7 +186,7 @@ void QskSlider::mouseMoveEvent( QMouseEvent* event )
|
|||
}
|
||||
else
|
||||
{
|
||||
updatePosition( newValue, QskAnimationHint() );
|
||||
moveHandleTo( newValue, QskAnimationHint() );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -224,7 +224,7 @@ void QskSlider::mouseReleaseEvent( QMouseEvent* event )
|
|||
{
|
||||
if ( !m_data->tracking )
|
||||
{
|
||||
const auto pos = metric( qskAspectPosition( this ) );
|
||||
const auto pos = handlePosition();
|
||||
setValue( valueFromRatio( pos ) );
|
||||
}
|
||||
}
|
||||
|
@ -233,13 +233,18 @@ void QskSlider::mouseReleaseEvent( QMouseEvent* event )
|
|||
Q_EMIT pressedChanged( false );
|
||||
}
|
||||
|
||||
void QskSlider::updatePosition()
|
||||
qreal QskSlider::handlePosition() const
|
||||
{
|
||||
const auto hint = animation( qskAspectPosition( this ) | skinState() );
|
||||
updatePosition( value(), hint );
|
||||
return metric( qskAspectPosition( this ) );
|
||||
}
|
||||
|
||||
void QskSlider::updatePosition( qreal value, const QskAnimationHint& hint )
|
||||
void QskSlider::moveHandle()
|
||||
{
|
||||
const auto hint = animation( qskAspectPosition( this ) | skinState() );
|
||||
moveHandleTo( value(), hint );
|
||||
}
|
||||
|
||||
void QskSlider::moveHandleTo( qreal value, const QskAnimationHint& hint )
|
||||
{
|
||||
using namespace QskAspect;
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ class QSK_EXPORT QskSlider : public QskBoundedValueInput
|
|||
WRITE setOrientation NOTIFY orientationChanged )
|
||||
|
||||
Q_PROPERTY( bool tracking READ isTracking WRITE setTracking NOTIFY trackingChanged )
|
||||
Q_PROPERTY( qreal handlePosition READ handlePosition )
|
||||
|
||||
using Inherited = QskBoundedValueInput;
|
||||
|
||||
|
@ -41,6 +42,8 @@ class QSK_EXPORT QskSlider : public QskBoundedValueInput
|
|||
void setTracking( bool );
|
||||
bool isTracking() const;
|
||||
|
||||
qreal handlePosition() const; // [0,0, 1.0]
|
||||
|
||||
QskAspect::Placement effectivePlacement() const override;
|
||||
|
||||
Q_SIGNALS:
|
||||
|
@ -61,8 +64,8 @@ class QSK_EXPORT QskSlider : public QskBoundedValueInput
|
|||
void aboutToShow() override;
|
||||
|
||||
private:
|
||||
void updatePosition();
|
||||
void updatePosition( qreal value, const QskAnimationHint& );
|
||||
void moveHandle();
|
||||
void moveHandleTo( qreal value, const QskAnimationHint& );
|
||||
|
||||
class PrivateData;
|
||||
std::unique_ptr< PrivateData > m_data;
|
||||
|
|
Loading…
Reference in New Issue