]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
parameter problem. Scenario: dimension: parameter using, scenario: create a=100,...
authornds <natalia.donis@opencascade.com>
Wed, 15 Jul 2015 09:41:56 +0000 (12:41 +0300)
committernds <natalia.donis@opencascade.com>
Wed, 15 Jul 2015 09:42:27 +0000 (12:42 +0300)
edit length value by double click -> parameter is '3'

src/ModuleBase/ModuleBase_WidgetDoubleValue.cpp
src/ModuleBase/ModuleBase_WidgetEditor.cpp

index ba196af65410db97b0972d301bc4e6e69a919e99..82a8800b3232b435e0ee7ca6928ffc0aa83a0b13 100644 (file)
@@ -116,8 +116,11 @@ bool ModuleBase_WidgetDoubleValue::storeValueCustom() const
   DataPtr aData = myFeature->data();
   AttributeDoublePtr aReal = aData->real(attributeID());
   if (!mySpinBox->hasVariable()) {
-    aReal->setValue(mySpinBox->value());
+    // it is important to set the empty text value to the attribute before set the value
+    // because setValue tries to calculate the attrubyte bakye according to the
+    // attribute current text
     aReal->setText("");
+    aReal->setValue(mySpinBox->value());
   } else {
     // Here is a text of a real value or an expression.
     std::string aText = mySpinBox->text().toStdString();
index 2b77ecafa7f60737e1410bcf1ad4a74486e97a29..5aa9aa24f8e3f11b456ad62a086e6f6e34077c93 100644 (file)
@@ -52,7 +52,11 @@ void editedValue(double& outValue, QString& outText)
   ModuleBase_ParamSpinBox* aEditor = new ModuleBase_ParamSpinBox(&aDlg);
   aEditor->setMinimum(0);
   aEditor->setMaximum(DBL_MAX);
-  aEditor->setValue(outValue);
+  if (outText.isEmpty())
+    aEditor->setValue(outValue);
+  else
+    aEditor->setText(outText);
+
   aLay->addWidget(aEditor);
 
   aEditor->setFocus();
@@ -95,6 +99,9 @@ void ModuleBase_WidgetEditor::showPopupEditor()
   //QApplication::processEvents();
   double aValue = mySpinBox->value();
   QString aText;
+  if (mySpinBox->hasVariable())
+    aText = mySpinBox->text();
+
   editedValue(aValue, aText);
   if (aText.isEmpty()) {
     ModuleBase_Tools::setSpinValue(mySpinBox, aValue);