]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Make Point2D sketch controls can use parameters and expressions and updated immediately
authormpv <mpv@opencascade.com>
Wed, 27 May 2015 12:43:59 +0000 (15:43 +0300)
committermpv <mpv@opencascade.com>
Wed, 27 May 2015 12:43:59 +0000 (15:43 +0300)
src/GeomData/GeomData_Point.cpp
src/GeomData/GeomData_Point.h
src/GeomData/GeomData_Point2D.cpp

index e76498c00db8fbfcd830d8bfa98fbc7f918685f6..ef48bfc28f0a1d85263cfb98adf73f3f700bc246 100644 (file)
@@ -8,6 +8,7 @@
 #include <GeomAPI_Pnt.h>
 #include <ModelAPI_Feature.h>
 #include <ModelAPI_Data.h>
+#include <ModelAPI_Events.h>
 
 using namespace std;
 
@@ -65,6 +66,12 @@ void GeomData_Point::setText(const std::string& theX,
     myTextArray->SetValue(1, aY);
     myTextArray->SetValue(2, aZ);
     owner()->data()->sendAttributeUpdated(this);
+    // 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(owner()->data()->attribute(id())); // to get shared pointer to this
+    Events_Loop::loop()->send(aMessage);
   }
 }
 
index 8a0fb83aa438b26b071eb92f77d749b04722bf6e..30ac5310ff695d4ef5e15d055ce7b073e66013b9 100644 (file)
@@ -52,7 +52,7 @@ class GeomData_Point : public GeomDataAPI_Point
   GEOMDATA_EXPORT virtual std::string textZ();
 
   /// Allows to set expression (text) as invalid (by the parameters listener)
-  GEOMDATA_EXPORT virtual void setExpressionInvalid(int, bool theFlag);
+  GEOMDATA_EXPORT virtual void setExpressionInvalid(int, const bool theFlag);
 
   /// Returns true if text is invalid
   GEOMDATA_EXPORT virtual bool expressionInvalid(int);
index bb1e6c51981a269bce373b477e6cbced83efc7fa..9637c248e4bfbf1c4670a09e7cbf61d05f9e7b8d 100644 (file)
@@ -8,6 +8,7 @@
 #include <GeomAPI_Pnt2d.h>
 #include <ModelAPI_Feature.h>
 #include <ModelAPI_Data.h>
+#include <ModelAPI_Events.h>
 
 using namespace std;
 
@@ -54,6 +55,12 @@ void GeomData_Point2D::setText(const std::string& theX,
     myTextArray->SetValue(0, aX);
     myTextArray->SetValue(1, aY);
     owner()->data()->sendAttributeUpdated(this);
+    // 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(owner()->data()->attribute(id())); // to get shared pointer to this
+    Events_Loop::loop()->send(aMessage);
   }
 }