diff --git a/src/Mod/Part/App/PartFeatures.cpp b/src/Mod/Part/App/PartFeatures.cpp index 96014dfdd..57b9d9af0 100644 --- a/src/Mod/Part/App/PartFeatures.cpp +++ b/src/Mod/Part/App/PartFeatures.cpp @@ -118,7 +118,7 @@ App::DocumentObjectExecReturn *RuledSurface::execute(void) this->Shape.setValue(shell); } else { - return new App::DocumentObjectExecReturn("Curves must either be edges or wires."); + return new App::DocumentObjectExecReturn("Curves must either be both edges or both wires."); } return App::DocumentObject::StdReturn; } diff --git a/src/Mod/Part/Gui/Command.cpp b/src/Mod/Part/Gui/Command.cpp index 94d8d745a..b23bca966 100644 --- a/src/Mod/Part/Gui/Command.cpp +++ b/src/Mod/Part/Gui/Command.cpp @@ -860,7 +860,7 @@ CmdPartMirror::CmdPartMirror() sToolTipText = QT_TR_NOOP("Mirroring a selected shape"); sWhatsThis = sToolTipText; sStatusTip = sToolTipText; - sPixmap = "Part_MirrorPNG"; + sPixmap = "Part_Mirror.svg"; } void CmdPartMirror::activated(int iMsg) @@ -1227,7 +1227,7 @@ CmdPartRuledSurface::CmdPartRuledSurface() sAppModule = "Part"; sGroup = QT_TR_NOOP("Part"); sMenuText = QT_TR_NOOP("Create ruled surface"); - sToolTipText = QT_TR_NOOP("Create a ruled surface from two curves"); + sToolTipText = QT_TR_NOOP("Create a ruled surface from either two Edges or two wires"); sWhatsThis = sToolTipText; sStatusTip = sToolTipText; sPixmap = "Part_RuledSurface"; @@ -1316,7 +1316,7 @@ void CmdPartRuledSurface::activated(int iMsg) } openCommand("Create ruled surface"); - doCommand(Doc, "FreeCAD.ActiveDocument.addObject('Part::RuledSurface','Filled shape')"); + doCommand(Doc, "FreeCAD.ActiveDocument.addObject('Part::RuledSurface', 'Ruled Surface')"); doCommand(Doc, "FreeCAD.ActiveDocument.ActiveObject.Curve1=(FreeCAD.ActiveDocument.%s,['%s'])" ,obj1.c_str(), link1.c_str()); doCommand(Doc, "FreeCAD.ActiveDocument.ActiveObject.Curve2=(FreeCAD.ActiveDocument.%s,['%s'])" diff --git a/src/Mod/Part/Gui/Mirroring.cpp b/src/Mod/Part/Gui/Mirroring.cpp index bad33a692..6847e1e97 100644 --- a/src/Mod/Part/Gui/Mirroring.cpp +++ b/src/Mod/Part/Gui/Mirroring.cpp @@ -182,7 +182,7 @@ TaskMirroring::TaskMirroring() { widget = new Mirroring(); taskbox = new Gui::TaskView::TaskBox( - Gui::BitmapFactory().pixmap("Part_MirrorPNG"), + Gui::BitmapFactory().pixmap("Part_Mirror.svg"), widget->windowTitle(), false, 0); taskbox->groupLayout()->addWidget(widget); Content.push_back(taskbox); diff --git a/src/Mod/Part/Gui/ViewProviderMirror.cpp b/src/Mod/Part/Gui/ViewProviderMirror.cpp index 5296fa8a3..d7c8ea5d5 100644 --- a/src/Mod/Part/Gui/ViewProviderMirror.cpp +++ b/src/Mod/Part/Gui/ViewProviderMirror.cpp @@ -57,7 +57,7 @@ PROPERTY_SOURCE(PartGui::ViewProviderMirror, PartGui::ViewProviderPart) ViewProviderMirror::ViewProviderMirror() { - sPixmap = "Part_MirrorPNG"; + sPixmap = "Part_Mirror.svg"; pcEditNode = new SoSeparator(); pcEditNode->ref(); } diff --git a/src/Mod/Part/Gui/ViewProviderRuledSurface.cpp b/src/Mod/Part/Gui/ViewProviderRuledSurface.cpp index afd1137df..cf3a09bd8 100644 --- a/src/Mod/Part/Gui/ViewProviderRuledSurface.cpp +++ b/src/Mod/Part/Gui/ViewProviderRuledSurface.cpp @@ -30,6 +30,9 @@ #include #include "ViewProviderRuledSurface.h" +#include + +#include //#include "Tree.h" @@ -56,6 +59,47 @@ ViewProviderRuledSurface::~ViewProviderRuledSurface() } +std::vector ViewProviderRuledSurface::claimChildren() const +{ + std::vector temp; + temp.push_back(static_cast(getObject())->Curve1.getValue()); + temp.push_back(static_cast(getObject())->Curve2.getValue()); + return temp; +} + +void ViewProviderRuledSurface::updateData(const App::Property* prop) +{ + PartGui::ViewProviderPart::updateData(prop); + if (prop->getTypeId() == Part::PropertyShapeHistory::getClassTypeId()) { + const std::vector& hist = static_cast + (prop)->getValues(); + } + /* //The following hides the Children shapes. If the edges from which the Ruled Surface was created + * were selected from the subshapes of another shape, it is likely that one would not want to hide the shape + * hence this section is commented out + Part::RuledSurface* pRuledSurface = static_cast(getObject()); + App::DocumentObject *pCurve1 = pRuledSurface->Curve1.getValue(); + App::DocumentObject *pCurve2 = pRuledSurface->Curve2.getValue(); + if (pCurve1) + Gui::Application::Instance->hideViewProvider(pCurve1); + if (pCurve2) + Gui::Application::Instance->hideViewProvider(pCurve2);*/ + + } + +bool ViewProviderRuledSurface::onDelete(const std::vector &) +{ + // get the input shape + Part::RuledSurface* pRuledSurface = static_cast(getObject()); + App::DocumentObject *pCurve1 = pRuledSurface->Curve1.getValue(); + App::DocumentObject *pCurve2 = pRuledSurface->Curve2.getValue(); + if (pCurve1) + Gui::Application::Instance->showViewProvider(pCurve1); + if (pCurve2) + Gui::Application::Instance->showViewProvider(pCurve2); + + return true; +} // ********************************************************************************** diff --git a/src/Mod/Part/Gui/ViewProviderRuledSurface.h b/src/Mod/Part/Gui/ViewProviderRuledSurface.h index efc4a3e12..b31a107f4 100644 --- a/src/Mod/Part/Gui/ViewProviderRuledSurface.h +++ b/src/Mod/Part/Gui/ViewProviderRuledSurface.h @@ -27,16 +27,7 @@ #include "ViewProvider.h" -class TopoDS_Shape; -class TopoDS_Face; -class SoSeparator; -class SbVec3f; -class SoTransform; -namespace Gui { - class View3DInventorViewer; - class SoFCSelection; -} namespace PartGui { @@ -52,6 +43,10 @@ public: virtual ~ViewProviderRuledSurface(); std::vector getDisplayModes(void) const; + std::vector claimChildren() const; + void updateData(const App::Property*); + bool onDelete(const std::vector &); + protected: