value to text conversion moved to QskSlider
This commit is contained in:
parent
e3b87338c0
commit
4778feaaa2
|
@ -9,6 +9,8 @@
|
|||
#include "QskIntervalF.h"
|
||||
#include "QskEvent.h"
|
||||
|
||||
#include <qlocale.h>
|
||||
|
||||
QSK_SUBCONTROL( QskSlider, Panel )
|
||||
QSK_SUBCONTROL( QskSlider, Groove )
|
||||
QSK_SUBCONTROL( QskSlider, Fill )
|
||||
|
@ -261,4 +263,12 @@ void QskSlider::moveHandleTo( qreal value, const QskAnimationHint& hint )
|
|||
update();
|
||||
}
|
||||
|
||||
QString QskSlider::textFromValue( qreal value ) const
|
||||
{
|
||||
#if 1
|
||||
// we could try to find the precision from the step size. TODO ...
|
||||
return locale().toString( value, 'f', 1 );
|
||||
#endif
|
||||
}
|
||||
|
||||
#include "moc_QskSlider.cpp"
|
||||
|
|
|
@ -45,6 +45,7 @@ class QSK_EXPORT QskSlider : public QskBoundedValueInput
|
|||
qreal handlePosition() const; // [0,0, 1.0]
|
||||
|
||||
QskAspect::Variation effectiveVariation() const override;
|
||||
QString textFromValue( qreal ) const override;
|
||||
|
||||
Q_SIGNALS:
|
||||
void pressedChanged( bool );
|
||||
|
|
|
@ -112,7 +112,8 @@ QRectF QskSliderSkinlet::subControlRect( const QskSkinnable* skinnable,
|
|||
return Inherited::subControlRect( skinnable, contentsRect, subControl );
|
||||
}
|
||||
|
||||
int QskSliderSkinlet::sampleCount( const QskSkinnable* skinnable, QskAspect::Subcontrol subControl ) const
|
||||
int QskSliderSkinlet::sampleCount( const QskSkinnable* skinnable,
|
||||
QskAspect::Subcontrol subControl ) const
|
||||
{
|
||||
const auto slider = static_cast< const QskSlider* >( skinnable );
|
||||
|
||||
|
@ -127,7 +128,8 @@ int QskSliderSkinlet::sampleCount( const QskSkinnable* skinnable, QskAspect::Sub
|
|||
}
|
||||
}
|
||||
|
||||
QRectF QskSliderSkinlet::sampleRect( const QskSkinnable* skinnable, const QRectF& contentsRect,
|
||||
QRectF QskSliderSkinlet::sampleRect(
|
||||
const QskSkinnable* skinnable, const QRectF& contentsRect,
|
||||
QskAspect::Subcontrol subControl, int index ) const
|
||||
{
|
||||
const auto slider = static_cast< const QskSlider* >( skinnable );
|
||||
|
@ -223,8 +225,7 @@ QSGNode* QskSliderSkinlet::updateSubNode(
|
|||
|
||||
case LabelTextRole:
|
||||
{
|
||||
const auto text = labelValue( slider );
|
||||
return updateTextNode( slider, node, text, Q::LabelText );
|
||||
return updateTextNode( slider, node, slider->valueText(), Q::LabelText );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -395,12 +396,10 @@ QRectF QskSliderSkinlet::labelContainerRect(
|
|||
auto size = slider->strutSizeHint( Q::LabelContainer );
|
||||
|
||||
if( size.isEmpty() )
|
||||
{
|
||||
return {};
|
||||
}
|
||||
return QRectF();
|
||||
|
||||
QFontMetricsF fm( slider->effectiveFont( Q::LabelText ) );
|
||||
const auto w = qskHorizontalAdvance( fm, labelValue( slider ) );
|
||||
const QFontMetricsF fm( slider->effectiveFont( Q::LabelText ) );
|
||||
const auto w = qskHorizontalAdvance( fm, slider->valueText() );
|
||||
|
||||
const auto padding = slider->paddingHint( Q::LabelContainer );
|
||||
const auto h = fm.height() + padding.top() + padding.bottom();
|
||||
|
@ -423,9 +422,7 @@ QRectF QskSliderSkinlet::labelContainerRect(
|
|||
y = hr.center().y() - size.height() / 2;
|
||||
}
|
||||
|
||||
const QRectF r( x, y, size.width(), size.height() );
|
||||
|
||||
return r;
|
||||
return QRectF( x, y, size.width(), size.height() );
|
||||
}
|
||||
|
||||
QSizeF QskSliderSkinlet::sizeHint( const QskSkinnable* skinnable,
|
||||
|
@ -447,9 +444,4 @@ QSizeF QskSliderSkinlet::sizeHint( const QskSkinnable* skinnable,
|
|||
return hint;
|
||||
}
|
||||
|
||||
QString QskSliderSkinlet::labelValue( const QskSlider* slider ) const
|
||||
{
|
||||
return QString::number( slider->value(), 'f', 1 );
|
||||
}
|
||||
|
||||
#include "moc_QskSliderSkinlet.cpp"
|
||||
|
|
|
@ -66,8 +66,6 @@ class QSK_EXPORT QskSliderSkinlet : public QskSkinlet
|
|||
QRectF labelContainerRect( const QskSlider*, const QRectF& ) const;
|
||||
|
||||
QRectF innerRect( const QskSlider*, const QRectF&, QskAspect::Subcontrol ) const;
|
||||
|
||||
QString labelValue( const QskSlider* ) const;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue