- AttributeIntegerPtr aIntVal = aData->integer(attributeID());
- int aVal = mySpinBox->value();
- aIntVal->setValue(mySpinBox->value());
+ AttributeIntegerPtr anAttribute = aData->integer(attributeID());
+ if (mySpinBox->hasVariable()) {
+ // Here is a text of a real value or an expression.
+ std::string aText = mySpinBox->text().toStdString();
+ anAttribute->setText(aText);
+ } else {
+ // it is important to set the empty text value to the attribute before set the value
+ // because setValue tries to calculate the attribute value according to the
+ // attribute current text
+ anAttribute->setText("");
+ anAttribute->setValue(mySpinBox->value());
+ }