Salome HOME
Issue #3038: Add tooltip
[modules/shaper.git] / src / ModuleBase / ModuleBase_ParamSpinBox.h
index 4e12ffe1eb6834458f69ddd58b70db70a746527c..0e3decee8785ac7cde159dea0cd08842fb6ec89e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2017  CEA/DEN, EDF R&D
+// Copyright (C) 2014-2019  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 //
 // You should have received a copy of the GNU Lesser General Public
 // License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/ or
-// email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
 #ifndef ModuleBase_ParamSpinBox_H
@@ -51,7 +50,7 @@ public:
    \param theParent a parent object
    \param thePrecision a precision of values display
    */
-  ModuleBase_ParamSpinBox( QWidget* theParent = 0, int thePrecision = -12 );
+  ModuleBase_ParamSpinBox( QWidget* theParent = 0, int thePrecision = 12 );
 
   /// Set list of completion strings
   void setCompletionList(QStringList&);
@@ -88,8 +87,8 @@ public:
   void setMinimum(double theMin) { myMinimum = theMin; myValidator->setBottom(theMin); }
   void setMaximum(double theMax) { myMaximum = theMax; myValidator->setTop(theMax); }
 
-  int decimals() const { return myDecimals; }
-  void setDecimals(int thePrecision) { myDecimals = thePrecision; }
+  int decimals() const { return myValidator->decimals(); }
+  void setDecimals(int thePrecision) { myValidator->setDecimals(thePrecision); }
 
   double singleStep() const { return mySingleStep; }
   void setSingleStep(double theStep) { mySingleStep = theStep; }
@@ -102,6 +101,12 @@ protected:
   */
   virtual void keyReleaseEvent(QKeyEvent *event);
 
+  virtual bool eventFilter(QObject* theObj, QEvent* theEvent);
+
+  /// The virtual function is reimplemented in order to avoid extra increasing of value by StepBy
+  /// method
+  virtual void timerEvent(QTimerEvent *event) {}
+
   virtual StepEnabled stepEnabled() const { return StepUpEnabled | StepDownEnabled; }
 
    /// Returns True if the given text contains variable
@@ -139,18 +144,17 @@ private slots:
 
 private:
   QString getPrefix(int& theStart, int& theEnd) const;
+  void showCompletion(bool checkPrefix);
 
   bool myIsEquation;
   bool myAcceptVariables;
 
   QStringListModel* myCompleterModel;
   QCompleter* myCompleter;
-  int myPrecision;
 
   double myMinimum;
   double myMaximum;
 
-  int myDecimals;
   int myCompletePos;
 
   double mySingleStep;