From 0ea8beed7ace828fb5447269ebee0568bf11be03 Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 3 May 2012 17:01:09 +0200 Subject: [PATCH] update helix immediately --- src/Mod/Part/App/PrimitiveFeature.cpp | 18 +++++++++++++++++- src/Mod/Part/App/PrimitiveFeature.h | 3 +++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/Mod/Part/App/PrimitiveFeature.cpp b/src/Mod/Part/App/PrimitiveFeature.cpp index 0213ac04d..5673ddd42 100644 --- a/src/Mod/Part/App/PrimitiveFeature.cpp +++ b/src/Mod/Part/App/PrimitiveFeature.cpp @@ -100,7 +100,7 @@ void Primitive::onChanged(const App::Property* prop) // Do not support sphere, ellipsoid and torus because the creation // takes too long and thus is not feasible std::string grp = (prop->getGroup() ? prop->getGroup() : ""); - if (grp == "Plane" || grp == "Cylinder" || grp == "Cone" || grp == "Helix") { + if (grp == "Plane" || grp == "Cylinder" || grp == "Cone") { try { App::DocumentObjectExecReturn *ret = recompute(); delete ret; @@ -601,6 +601,22 @@ Helix::Helix(void) LocalCoord.setEnums(LocalCSEnums); } +void Helix::onChanged(const App::Property* prop) +{ + if (!isRestoring()) { + if (prop == &Pitch || prop == &Height || prop == &Radius || + prop == &Angle || prop == &LocalCoord) { + try { + App::DocumentObjectExecReturn *ret = recompute(); + delete ret; + } + catch (...) { + } + } + } + Part::Feature::onChanged(prop); +} + short Helix::mustExecute() const { if (Pitch.isTouched()) diff --git a/src/Mod/Part/App/PrimitiveFeature.h b/src/Mod/Part/App/PrimitiveFeature.h index e90a4d6a1..0c0b7b81d 100644 --- a/src/Mod/Part/App/PrimitiveFeature.h +++ b/src/Mod/Part/App/PrimitiveFeature.h @@ -236,6 +236,9 @@ public: short mustExecute() const; //@} +protected: + void onChanged (const App::Property* prop); + private: static const char* LocalCSEnums[]; };