Skip to content

Commit

Permalink
Part: make view provider for helix and spiral inherit from primitive …
Browse files Browse the repository at this point in the history
…and use spline extension
  • Loading branch information
wwmayer committed Nov 8, 2020
1 parent 98d7a04 commit 4025405
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 74 deletions.
74 changes: 8 additions & 66 deletions src/Mod/Part/Gui/ViewProviderHelixParametric.cpp
Expand Up @@ -28,21 +28,18 @@
# include <QMenu>
#endif

#include <Gui/Application.h>
#include <Gui/Control.h>
#include <Mod/Part/App/PrimitiveFeature.h>
#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()
Expand All @@ -62,46 +59,19 @@ std::vector<std::string> 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<Part::Primitive*>(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()
Expand All @@ -121,34 +91,6 @@ std::vector<std::string> 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<Part::Primitive*>(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);
}
15 changes: 7 additions & 8 deletions src/Mod/Part/Gui/ViewProviderHelixParametric.h
Expand Up @@ -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);

Expand All @@ -41,12 +42,11 @@ class PartGuiExport ViewProviderHelixParametric : public ViewProviderSpline
std::vector<std::string> 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);

Expand All @@ -58,9 +58,8 @@ class PartGuiExport ViewProviderSpiralParametric : public ViewProviderSpline
std::vector<std::string> getDisplayModes(void) const;
void setupContextMenu(QMenu*, QObject*, const char*);

protected:
bool setEdit(int ModNum);
void unsetEdit(int ModNum);
private:
ViewProviderSplineExtension extension;
};

} // namespace PartGui
Expand Down

0 comments on commit 4025405

Please sign in to comment.