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: