Salome HOME
Task #3235: Projection without link to source shape
[modules/shaper.git] / src / ModuleBase / ModuleBase_ParamSpinBox.h
index 16ab6378909e0f320d7fa08f9ee18abe73e62ad2..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; }
@@ -97,8 +96,17 @@ public:
   void setValueEnabled(bool theEnable);
 
 protected:
+  /*!
+  \brief This function is called when the spinbox receives key release event.
+  */
   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
@@ -136,19 +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;