X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_DoubleSpinBox.h;h=ec18e3500d8306cc7ab04221f5770bb1fd3f9c1e;hb=450d1bd65c11870d3942a30164518037b9a7503e;hp=a247fb8b782d5fde34efb0acb4ab629c47c88438;hpb=4021ee9a0bbca04e0d2db98efa55eff30f03985a;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_DoubleSpinBox.h b/src/ModuleBase/ModuleBase_DoubleSpinBox.h index a247fb8b7..ec18e3500 100644 --- a/src/ModuleBase/ModuleBase_DoubleSpinBox.h +++ b/src/ModuleBase/ModuleBase_DoubleSpinBox.h @@ -1,5 +1,7 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + // File: ModuleBase_DoubleSpinBox.h -// Author: Sergey TELKOV +// Author: Sergey BELASH // #ifndef MODULEBASE_DOUBLESPINBOX_H_ #define MODULEBASE_DOUBLESPINBOX_H_ @@ -9,35 +11,76 @@ #include #include +class QKeyEvent; + +/** +* \ingroup GUI +* An extension and customization of QDoubleSpinBox class +*/ class MODULEBASE_EXPORT ModuleBase_DoubleSpinBox : public QDoubleSpinBox { Q_OBJECT public: - ModuleBase_DoubleSpinBox(QWidget* = 0, int thePrecision = 6); + explicit ModuleBase_DoubleSpinBox( QWidget* theParent = 0, int thePrecision = -12 ); virtual ~ModuleBase_DoubleSpinBox(); + /// Returns true if the control is clear bool isCleared() const; + + /// Set control clear virtual void setCleared(const bool); + /// Returns current precision int getPrecision() const; + + /// Set precision void setPrecision(const int); + /// Set step virtual void stepBy(int); + /// Converts value from string to double virtual double valueFromText(const QString&) const; + + /// Convert value from double to string virtual QString textFromValue(double) const; + /// Validate current value virtual QValidator::State validate(QString&, int&) const; + /// Change enable/disable internal state to emit key press event + /// \param theEnable if true, the signal is emitted + /// \return the previous value + bool enableKeyPressEvent(const bool& theEnable); + +signals: + /// The signal about key release on the control, that corresponds to the attribute + /// \param theEvent key release event + void enterPressed(); + void enterReleased(); + protected slots: + /// Called on text changed virtual void onTextChanged(const QString&); protected: + /// Removes extra trailing zero symbols QString removeTrailingZeroes(const QString&) const; + /// Called on key press event + virtual void keyReleaseEvent(QKeyEvent* theEvent); + + /// Called on key press event + virtual void keyPressEvent(QKeyEvent* theEvent); private: + // boolen flag whether the key event is emitted. The default value is false + bool myIsEmitKeyPressEvent; + + /// Is clear flag bool myCleared; + + /// Precision value int myPrecision; };