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