2020-07-25 14:19:14 +02:00
|
|
|
/******************************************************************************
|
|
|
|
* QSkinny - Copyright (C) 2016 Uwe Rathmann
|
|
|
|
* This file may be used under the terms of the QSkinny License, Version 1.0
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
#ifndef QSK_BOUNDED_INPUT_H
|
|
|
|
#define QSK_BOUNDED_INPUT_H
|
|
|
|
|
2020-07-31 07:41:25 +02:00
|
|
|
#include "QskBoundedControl.h"
|
2020-07-25 14:19:14 +02:00
|
|
|
|
|
|
|
class QskIntervalF;
|
|
|
|
|
2020-07-31 07:41:25 +02:00
|
|
|
class QSK_EXPORT QskBoundedInput : public QskBoundedControl
|
2020-07-25 14:19:14 +02:00
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
Q_PROPERTY( qreal stepSize READ stepSize WRITE setStepSize NOTIFY stepSizeChanged )
|
|
|
|
Q_PROPERTY( int pageSize READ pageSize WRITE setPageSize NOTIFY pageSizeChanged )
|
|
|
|
|
|
|
|
Q_PROPERTY( bool snap READ snap WRITE setSnap NOTIFY snapChanged )
|
|
|
|
Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly NOTIFY readOnlyChanged )
|
|
|
|
|
2020-07-31 07:41:25 +02:00
|
|
|
using Inherited = QskBoundedControl;
|
2020-07-25 14:19:14 +02:00
|
|
|
|
|
|
|
public:
|
|
|
|
QSK_STATES( ReadOnly )
|
|
|
|
|
|
|
|
QskBoundedInput( QQuickItem* parent = nullptr );
|
|
|
|
~QskBoundedInput() override;
|
|
|
|
|
|
|
|
qreal stepSize() const;
|
|
|
|
int pageSize() const;
|
|
|
|
|
|
|
|
void setSnap( bool );
|
|
|
|
bool snap() const;
|
|
|
|
|
|
|
|
void setReadOnly( bool );
|
|
|
|
bool isReadOnly() const;
|
|
|
|
|
|
|
|
public Q_SLOTS:
|
|
|
|
void setStepSize( qreal );
|
|
|
|
void setPageSize( int );
|
|
|
|
|
|
|
|
void stepUp();
|
|
|
|
void stepDown();
|
|
|
|
void pageUp();
|
|
|
|
void pageDown();
|
|
|
|
|
|
|
|
virtual void increment( qreal offset ) = 0;
|
|
|
|
|
|
|
|
Q_SIGNALS:
|
|
|
|
void stepSizeChanged( qreal );
|
|
|
|
void pageSizeChanged( qreal );
|
|
|
|
void snapChanged( bool );
|
|
|
|
|
|
|
|
void readOnlyChanged( bool );
|
|
|
|
|
|
|
|
protected:
|
|
|
|
void keyPressEvent( QKeyEvent* event ) override;
|
|
|
|
|
|
|
|
#ifndef QT_NO_WHEELEVENT
|
|
|
|
void wheelEvent( QWheelEvent* ) override;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
void componentComplete() override;
|
2020-07-29 07:25:35 +02:00
|
|
|
virtual void alignInput();
|
2020-07-25 14:19:14 +02:00
|
|
|
|
2020-07-25 18:46:04 +02:00
|
|
|
qreal alignedValue( qreal ) const;
|
|
|
|
QskIntervalF alignedInterval( const QskIntervalF& ) const;
|
|
|
|
|
2020-07-25 14:19:14 +02:00
|
|
|
private:
|
2020-07-31 07:41:25 +02:00
|
|
|
qreal m_stepSize = 0.1;
|
|
|
|
int m_pageSize = 1;
|
|
|
|
bool m_snap = false;
|
2020-07-25 14:19:14 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|