X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_ParamSpinBox.cpp;h=e7836e656126d0378c8c3e5befcee38549d4de70;hb=be64ac512378281d54e4a73e8edb68ae43d0c5a7;hp=97b8e3f22123643d4a132e60ecad58a075dd4a52;hpb=23440b0dd71b7b6a0ce33ad5196bd1b348db26bd;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_ParamSpinBox.cpp b/src/ModuleBase/ModuleBase_ParamSpinBox.cpp index 97b8e3f22..e7836e656 100644 --- a/src/ModuleBase/ModuleBase_ParamSpinBox.cpp +++ b/src/ModuleBase/ModuleBase_ParamSpinBox.cpp @@ -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 @@ -12,10 +12,9 @@ // // 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 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "ModuleBase_ParamSpinBox.h" @@ -46,11 +45,10 @@ bool isVariableSymbol(const QChar& theChar) { ModuleBase_ParamSpinBox::ModuleBase_ParamSpinBox(QWidget* theParent, int thePrecision) : QAbstractSpinBox(theParent), - myPrecision(thePrecision), myIsEquation(false), myAcceptVariables(true), mySingleStep(1), - myMinimum(DBL_MIN), + myMinimum(-DBL_MAX), myMaximum(DBL_MAX) { myCompleter = new QCompleter(this); @@ -75,7 +73,7 @@ ModuleBase_ParamSpinBox::ModuleBase_ParamSpinBox(QWidget* theParent, int thePrec myValidator = new QDoubleValidator(this); myValidator->setLocale(locale()); myValidator->setRange(myMinimum, myMaximum); - myValidator->setDecimals(myPrecision); + myValidator->setDecimals(thePrecision); } void ModuleBase_ParamSpinBox::setCompletionList(QStringList& theList) @@ -110,7 +108,7 @@ void ModuleBase_ParamSpinBox::stepBy(int steps) double aVal = lineEdit()->text().toDouble(); aVal += steps * mySingleStep; setValue(aVal); - QAbstractSpinBox::stepBy(steps); + //QAbstractSpinBox::stepBy(steps); } void ModuleBase_ParamSpinBox::onTextChanged(const QString& theText) @@ -153,8 +151,11 @@ void ModuleBase_ParamSpinBox::setValue(double value) aVal = myMinimum; else if (aVal > myMaximum) aVal = myMaximum; - QString aText = QString::number(aVal, 'g', decimals()); + QString aText = (myValidator->decimals() == 0) ? QString::number((int)aVal) : + QString::number(aVal, 'g', decimals()); + lineEdit()->blockSignals(true); lineEdit()->setText(aText); + lineEdit()->blockSignals(false); emit textChanged(aText); } @@ -174,6 +175,12 @@ void ModuleBase_ParamSpinBox::setText(const QString& value) lineEdit()->setText(value); emit textChanged(value); } + else { + bool isConv = false; + double aVal = value.toDouble(&isConv); + if (isConv) + setValue(aVal); + } } /*!