diff --git a/src/Mod/Part/Gui/ViewProviderSpline.cpp b/src/Mod/Part/Gui/ViewProviderSpline.cpp index 2183cbebc1c7..59588e3b5257 100644 --- a/src/Mod/Part/Gui/ViewProviderSpline.cpp +++ b/src/Mod/Part/Gui/ViewProviderSpline.cpp @@ -20,7 +20,7 @@ * * ***************************************************************************/ - + #include "PreCompiled.h" #ifndef _PreComp_ # include @@ -42,11 +42,16 @@ # include # include # include +# include +# include #endif +#include + #include #include +#include #include "SoFCShapeObject.h" #include "ViewProviderSpline.h" @@ -66,6 +71,23 @@ ViewProviderSpline::~ViewProviderSpline() { } +void ViewProviderSpline::setupContextMenu(QMenu* menu, QObject* receiver, const char* member) +{ + ViewProviderPartExt::setupContextMenu(menu, receiver, member); + + // toggle command to display components + Gui::ActionFunction* func = new Gui::ActionFunction(menu); + QAction* act = menu->addAction(QObject::tr("Show control points")); + act->setCheckable(true); + act->setChecked(ControlPoints.getValue()); + func->toggle(act, boost::bind(&ViewProviderSpline::toggleControlPoints, this, _1)); +} + +void ViewProviderSpline::toggleControlPoints(bool on) +{ + ControlPoints.setValue(on); +} + void ViewProviderSpline::updateData(const App::Property* prop) { ViewProviderPartExt::updateData(prop); diff --git a/src/Mod/Part/Gui/ViewProviderSpline.h b/src/Mod/Part/Gui/ViewProviderSpline.h index 447ddc20947b..d60fb03e4a3e 100644 --- a/src/Mod/Part/Gui/ViewProviderSpline.h +++ b/src/Mod/Part/Gui/ViewProviderSpline.h @@ -44,9 +44,11 @@ class PartGuiExport ViewProviderSpline : public ViewProviderPartExt App::PropertyBool ControlPoints; void updateData(const App::Property* prop); + void setupContextMenu(QMenu* menu, QObject* receiver, const char* member); protected: void onChanged(const App::Property* prop); + void toggleControlPoints(bool); void showControlPoints(bool, const App::Property* prop); void showControlPointsOfEdge(const TopoDS_Edge&); void showControlPointsOfFace(const TopoDS_Face&);