From 405fa9c39a419a6830b723b90f140804973dba6c Mon Sep 17 00:00:00 2001 From: balazs-bamer Date: Fri, 16 Jan 2015 10:56:54 +0100 Subject: [PATCH] One more experiment No success yet --- src/Mod/Surface/Gui/BSurf.cpp | 2 ++ src/Mod/Surface/Gui/BSurf.h | 1 + src/Mod/Surface/Gui/BSurf.ui | 3 +++ src/Mod/Surface/Gui/Command.cpp | 19 +++++++++---------- 4 files changed, 15 insertions(+), 10 deletions(-) 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)