From 4025405ce59bcb3c489b666aa86da50bae4a9510 Mon Sep 17 00:00:00 2001 From: wmayer Date: Sun, 8 Nov 2020 12:19:57 +0100 Subject: [PATCH] Part: make view provider for helix and spiral inherit from primitive and use spline extension --- .../Part/Gui/ViewProviderHelixParametric.cpp | 74 ++----------------- .../Part/Gui/ViewProviderHelixParametric.h | 15 ++-- 2 files changed, 15 insertions(+), 74 deletions(-) diff --git a/src/Mod/Part/Gui/ViewProviderHelixParametric.cpp b/src/Mod/Part/Gui/ViewProviderHelixParametric.cpp index 81ba05609fa3..27ba43e48072 100644 --- a/src/Mod/Part/Gui/ViewProviderHelixParametric.cpp +++ b/src/Mod/Part/Gui/ViewProviderHelixParametric.cpp @@ -28,21 +28,18 @@ # include #endif -#include -#include -#include -#include "DlgPrimitives.h" #include "ViewProviderHelixParametric.h" using namespace PartGui; -PROPERTY_SOURCE(PartGui::ViewProviderHelixParametric, PartGui::ViewProviderSpline) +PROPERTY_SOURCE(PartGui::ViewProviderHelixParametric, PartGui::ViewProviderPrimitive) ViewProviderHelixParametric::ViewProviderHelixParametric() { sPixmap = "Part_Helix_Parametric"; + extension.initExtension(this); } ViewProviderHelixParametric::~ViewProviderHelixParametric() @@ -62,46 +59,19 @@ std::vector ViewProviderHelixParametric::getDisplayModes(void) cons void ViewProviderHelixParametric::setupContextMenu(QMenu* menu, QObject* receiver, const char* member) { - QAction* act; - act = menu->addAction(QObject::tr("Edit helix"), receiver, member); - act->setData(QVariant((int)ViewProvider::Default)); - ViewProviderSpline::setupContextMenu(menu, receiver, member); -} - -bool ViewProviderHelixParametric::setEdit(int ModNum) -{ - if (ModNum == ViewProvider::Default) { - if (Gui::Control().activeDialog()) - return false; - PartGui::TaskPrimitivesEdit* dlg - = new PartGui::TaskPrimitivesEdit(dynamic_cast(getObject())); - Gui::Control().showDialog(dlg); - return true; - } - else { - ViewProviderSpline::setEdit(ModNum); - return true; - } -} - -void ViewProviderHelixParametric::unsetEdit(int ModNum) -{ - if (ModNum == ViewProvider::Default) { - Gui::Control().closeDialog(); - } - else { - ViewProviderSpline::unsetEdit(ModNum); - } + ViewProviderPrimitive::setupContextMenu(menu, receiver, member); + extension.setupContextMenu(menu); } // ------------------------------------------------------------------ -PROPERTY_SOURCE(PartGui::ViewProviderSpiralParametric, PartGui::ViewProviderSpline) +PROPERTY_SOURCE(PartGui::ViewProviderSpiralParametric, PartGui::ViewProviderPrimitive) ViewProviderSpiralParametric::ViewProviderSpiralParametric() { sPixmap = "Part_Spiral_Parametric"; + extension.initExtension(this); } ViewProviderSpiralParametric::~ViewProviderSpiralParametric() @@ -121,34 +91,6 @@ std::vector ViewProviderSpiralParametric::getDisplayModes(void) con void ViewProviderSpiralParametric::setupContextMenu(QMenu* menu, QObject* receiver, const char* member) { - QAction* act; - act = menu->addAction(QObject::tr("Edit spiral"), receiver, member); - act->setData(QVariant((int)ViewProvider::Default)); - ViewProviderSpline::setupContextMenu(menu, receiver, member); -} - -bool ViewProviderSpiralParametric::setEdit(int ModNum) -{ - if (ModNum == ViewProvider::Default) { - if (Gui::Control().activeDialog()) - return false; - PartGui::TaskPrimitivesEdit* dlg - = new PartGui::TaskPrimitivesEdit(dynamic_cast(getObject())); - Gui::Control().showDialog(dlg); - return true; - } - else { - ViewProviderSpline::setEdit(ModNum); - return true; - } -} - -void ViewProviderSpiralParametric::unsetEdit(int ModNum) -{ - if (ModNum == ViewProvider::Default) { - Gui::Control().closeDialog(); - } - else { - ViewProviderSpline::unsetEdit(ModNum); - } + ViewProviderPrimitive::setupContextMenu(menu, receiver, member); + extension.setupContextMenu(menu); } diff --git a/src/Mod/Part/Gui/ViewProviderHelixParametric.h b/src/Mod/Part/Gui/ViewProviderHelixParametric.h index e0476105a1a3..bc6050cb07e0 100644 --- a/src/Mod/Part/Gui/ViewProviderHelixParametric.h +++ b/src/Mod/Part/Gui/ViewProviderHelixParametric.h @@ -25,11 +25,12 @@ #define PARTGUI_VIEWPROVIDERHELIXPARAMETRIC_H #include "ViewProviderSpline.h" +#include "ViewProvider.h" namespace PartGui { -class PartGuiExport ViewProviderHelixParametric : public ViewProviderSpline +class PartGuiExport ViewProviderHelixParametric : public ViewProviderPrimitive { PROPERTY_HEADER(PartGui::ViewProviderHelixParametric); @@ -41,12 +42,11 @@ class PartGuiExport ViewProviderHelixParametric : public ViewProviderSpline std::vector getDisplayModes(void) const; void setupContextMenu(QMenu*, QObject*, const char*); -protected: - bool setEdit(int ModNum); - void unsetEdit(int ModNum); +private: + ViewProviderSplineExtension extension; }; -class PartGuiExport ViewProviderSpiralParametric : public ViewProviderSpline +class PartGuiExport ViewProviderSpiralParametric : public ViewProviderPrimitive { PROPERTY_HEADER(PartGui::ViewProviderSpiralParametric); @@ -58,9 +58,8 @@ class PartGuiExport ViewProviderSpiralParametric : public ViewProviderSpline std::vector getDisplayModes(void) const; void setupContextMenu(QMenu*, QObject*, const char*); -protected: - bool setEdit(int ModNum); - void unsetEdit(int ModNum); +private: + ViewProviderSplineExtension extension; }; } // namespace PartGui