diff --git a/src/Mod/Surface/Gui/BSurf.cpp b/src/Mod/Surface/Gui/BSurf.cpp
index 84702de368..74aa5e5ec7 100644
--- a/src/Mod/Surface/Gui/BSurf.cpp
+++ b/src/Mod/Surface/Gui/BSurf.cpp
@@ -47,6 +47,8 @@ using namespace SurfaceGui;
namespace SurfaceGui {
+PROPERTY_SOURCE(SurfaceGui::ViewProviderBSurf, PartGui::ViewProviderPart)
+
bool ViewProviderBSurf::setEdit(int ModNum)
{
// When double-clicking on the item for this sketch the
diff --git a/src/Mod/Surface/Gui/BSurf.h b/src/Mod/Surface/Gui/BSurf.h
index fdaf6c41a8..c26137a058 100644
--- a/src/Mod/Surface/Gui/BSurf.h
+++ b/src/Mod/Surface/Gui/BSurf.h
@@ -41,6 +41,7 @@ namespace SurfaceGui
class SurfaceGuiExport ViewProviderBSurf : public PartGui::ViewProviderPart
{
+ PROPERTY_HEADER(SurfaceGui::ViewProviderBSurf);
public:
virtual bool setEdit(int ModNum);
virtual void unsetEdit(int ModNum);
diff --git a/src/Mod/Surface/Gui/BSurf.ui b/src/Mod/Surface/Gui/BSurf.ui
index 9d784942e7..ec6683798a 100644
--- a/src/Mod/Surface/Gui/BSurf.ui
+++ b/src/Mod/Surface/Gui/BSurf.ui
@@ -44,6 +44,9 @@
Stretch
+
+ true
+
-
diff --git a/src/Mod/Surface/Gui/Command.cpp b/src/Mod/Surface/Gui/Command.cpp
index 7303d4632f..1e2e0ae8dd 100644
--- a/src/Mod/Surface/Gui/Command.cpp
+++ b/src/Mod/Surface/Gui/Command.cpp
@@ -59,6 +59,7 @@
#include
#include
#include "Mod/Part/App/PartFeature.h"
+#include "BSurf.h"
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -240,16 +241,14 @@ CmdSurfaceBSpline::CmdSurfaceBSpline()
void CmdSurfaceBSpline::activated(int iMsg)
{
-/* Gui::Dialog::TaskPlacement* plm = new Gui::Dialog::TaskPlacement();
- Gui::Control().showDialog(plm);*/
- /*if (!isActive()) {
- QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"),
- QObject::tr("Select 2, 3 or 4 curves, please."));
- return;
- }*/
+ Gui::TaskView::TaskDialog* dlg = Gui::Control().activeDialog();
+ if (!dlg) {
+ dlg = new SurfaceGui::TaskBSurf(new SurfaceGui::ViewProviderBSurf());
+ }
+ Gui::Control().showDialog(dlg);
// we take the whole selection and require that all of its members are of the required curve
- std::vector Selo = getSelection().getSelectionEx(0);
+/* std::vector Selo = getSelection().getSelectionEx(0);
std::string FeatName = getUniqueObjectName("BSplineSurface");
std::stringstream bspListCmd;
bspListCmd << "FreeCAD.ActiveDocument.ActiveObject.aBList = [";
@@ -261,10 +260,10 @@ void CmdSurfaceBSpline::activated(int iMsg)
openCommand("Create BSpline surface");
doCommand(Doc,"FreeCAD.ActiveDocument.addObject(\"Surface::BSplineSurf\",\"%s\")", FeatName.c_str());
doCommand(Doc, "FreeCAD.ActiveDocument.ActiveObject.filltype=1"); // TODO ask filltype from user and check it
- doCommand(Doc, "Gui.ActiveDocument.setEdit('%s',0)", FeatName.c_str());
+ // doCommand(Doc, "Gui.ActiveDocument.setEdit('%s',0)", FeatName.c_str());
runCommand(Doc, bspListCmd.str().c_str());
updateActive();
- commitCommand();
+ commitCommand();*/
}
bool CmdSurfaceBSpline::isActive(void)