Salome HOME
Issue #2998: Add help description for automatic creation of constraints
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetIntValue.cpp
index 72622070a8dc3c31a399f0fb345bf1ded6d29273..0e131bb1dc8dda8766947714177e795ea9a01e38 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
 //
 
 #include <ModuleBase_WidgetIntValue.h>
@@ -52,7 +51,7 @@
 
 ModuleBase_WidgetIntValue::ModuleBase_WidgetIntValue(QWidget* theParent,
                                                      const Config_WidgetAPI* theData)
-: ModuleBase_ModelWidget(theParent, theData)
+: ModuleBase_ModelWidget(theParent, theData), myHasDefault(false)
 {
   QFormLayout* aControlLay = new QFormLayout(this);
   ModuleBase_Tools::adjustMargins(aControlLay);
@@ -91,10 +90,9 @@ ModuleBase_WidgetIntValue::ModuleBase_WidgetIntValue(QWidget* theParent,
     mySpinBox->setSingleStep(aStepVal);
   }
 
-  int aDefVal = QString::fromStdString(getDefaultValue()).toInt(&isOk);
-  if (isOk) {
-    mySpinBox->setValue(aDefVal);
-  }
+  myDefVal = QString::fromStdString(getDefaultValue()).toInt(&myHasDefault);
+  if (myHasDefault)
+    mySpinBox->setValue(myDefVal);
 
   QString aTTip = translate(theData->widgetTooltip());
   mySpinBox->setToolTip(aTTip);
@@ -200,11 +198,13 @@ bool ModuleBase_WidgetIntValue::restoreValueCustom()
     ModuleBase_Tools::setSpinText(mySpinBox, aText);
   } else {
     ModuleBase_Tools::setSpinValue(mySpinBox,
-      anAttribute->isInitialized() ? anAttribute->value() : 0);
+      anAttribute->isInitialized() ? anAttribute->value() : myDefVal);
     if (anAttribute->isInitialized() && anAttribute->expressionInvalid()) {
       anAttribute->setExpressionError("");
       anAttribute->setExpressionInvalid(false);
     }
+    if ((!anAttribute->isInitialized()) && myHasDefault)
+      anAttribute->setValue(myDefVal);
   }
   return true;
 }