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 
29 #include "RMath.h"
30 
35 class QCADGUI_EXPORT RMathLineEdit: public QLineEdit {
36 
37 Q_OBJECT
38 Q_PROPERTY(bool angle READ isAngle WRITE setAngle);
39 //Q_PROPERTY(double defaultValue READ getDefaultValue WRITE setDefaultValue);
40 //Q_PROPERTY(int defaultUnit READ getDefaultUnit WRITE setDefaultUnit);
41 //Q_PROPERTY(RS::Unit defaultUnit READ getDefaultUnit WRITE setDefaultUnit);
42 //Q_ENUMS(RS::Unit);
43 
44 public:
45  RMathLineEdit(QWidget* parent = NULL);
46 
47  bool isAngle() const {
48  return angle;
49  }
50  void setAngle(bool on) {
51  angle = on;
52  }
53  bool isInteger() const {
54  return integer;
55  }
56  void setInteger(bool on) {
57  integer = on;
58  }
59 
60  void setValue(double v, int precision=6);
61  double getValue();
62  QString getError();
63  void clearError();
64 
65  bool isValid() {
66  return !RMath::isNaN(value);
67  }
68 
69  void setToolTip(const QString& toolTip);
70 
71  /*
72  double getDefaultValue() {
73  return defaultValue;
74  }
75  void setDefaultValue(double v) {
76  defaultValue = v;
77  }
78  */
79 
80  //void setDefaultUnit(int defaultUnit);
81  //int getDefaultUnit();
82 
83 protected:
84  virtual void keyPressEvent(QKeyEvent* event);
85  virtual void keyReleaseEvent(QKeyEvent* event);
86 
87 public slots:
88  void slotTextChanged(const QString& text);
89  void slotTextEdited(const QString& text);
90 
91 signals:
92  void valueChanged(double value, const QString& error);
93 
94 private:
95  QPalette oriPalette;
96  bool angle;
97  bool integer;
98  double value;
99  //RS::Unit defaultUnit;
100  QString error;
102  bool noEmit;
103  //double defaultValue;
104 // QLabel* resultTip;
105 };
106 
108 
109 #endif