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