diff --git a/src/Mod/Part/Gui/AppPartGui.cpp b/src/Mod/Part/Gui/AppPartGui.cpp index c3520182fa..cfec84c3ad 100644 --- a/src/Mod/Part/Gui/AppPartGui.cpp +++ b/src/Mod/Part/Gui/AppPartGui.cpp @@ -156,6 +156,7 @@ PyMOD_INIT_FUNC(PartGui) PartGui::ViewProviderAttachExtension ::init(); PartGui::ViewProviderAttachExtensionPython ::init(); PartGui::ViewProviderSplineExtension ::init(); + PartGui::ViewProviderSplineExtensionPython ::init(); PartGui::ViewProviderPartExt ::init(); PartGui::ViewProviderPart ::init(); PartGui::ViewProviderPrimitive ::init(); diff --git a/src/Mod/Part/Gui/ViewProviderHelixParametric.cpp b/src/Mod/Part/Gui/ViewProviderHelixParametric.cpp index 27ba43e480..3f39353cab 100644 --- a/src/Mod/Part/Gui/ViewProviderHelixParametric.cpp +++ b/src/Mod/Part/Gui/ViewProviderHelixParametric.cpp @@ -60,7 +60,6 @@ std::vector ViewProviderHelixParametric::getDisplayModes(void) cons void ViewProviderHelixParametric::setupContextMenu(QMenu* menu, QObject* receiver, const char* member) { ViewProviderPrimitive::setupContextMenu(menu, receiver, member); - extension.setupContextMenu(menu); } // ------------------------------------------------------------------ @@ -92,5 +91,4 @@ std::vector ViewProviderSpiralParametric::getDisplayModes(void) con void ViewProviderSpiralParametric::setupContextMenu(QMenu* menu, QObject* receiver, const char* member) { ViewProviderPrimitive::setupContextMenu(menu, receiver, member); - extension.setupContextMenu(menu); } diff --git a/src/Mod/Part/Gui/ViewProviderSpline.cpp b/src/Mod/Part/Gui/ViewProviderSpline.cpp index 16dcb66ae0..8bcaaad38f 100644 --- a/src/Mod/Part/Gui/ViewProviderSpline.cpp +++ b/src/Mod/Part/Gui/ViewProviderSpline.cpp @@ -324,7 +324,7 @@ void ViewProviderSplineExtension::toggleControlPoints(bool on) ControlPoints.setValue(on); } -void ViewProviderSplineExtension::setupContextMenu(QMenu* menu) +void ViewProviderSplineExtension::extensionSetupContextMenu(QMenu* menu, QObject*, const char*) { // toggle command to display components Gui::ActionFunction* func = new Gui::ActionFunction(menu); @@ -546,3 +546,10 @@ void ViewProviderSplineExtension::showControlPointsOfFace(const TopoDS_Face& fac pcControlPoints->addChild(nodes); } + +namespace Gui { + EXTENSION_PROPERTY_SOURCE_TEMPLATE(PartGui::ViewProviderSplineExtensionPython, PartGui::ViewProviderSplineExtension) + +// explicit template instantiation + template class PartGuiExport ViewProviderExtensionPythonT; +} diff --git a/src/Mod/Part/Gui/ViewProviderSpline.h b/src/Mod/Part/Gui/ViewProviderSpline.h index 11195c78bb..6861a2cdfe 100644 --- a/src/Mod/Part/Gui/ViewProviderSpline.h +++ b/src/Mod/Part/Gui/ViewProviderSpline.h @@ -68,7 +68,7 @@ public: App::PropertyBool ControlPoints; virtual void extensionUpdateData(const App::Property*) override; - void setupContextMenu(QMenu* menu); + virtual void extensionSetupContextMenu(QMenu*, QObject*, const char*) override; protected: virtual void extensionOnChanged(const App::Property* p) override; @@ -80,6 +80,8 @@ protected: SoSwitch *pcControlPoints; }; +typedef Gui::ViewProviderExtensionPythonT ViewProviderSplineExtensionPython; + } //namespace PartGui