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