Salome HOME
Issue #653 - Double and triple click edges -- Fix Debian dynamic_pointer_cast problem...
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetDoubleValue.cpp
index 38d47563f878fd24d725014ad6c0dbc1dfa23787..ba196af65410db97b0972d301bc4e6e69a919e99 100644 (file)
@@ -1,6 +1,6 @@
 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
 
-// File:        ModuleBase_Widgets.h
+// File:        ModuleBase_WidgetDoubleValue.cpp
 // Created:     04 June 2014
 // Author:      Vitaly Smetannikov
 
@@ -10,7 +10,6 @@
 #include <ModelAPI_AttributeDouble.h>
 #include <ModelAPI_Data.h>
 #include <ModelAPI_Object.h>
-#include <ModelAPI_Events.h>
 
 #include <ModuleBase_ParamSpinBox.h>
 #include <ModuleBase_Tools.h>
@@ -93,12 +92,11 @@ ModuleBase_WidgetDoubleValue::~ModuleBase_WidgetDoubleValue()
 {
 }
 
-void ModuleBase_WidgetDoubleValue::reset()
+bool ModuleBase_WidgetDoubleValue::reset()
 {
-  if (isComputedDefault() || mySpinBox->hasVariable()) {
-    return;
-    //if (myFeature->compute(myAttributeID))
-    //  restoreValue();
+  bool aDone = false;
+  if (!isUseReset() || isComputedDefault() || mySpinBox->hasVariable()) {
+    aDone = false;
   } else {
     bool isOk;
     double aDefValue = QString::fromStdString(getDefaultValue()).toDouble(&isOk);
@@ -107,8 +105,10 @@ void ModuleBase_WidgetDoubleValue::reset()
     if (isOk) {
       ModuleBase_Tools::setSpinValue(mySpinBox, aDefValue);
       storeValueCustom();
+      aDone = true;
     }
   }
+  return aDone;
 }
 
 bool ModuleBase_WidgetDoubleValue::storeValueCustom() const
@@ -117,19 +117,11 @@ bool ModuleBase_WidgetDoubleValue::storeValueCustom() const
   AttributeDoublePtr aReal = aData->real(attributeID());
   if (!mySpinBox->hasVariable()) {
     aReal->setValue(mySpinBox->value());
-    // In order to synchronize value and text
-    // If it is not synchronized sometimes it could take vale not as a digit but as a string
-    aReal->setText(mySpinBox->text().toStdString());
+    aReal->setText("");
   } else {
     // Here is a text of a real value or an expression.
     std::string aText = mySpinBox->text().toStdString();
     aReal->setText(aText);
-    // Send it to evaluator to convert into the double and store in the attribute
-    static Events_ID anId = ModelAPI_AttributeEvalMessage::eventId();
-    std::shared_ptr<ModelAPI_AttributeEvalMessage> aMessage =
-      std::shared_ptr<ModelAPI_AttributeEvalMessage>(new ModelAPI_AttributeEvalMessage(anId, this));
-    aMessage->setAttribute(aData->attribute(attributeID()));
-    Events_Loop::loop()->send(aMessage);
   }
   updateObject(myFeature);
   return true;