QCAD
Open Source 2D CAD
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RMathLineEdit.h
Go to the documentation of this file.
1 
20 #ifndef RMATHLINEEDIT_H_
21 #define RMATHLINEEDIT_H_
22 
23 #include "gui_global.h"
24 
25 #include <QMetaType>
26 #include <QLabel>
27 #include <QLineEdit>
28 #include <QtDesigner/QDesignerExportWidget>
29 
30 #include "RMath.h"
31 
36 class QCADGUI_EXPORT RMathLineEdit: public QLineEdit {
37 
38 Q_OBJECT
39 Q_PROPERTY(bool angle READ isAngle WRITE setAngle);
40 //Q_PROPERTY(double defaultValue READ getDefaultValue WRITE setDefaultValue);
41 //Q_PROPERTY(int defaultUnit READ getDefaultUnit WRITE setDefaultUnit);
42 //Q_PROPERTY(RS::Unit defaultUnit READ getDefaultUnit WRITE setDefaultUnit);
43 //Q_ENUMS(RS::Unit);
44 
45 public:
46  RMathLineEdit(QWidget* parent = NULL);
47 
48  bool isAngle() const {
49  return angle;
50  }
51  void setAngle(bool on) {
52  angle = on;
53  }
54  bool isInteger() const {
55  return integer;
56  }
57  void setInteger(bool on) {
58  integer = on;
59  }
60 
61  void setValue(double v, int precision=6);
62  double getValue();
63  QString getError();
64  void clearError();
65 
66  bool isValid() {
67  return !RMath::isNaN(value);
68  }
69 
70  void setToolTip(const QString& toolTip);
71 
72  /*
73  double getDefaultValue() {
74  return defaultValue;
75  }
76  void setDefaultValue(double v) {
77  defaultValue = v;
78  }
79  */
80 
81  //void setDefaultUnit(int defaultUnit);
82  //int getDefaultUnit();
83 
84 protected:
85  virtual void keyPressEvent(QKeyEvent* event);
86  virtual void keyReleaseEvent(QKeyEvent* event);
87 
88 public slots:
89  void slotTextChanged(const QString& text);
90  void slotTextEdited(const QString& text);
91 
92 signals:
93  void valueChanged(double value, const QString& error);
94 
95 private:
96  QPalette oriPalette;
97  bool angle;
98  bool integer;
99  double value;
100  //RS::Unit defaultUnit;
101  QString error;
103  bool noEmit;
104  //double defaultValue;
105 // QLabel* resultTip;
106 };
107 
109 
110 #endif