using intervals
This commit is contained in:
parent
e461b46013
commit
05c4be184f
@ -5,6 +5,7 @@
|
||||
|
||||
#include "QskRangeControl.h"
|
||||
#include "QskFunctions.h"
|
||||
#include "QskIntervalF.h"
|
||||
|
||||
QSK_SYSTEM_STATE( QskRangeControl, ReadOnly, ( QskAspect::FirstSystemState << 1 ) )
|
||||
|
||||
@ -92,6 +93,46 @@ qreal QskRangeControl::maximum() const
|
||||
return m_data->maximum;
|
||||
}
|
||||
|
||||
void QskRangeControl::setInterval( qreal min, qreal max )
|
||||
{
|
||||
if ( max < min )
|
||||
max = min;
|
||||
|
||||
if ( min == m_data->minimum && max == m_data->maximum )
|
||||
return;
|
||||
|
||||
const auto oldMin = m_data->minimum;
|
||||
const auto oldMax = m_data->maximum;
|
||||
|
||||
m_data->minimum = min;
|
||||
m_data->maximum = max;
|
||||
|
||||
if ( isComponentComplete() )
|
||||
adjustRangeAndValue( false );
|
||||
|
||||
if ( m_data->minimum != oldMin )
|
||||
Q_EMIT minimumChanged( m_data->minimum );
|
||||
|
||||
if ( m_data->maximum != oldMax )
|
||||
Q_EMIT maximumChanged( m_data->maximum );
|
||||
|
||||
const auto newRange = range();
|
||||
if ( newRange != oldMax - oldMin )
|
||||
Q_EMIT rangeChanged( newRange );
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
void QskRangeControl::setInterval( const QskIntervalF& interval )
|
||||
{
|
||||
setInterval( interval.lowerBound(), interval.upperBound() );
|
||||
}
|
||||
|
||||
QskIntervalF QskRangeControl::interval() const
|
||||
{
|
||||
return QskIntervalF( m_data->minimum, m_data->maximum );
|
||||
}
|
||||
|
||||
void QskRangeControl::adjustRangeAndValue( bool increasing )
|
||||
{
|
||||
if ( m_data->maximum < m_data->minimum )
|
||||
|
@ -8,6 +8,8 @@
|
||||
|
||||
#include "QskControl.h"
|
||||
|
||||
class QskIntervalF;
|
||||
|
||||
class QSK_EXPORT QskRangeControl : public QskControl
|
||||
{
|
||||
Q_OBJECT
|
||||
@ -36,6 +38,9 @@ class QSK_EXPORT QskRangeControl : public QskControl
|
||||
qreal minimum() const;
|
||||
qreal maximum() const;
|
||||
|
||||
void setInterval( qreal min, qreal max );
|
||||
QskIntervalF interval() const;
|
||||
|
||||
qreal range() const;
|
||||
qreal position() const;
|
||||
|
||||
@ -54,6 +59,7 @@ class QSK_EXPORT QskRangeControl : public QskControl
|
||||
void setValue( qreal );
|
||||
void setMinimum( qreal );
|
||||
void setMaximum( qreal );
|
||||
void setInterval( const QskIntervalF& );
|
||||
void setStepSize( qreal );
|
||||
void setPageSize( int );
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user