git-svn-id: svn://db.shs.com.ru/libs@586 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2019-09-02 14:08:38 +00:00
parent f862381b68
commit 3d06d2095e
929 changed files with 66799 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
#ifndef EVALSPINBOX_H
#define EVALSPINBOX_H
#include <QAbstractSpinBox>
#include <QMouseEvent>
#include "qpievaluator.h"
class QLabel;
class EvalSpinBox: public QAbstractSpinBox
{
Q_OBJECT
Q_PROPERTY(double value READ value WRITE setValue NOTIFY valueChanged USER true)
Q_PROPERTY(QString expression READ expression WRITE setExpression USER true)
Q_PROPERTY(QString defaultText READ defaultText WRITE setDefaultText)
Q_PROPERTY(bool clearButtonVisible READ isClearButtonVisible WRITE setClearButtonVisible)
public:
explicit EvalSpinBox(QWidget * parent = 0);
~EvalSpinBox();
double value() const;
const QString & expression() const;
const QString & defaultText() const {return dt;}
bool isClearButtonVisible() const {return cw_visible;}
bool isCleared() const;
virtual void stepBy(int steps);
virtual void clear();
virtual QSize sizeHint() const;
public slots:
void setExpression(const QString & expr);
void setValue(double val);
void setDefaultText(const QString & t);
void setClearButtonVisible(bool visible);
protected:
QString text() const {return QAbstractSpinBox::text();}
virtual StepEnabled stepEnabled() const;
virtual void focusInEvent(QFocusEvent *event);
virtual void focusOutEvent(QFocusEvent *event);
virtual void wheelEvent(QWheelEvent *event);
void stepByDouble(double steps);
QWidget * status;
QWidget * cw;
QPIEvaluator eval;
QLabel * label;
QImage icon_ok;
QImage icon_fail;
QImage icon_calc;
QImage icon;
QImage clear_im;
QString dt;
bool cw_visible;
private:
bool eventFilter(QObject * o, QEvent * e);
void resizeEvent(QResizeEvent * );
void changeEvent(QEvent * e);
void statusPaintEvent();
void cwPaintEvent();
private slots:
void clearMouseRelease(QMouseEvent * e);
void textChanged_(const QString & text);
void setExpression_();
void resizeIcons();
signals:
void valueChanged(double val);
void cleared();
};
#endif // EVALSPINBOX_H