From 7e3f1bd41804b3f0a7b7cd3c4ac88a15e5d9814f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Tr=C3=B6ger?= Date: Tue, 19 May 2015 17:53:11 +0200 Subject: [PATCH] add primitive widget to task dialog --- src/Mod/PartDesign/Gui/CMakeLists.txt | 1 + .../Gui/TaskPrimitiveParameters.cpp | 435 +++- .../PartDesign/Gui/TaskPrimitiveParameters.h | 18 +- .../PartDesign/Gui/TaskPrimitiveParameters.ui | 1835 +++++++++++++++++ 4 files changed, 2286 insertions(+), 3 deletions(-) create mode 100644 src/Mod/PartDesign/Gui/TaskPrimitiveParameters.ui diff --git a/src/Mod/PartDesign/Gui/CMakeLists.txt b/src/Mod/PartDesign/Gui/CMakeLists.txt index 89899d3ad4..ffe454e5e9 100644 --- a/src/Mod/PartDesign/Gui/CMakeLists.txt +++ b/src/Mod/PartDesign/Gui/CMakeLists.txt @@ -73,6 +73,7 @@ set(PartDesignGui_UIC_SRCS TaskScaledParameters.ui TaskMultiTransformParameters.ui TaskDatumParameters.ui + TaskPrimitiveParameters.ui ) qt4_wrap_ui(PartDesignGui_UIC_HDRS ${PartDesignGui_UIC_SRCS}) diff --git a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp index b04093ff72..2107b8bea3 100644 --- a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp @@ -35,14 +35,444 @@ #include "ViewProviderDatumCS.h" #include #include -#include #include #include #include #include +#include using namespace PartDesignGui; +TaskBoxPrimitives::TaskBoxPrimitives(PartDesign::FeaturePrimitive::Type t, QWidget* parent) + : TaskBox(QPixmap(),tr("Primitive parameters"), true, parent) +{ + proxy = new QWidget(this); + ui.setupUi(proxy); + + // set limits + // plane + ui.planeLength->setMaximum(INT_MAX); + ui.planeWidth->setMaximum(INT_MAX); + // box + ui.boxLength->setMaximum(INT_MAX); + ui.boxWidth->setMaximum(INT_MAX); + ui.boxHeight->setMaximum(INT_MAX); + // cylinder + ui.cylinderRadius->setMaximum(INT_MAX); + ui.cylinderHeight->setMaximum(INT_MAX); + // cone + ui.coneRadius1->setMaximum(INT_MAX); + ui.coneRadius2->setMaximum(INT_MAX); + ui.coneHeight->setMaximum(INT_MAX); + // sphere + ui.sphereRadius->setMaximum(INT_MAX); + // ellipsoid + ui.ellipsoidRadius1->setMaximum(INT_MAX); + ui.ellipsoidRadius2->setMaximum(INT_MAX); + ui.ellipsoidRadius3->setMaximum(INT_MAX); + // torus + ui.torusRadius1->setMaximum(INT_MAX); + ui.torusRadius2->setMaximum(INT_MAX); + // wedge + ui.wedgeXmin->setMinimum(INT_MIN); + ui.wedgeXmin->setMaximum(INT_MAX); + ui.wedgeYmin->setMinimum(INT_MIN); + ui.wedgeYmin->setMaximum(INT_MAX); + ui.wedgeZmin->setMinimum(INT_MIN); + ui.wedgeZmin->setMaximum(INT_MAX); + ui.wedgeX2min->setMinimum(INT_MIN); + ui.wedgeX2min->setMaximum(INT_MAX); + ui.wedgeZ2min->setMinimum(INT_MIN); + ui.wedgeZ2min->setMaximum(INT_MAX); + ui.wedgeXmax->setMinimum(INT_MIN); + ui.wedgeXmax->setMaximum(INT_MAX); + ui.wedgeYmax->setMinimum(INT_MIN); + ui.wedgeYmax->setMaximum(INT_MAX); + ui.wedgeZmax->setMinimum(INT_MIN); + ui.wedgeZmax->setMaximum(INT_MAX); + ui.wedgeX2max->setMinimum(INT_MIN); + ui.wedgeX2max->setMaximum(INT_MAX); + ui.wedgeZ2max->setMinimum(INT_MIN); + ui.wedgeZ2max->setMaximum(INT_MAX); + // helix + ui.helixPitch->setMaximum(INT_MAX); + ui.helixHeight->setMaximum(INT_MAX); + ui.helixRadius->setMaximum(INT_MAX); + // circle + ui.circleRadius->setMaximum(INT_MAX); + // vertex + ui.vertexX->setMaximum(INT_MAX); + ui.vertexY->setMaximum(INT_MAX); + ui.vertexZ->setMaximum(INT_MAX); + ui.vertexX->setMinimum(INT_MIN); + ui.vertexY->setMinimum(INT_MIN); + ui.vertexZ->setMinimum(INT_MIN); + // line + ui.edgeX1->setMaximum(INT_MAX); + ui.edgeX1->setMinimum(INT_MIN); + ui.edgeY1->setMaximum(INT_MAX); + ui.edgeY1->setMinimum(INT_MIN); + ui.edgeZ1->setMaximum(INT_MAX); + ui.edgeZ1->setMinimum(INT_MIN); + ui.edgeX2->setMaximum(INT_MAX); + ui.edgeX2->setMinimum(INT_MIN); + ui.edgeY2->setMaximum(INT_MAX); + ui.edgeY2->setMinimum(INT_MIN); + ui.edgeZ2->setMaximum(INT_MAX); + ui.edgeZ2->setMinimum(INT_MIN); + // RegularPolygon + + this->groupLayout()->addWidget(proxy); + + int index = 0; + switch(t) { + + case PartDesign::FeaturePrimitive::Box: + index = 1; + break; + case PartDesign::FeaturePrimitive::Cylinder: + index = 2; + break; + case PartDesign::FeaturePrimitive::Sphere: + index = 4; + break; + } + + ui.widgetStack->setCurrentIndex(index); + ui.widgetStack->setMinimumSize(ui.widgetStack->widget(index)->minimumSize()); + for(int i=0; icount(); ++i) { + + if(i != index) + ui.widgetStack->widget(i)->setSizePolicy(QSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored)); + } +} + +/* + * Destroys the object and frees any allocated resources + */ +TaskBoxPrimitives::~TaskBoxPrimitives() +{ +} + +/* +void TaskBoxPrimitives::createPrimitive(const QString& placement) +{ + try { + QString cmd; QString name; + App::Document* doc = App::GetApplication().getActiveDocument(); + if (!doc) { + QMessageBox::warning(this, tr("Create %1") + .arg(ui.comboBox1->currentText()), tr("No active document")); + return; + } + if (ui.comboBox1->currentIndex() == 0) { // plane + name = QString::fromAscii(doc->getUniqueObjectName("Plane").c_str()); + cmd = QString::fromAscii( + "App.ActiveDocument.addObject(\"Part::Plane\",\"%1\")\n" + "App.ActiveDocument.%1.Length=%2\n" + "App.ActiveDocument.%1.Width=%3\n" + "App.ActiveDocument.%1.Placement=%4\n" + "App.ActiveDocument.%1.Label='%5'\n") + .arg(name) + .arg(ui.planeLength->value().getValue(),0,'f',2) + .arg(ui.planeWidth->value().getValue(),0,'f',2) + .arg(placement) + .arg(tr("Plane")); + } + else if (ui.comboBox1->currentIndex() == 1) { // box + name = QString::fromAscii(doc->getUniqueObjectName("Box").c_str()); + cmd = QString::fromAscii( + "App.ActiveDocument.addObject(\"Part::Box\",\"%1\")\n" + "App.ActiveDocument.%1.Length=%2\n" + "App.ActiveDocument.%1.Width=%3\n" + "App.ActiveDocument.%1.Height=%4\n" + "App.ActiveDocument.%1.Placement=%5\n" + "App.ActiveDocument.%1.Label='%6'\n") + .arg(name) + .arg(ui.boxLength->value().getValue(),0,'f',2) + .arg(ui.boxWidth->value().getValue(),0,'f',2) + .arg(ui.boxHeight->value().getValue(),0,'f',2) + .arg(placement) + .arg(tr("Box")); + } + else if (ui.comboBox1->currentIndex() == 2) { // cylinder + name = QString::fromAscii(doc->getUniqueObjectName("Cylinder").c_str()); + cmd = QString::fromAscii( + "App.ActiveDocument.addObject(\"Part::Cylinder\",\"%1\")\n" + "App.ActiveDocument.%1.Radius=%2\n" + "App.ActiveDocument.%1.Height=%3\n" + "App.ActiveDocument.%1.Angle=%4\n" + "App.ActiveDocument.%1.Placement=%5\n" + "App.ActiveDocument.%1.Label='%6'\n") + .arg(name) + .arg(ui.cylinderRadius->value().getValue(),0,'f',2) + .arg(ui.cylinderHeight->value().getValue(),0,'f',2) + .arg(ui.cylinderAngle->value().getValue(),0,'f',2) + .arg(placement) + .arg(tr("Cylinder")); + } + else if (ui.comboBox1->currentIndex() == 3) { // cone + name = QString::fromAscii(doc->getUniqueObjectName("Cone").c_str()); + cmd = QString::fromAscii( + "App.ActiveDocument.addObject(\"Part::Cone\",\"%1\")\n" + "App.ActiveDocument.%1.Radius1=%2\n" + "App.ActiveDocument.%1.Radius2=%3\n" + "App.ActiveDocument.%1.Height=%4\n" + "App.ActiveDocument.%1.Angle=%5\n" + "App.ActiveDocument.%1.Placement=%6\n" + "App.ActiveDocument.%1.Label='%7'\n") + .arg(name) + .arg(ui.coneRadius1->value().getValue(),0,'f',2) + .arg(ui.coneRadius2->value().getValue(),0,'f',2) + .arg(ui.coneHeight->value().getValue(),0,'f',2) + .arg(ui.coneAngle->value().getValue(),0,'f',2) + .arg(placement) + .arg(tr("Cone")); + } + else if (ui.comboBox1->currentIndex() == 4) { // sphere + name = QString::fromAscii(doc->getUniqueObjectName("Sphere").c_str()); + cmd = QString::fromAscii( + "App.ActiveDocument.addObject(\"Part::Sphere\",\"%1\")\n" + "App.ActiveDocument.%1.Radius=%2\n" + "App.ActiveDocument.%1.Angle1=%3\n" + "App.ActiveDocument.%1.Angle2=%4\n" + "App.ActiveDocument.%1.Angle3=%5\n" + "App.ActiveDocument.%1.Placement=%6\n" + "App.ActiveDocument.%1.Label='%7'\n") + .arg(name) + .arg(ui.sphereRadius->value().getValue(),0,'f',2) + .arg(ui.sphereAngle1->value().getValue(),0,'f',2) + .arg(ui.sphereAngle2->value().getValue(),0,'f',2) + .arg(ui.sphereAngle3->value().getValue(),0,'f',2) + .arg(placement) + .arg(tr("Sphere")); + } + else if (ui.comboBox1->currentIndex() == 5) { // ellipsoid + name = QString::fromAscii(doc->getUniqueObjectName("Ellipsoid").c_str()); + cmd = QString::fromAscii( + "App.ActiveDocument.addObject(\"Part::Ellipsoid\",\"%1\")\n" + "App.ActiveDocument.%1.Radius1=%2\n" + "App.ActiveDocument.%1.Radius2=%3\n" + "App.ActiveDocument.%1.Radius3=%4\n" + "App.ActiveDocument.%1.Angle1=%5\n" + "App.ActiveDocument.%1.Angle2=%6\n" + "App.ActiveDocument.%1.Angle3=%7\n" + "App.ActiveDocument.%1.Placement=%8\n" + "App.ActiveDocument.%1.Label='%9'\n") + .arg(name) + .arg(ui.ellipsoidRadius1->value().getValue(),0,'f',2) + .arg(ui.ellipsoidRadius2->value().getValue(),0,'f',2) + .arg(ui.ellipsoidRadius3->value().getValue(),0,'f',2) + .arg(ui.ellipsoidAngle1->value().getValue(),0,'f',2) + .arg(ui.ellipsoidAngle2->value().getValue(),0,'f',2) + .arg(ui.ellipsoidAngle3->value().getValue(),0,'f',2) + .arg(placement) + .arg(tr("Ellipsoid")); + } + else if (ui.comboBox1->currentIndex() == 6) { // torus + name = QString::fromAscii(doc->getUniqueObjectName("Torus").c_str()); + cmd = QString::fromAscii( + "App.ActiveDocument.addObject(\"Part::Torus\",\"%1\")\n" + "App.ActiveDocument.%1.Radius1=%2\n" + "App.ActiveDocument.%1.Radius2=%3\n" + "App.ActiveDocument.%1.Angle1=%4\n" + "App.ActiveDocument.%1.Angle2=%5\n" + "App.ActiveDocument.%1.Angle3=%6\n" + "App.ActiveDocument.%1.Placement=%7\n" + "App.ActiveDocument.%1.Label='%8'\n") + .arg(name) + .arg(ui.torusRadius1->value().getValue(),0,'f',2) + .arg(ui.torusRadius2->value().getValue(),0,'f',2) + .arg(ui.torusAngle1->value().getValue(),0,'f',2) + .arg(ui.torusAngle2->value().getValue(),0,'f',2) + .arg(ui.torusAngle3->value().getValue(),0,'f',2) + .arg(placement) + .arg(tr("Torus")); + } + else if (ui.comboBox1->currentIndex() == 7) { // prism + name = QString::fromAscii(doc->getUniqueObjectName("Prism").c_str()); + cmd = QString::fromAscii( + "App.ActiveDocument.addObject(\"Part::Prism\",\"%1\")\n" + "App.ActiveDocument.%1.Polygon=%2\n" + "App.ActiveDocument.%1.Circumradius=%3\n" + "App.ActiveDocument.%1.Height=%4\n" + "App.ActiveDocument.%1.Placement=%5\n" + "App.ActiveDocument.%1.Label='%6'\n") + .arg(name) + .arg(ui.prismPolygon->value()) + .arg(ui.prismCircumradius->value().getValue(),0,'f',2) + .arg(ui.prismHeight->value().getValue(),0,'f',2) + .arg(placement) + .arg(tr("Prism")); + } + else if (ui.comboBox1->currentIndex() == 8) { // wedge + name = QString::fromAscii(doc->getUniqueObjectName("Wedge").c_str()); + cmd = QString::fromAscii( + "App.ActiveDocument.addObject(\"Part::Wedge\",\"%1\")\n" + "App.ActiveDocument.%1.Xmin=%2\n" + "App.ActiveDocument.%1.Ymin=%3\n" + "App.ActiveDocument.%1.Zmin=%4\n" + "App.ActiveDocument.%1.X2min=%5\n" + "App.ActiveDocument.%1.Z2min=%6\n" + "App.ActiveDocument.%1.Xmax=%7\n" + "App.ActiveDocument.%1.Ymax=%8\n" + "App.ActiveDocument.%1.Zmax=%9\n" + "App.ActiveDocument.%1.X2max=%10\n" + "App.ActiveDocument.%1.Z2max=%11\n" + "App.ActiveDocument.%1.Placement=%12\n" + "App.ActiveDocument.%1.Label='%13'\n") + .arg(name) + .arg(ui.wedgeXmin->value().getValue(),0,'f',2) + .arg(ui.wedgeYmin->value().getValue(),0,'f',2) + .arg(ui.wedgeZmin->value().getValue(),0,'f',2) + .arg(ui.wedgeX2min->value().getValue(),0,'f',2) + .arg(ui.wedgeZ2min->value().getValue(),0,'f',2) + .arg(ui.wedgeXmax->value().getValue(),0,'f',2) + .arg(ui.wedgeYmax->value().getValue(),0,'f',2) + .arg(ui.wedgeZmax->value().getValue(),0,'f',2) + .arg(ui.wedgeX2max->value().getValue(),0,'f',2) + .arg(ui.wedgeZ2max->value().getValue(),0,'f',2) + .arg(placement) + .arg(tr("Wedge")); + } + else if (ui.comboBox1->currentIndex() == 9) { // helix + name = QString::fromAscii(doc->getUniqueObjectName("Helix").c_str()); + cmd = QString::fromAscii( + "App.ActiveDocument.addObject(\"Part::Helix\",\"%1\")\n" + "App.ActiveDocument.%1.Pitch=%2\n" + "App.ActiveDocument.%1.Height=%3\n" + "App.ActiveDocument.%1.Radius=%4\n" + "App.ActiveDocument.%1.Angle=%5\n" + "App.ActiveDocument.%1.LocalCoord=%6\n" + "App.ActiveDocument.%1.Style=1\n" + "App.ActiveDocument.%1.Placement=%7\n" + "App.ActiveDocument.%1.Label='%8'\n") + .arg(name) + .arg(ui.helixPitch->value().getValue(),0,'f',2) + .arg(ui.helixHeight->value().getValue(),0,'f',2) + .arg(ui.helixRadius->value().getValue(),0,'f',2) + .arg(ui.helixAngle->value().getValue(),0,'f',2) + .arg(ui.helixLocalCS->currentIndex()) + .arg(placement) + .arg(tr("Helix")); + } + else if (ui.comboBox1->currentIndex() == 10) { // spiral + name = QString::fromAscii(doc->getUniqueObjectName("Spiral").c_str()); + cmd = QString::fromAscii( + "App.ActiveDocument.addObject(\"Part::Spiral\",\"%1\")\n" + "App.ActiveDocument.%1.Growth=%2\n" + "App.ActiveDocument.%1.Rotations=%3\n" + "App.ActiveDocument.%1.Radius=%4\n" + "App.ActiveDocument.%1.Placement=%5\n" + "App.ActiveDocument.%1.Label='%6'\n") + .arg(name) + .arg(ui.spiralGrowth->value().getValue(),0,'f',2) + .arg(ui.spiralRotation->value(),0,'f',2) + .arg(ui.spiralRadius->value().getValue(),0,'f',2) + .arg(placement) + .arg(tr("Spiral")); + } + else if (ui.comboBox1->currentIndex() == 11) { // circle + name = QString::fromAscii(doc->getUniqueObjectName("Circle").c_str()); + cmd = QString::fromAscii( + "App.ActiveDocument.addObject(\"Part::Circle\",\"%1\")\n" + "App.ActiveDocument.%1.Radius=%2\n" + "App.ActiveDocument.%1.Angle0=%3\n" + "App.ActiveDocument.%1.Angle1=%4\n" + "App.ActiveDocument.%1.Placement=%5\n" + "App.ActiveDocument.%1.Label='%6'\n") + .arg(name) + .arg(ui.circleRadius->value().getValue(),0,'f',2) + .arg(ui.circleAngle0->value().getValue(),0,'f',2) + .arg(ui.circleAngle1->value().getValue(),0,'f',2) + .arg(placement) + .arg(tr("Circle")); + } + else if (ui.comboBox1->currentIndex() == 12) { // ellipse + name = QString::fromAscii(doc->getUniqueObjectName("Ellipse").c_str()); + cmd = QString::fromAscii( + "App.ActiveDocument.addObject(\"Part::Ellipse\",\"%1\")\n" + "App.ActiveDocument.%1.MajorRadius=%2\n" + "App.ActiveDocument.%1.MinorRadius=%3\n" + "App.ActiveDocument.%1.Angle0=%4\n" + "App.ActiveDocument.%1.Angle1=%5\n" + "App.ActiveDocument.%1.Placement=%6\n" + "App.ActiveDocument.%1.Label='%7'\n") + .arg(name) + .arg(ui.ellipseMajorRadius->value().getValue(),0,'f',2) + .arg(ui.ellipseMinorRadius->value().getValue(),0,'f',2) + .arg(ui.ellipseAngle0->value().getValue(),0,'f',2) + .arg(ui.ellipseAngle1->value().getValue(),0,'f',2) + .arg(placement) + .arg(tr("Ellipse")); + } + else if (ui.comboBox1->currentIndex() == 13) { // vertex + name = QString::fromAscii(doc->getUniqueObjectName("Vertex").c_str()); + cmd = QString::fromAscii( + "App.ActiveDocument.addObject(\"Part::Vertex\",\"%1\")\n" + "App.ActiveDocument.%1.X=%2\n" + "App.ActiveDocument.%1.Y=%3\n" + "App.ActiveDocument.%1.Z=%4\n" + "App.ActiveDocument.%1.Placement=%5\n" + "App.ActiveDocument.%1.Label='%6'\n") + .arg(name) + .arg(ui.vertexX->value().getValue(),0,'f',2) + .arg(ui.vertexY->value().getValue(),0,'f',2) + .arg(ui.vertexZ->value().getValue(),0,'f',2) + .arg(placement) + .arg(tr("Vertex")); + } + else if (ui.comboBox1->currentIndex() == 14) { // line + name = QString::fromAscii(doc->getUniqueObjectName("Line").c_str()); + cmd = QString::fromAscii( + "App.ActiveDocument.addObject(\"Part::Line\",\"%1\")\n" + "App.ActiveDocument.%1.X1=%2\n" + "App.ActiveDocument.%1.Y1=%3\n" + "App.ActiveDocument.%1.Z1=%4\n" + "App.ActiveDocument.%1.X2=%5\n" + "App.ActiveDocument.%1.Y2=%6\n" + "App.ActiveDocument.%1.Z2=%7\n" + "App.ActiveDocument.%1.Placement=%8\n" + "App.ActiveDocument.%1.Label='%9'\n") + .arg(name) + .arg(ui.edgeX1->value().getValue(),0,'f',2) + .arg(ui.edgeY1->value().getValue(),0,'f',2) + .arg(ui.edgeZ1->value().getValue(),0,'f',2) + .arg(ui.edgeX2->value().getValue(),0,'f',2) + .arg(ui.edgeY2->value().getValue(),0,'f',2) + .arg(ui.edgeZ2->value().getValue(),0,'f',2) + .arg(placement) + .arg(tr("Line")); + } + else if (ui.comboBox1->currentIndex() == 15) { // RegularPolygon + name = QString::fromAscii(doc->getUniqueObjectName("RegularPolygon").c_str()); + cmd = QString::fromAscii( + "App.ActiveDocument.addObject(\"Part::RegularPolygon\",\"%1\")\n" + "App.ActiveDocument.%1.Polygon=%2\n" + "App.ActiveDocument.%1.Circumradius=%3\n" + "App.ActiveDocument.%1.Placement=%4\n" + "App.ActiveDocument.%1.Label='%5'\n") + .arg(name) + .arg(ui.regularPolygonPolygon->value()) + .arg(ui.regularPolygonCircumradius->value().getValue(),0,'f',2) + .arg(placement) + .arg(tr("Regular polygon")); + } + + // Execute the Python block + QString prim = tr("Create %1").arg(ui.comboBox1->currentText()); + Gui::Application::Instance->activeDocument()->openCommand(prim.toUtf8()); + Gui::Command::doCommand(Gui::Command::Doc, (const char*)cmd.toUtf8()); + Gui::Application::Instance->activeDocument()->commitCommand(); + Gui::Command::doCommand(Gui::Command::Doc, "App.ActiveDocument.recompute()"); + Gui::Command::doCommand(Gui::Command::Gui, "Gui.SendMsgToActiveView(\"ViewFit\")"); + } + catch (const Base::PyException& e) { + QMessageBox::warning(this, tr("Create %1") + .arg(ui.comboBox1->currentText()), QString::fromLatin1(e.what())); + } +}*/ + TaskPrimitiveParameters::TaskPrimitiveParameters(ViewProviderPrimitive* PrimitiveView) { @@ -67,6 +497,9 @@ TaskPrimitiveParameters::TaskPrimitiveParameters(ViewProviderPrimitive* Primitiv vp->Visibility.setValue(true); parameter = new TaskDatumParameters(vp); Content.push_back(parameter); + + primitive = new TaskBoxPrimitives(prm->getPrimitiveType()); + Content.push_back(primitive); } TaskPrimitiveParameters::~TaskPrimitiveParameters() diff --git a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h index bf99ea8092..ed959f40ff 100644 --- a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h +++ b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h @@ -32,7 +32,8 @@ #include "ViewProviderPrimitive.h" #include "TaskDatumParameters.h" #include -#include +#include +#include "ui_TaskPrimitiveParameters.h" class Ui_TaskPrimitiveParameters; @@ -47,6 +48,19 @@ class ViewProvider; namespace PartDesignGui { +class TaskBoxPrimitives : public Gui::TaskView::TaskBox +{ + Q_OBJECT + +public: + TaskBoxPrimitives(PartDesign::FeaturePrimitive::Type t, QWidget* parent = 0); + ~TaskBoxPrimitives(); + +private: + QWidget* proxy; + Ui_DlgPrimitives ui; +}; + class TaskPrimitiveParameters : public Gui::TaskView::TaskDialog { Q_OBJECT @@ -62,7 +76,7 @@ protected: virtual bool reject(); private: - PartGui::DlgPrimitives* widget; + TaskBoxPrimitives* primitive; TaskDatumParameters* parameter; PartDesign::CoordinateSystem* cs; bool cs_visibility; diff --git a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.ui b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.ui new file mode 100644 index 0000000000..acad3a4a13 --- /dev/null +++ b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.ui @@ -0,0 +1,1835 @@ + + + PartDesignGui::DlgPrimitives + + + + 0 + 0 + 326 + 370 + + + + Geometric Primitives + + + true + + + + + + 0 + + + + + 9 + + + 6 + + + + + 0 + + + 6 + + + + + mm + + + 10.000000000000000 + + + + + + + Width: + + + + + + + Length: + + + + + + + mm + + + 10.000000000000000 + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + 9 + + + 6 + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 51 + + + + + + + + 0 + + + 6 + + + + + mm + + + 10.000000000000000 + + + + + + + mm + + + 10.000000000000000 + + + + + + + Height: + + + + + + + Length: + + + + + + + Width: + + + + + + + mm + + + 10.000000000000000 + + + + + + + + + + + 9 + + + 6 + + + + + 6 + + + 0 + + + + + Angle: + + + + + + + deg + + + 360.000000000000000 + + + + + + + + + QFrame::HLine + + + QFrame::Sunken + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 31 + 81 + + + + + + + + 0 + + + 6 + + + + + Radius: + + + + + + + Height: + + + + + + + mm + + + 10.000000000000000 + + + + + + + mm + + + 2.000000000000000 + + + + + + + + + + + 9 + + + 6 + + + + + 6 + + + 0 + + + + + Angle: + + + + + + + deg + + + 360.000000000000000 + + + + + + + + + QFrame::HLine + + + QFrame::Sunken + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 31 + 91 + + + + + + + + 0 + + + 6 + + + + + mm + + + 10.000000000000000 + + + + + + + mm + + + 2.000000000000000 + + + + + + + Height: + + + + + + + Radius 1: + + + + + + + Radius 2: + + + + + + + mm + + + 4.000000000000000 + + + + + + + + + + + 9 + + + 6 + + + + + QFrame::HLine + + + QFrame::Sunken + + + + + + + 0 + + + 6 + + + + + Qt::Horizontal + + + QSizePolicy::Preferred + + + + 81 + 20 + + + + + + + + U parameter: + + + + + + + V parameters: + + + + + + + deg + + + -90.000000000000000 + + + + + + + deg + + + 90.000000000000000 + + + + + + + deg + + + 360.000000000000000 + + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 21 + 151 + + + + + + + + 6 + + + 0 + + + + + Radius: + + + + + + + mm + + + 5.000000000000000 + + + + + + + + + + + 9 + + + 6 + + + + + Qt::Vertical + + + + 20 + 20 + + + + + + + + QFrame::HLine + + + QFrame::Sunken + + + + + + + 0 + + + 6 + + + + + Radius 1: + + + + + + + Radius 2: + + + + + + + Radius 3: + + + + + + + mm + + + 2.000000000000000 + + + + + + + mm + + + 4.000000000000000 + + + + + + + mm + + + 4.000000000000000 + + + + + + + + + 0 + + + 6 + + + + + U parameter: + + + + + + + Qt::Horizontal + + + QSizePolicy::Preferred + + + + 81 + 20 + + + + + + + + V parameter: + + + + + + + deg + + + 360.000000000000000 + + + + + + + deg + + + -90.000000000000000 + + + + + + + deg + + + 90.000000000000000 + + + + + + + + + + + 9 + + + 6 + + + + + QFrame::HLine + + + QFrame::Sunken + + + + + + + 0 + + + 6 + + + + + U Parameter: + + + + + + + Qt::Horizontal + + + QSizePolicy::Preferred + + + + 81 + 20 + + + + + + + + V parameter: + + + + + + + deg + + + 360.000000000000000 + + + + + + + deg + + + -180.000000000000000 + + + + + + + deg + + + 180.000000000000000 + + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 91 + + + + + + + + 0 + + + 6 + + + + + mm + + + 10.000000000000000 + + + + + + + Radius 2: + + + + + + + Radius 1: + + + + + + + mm + + + 2.000000000000000 + + + + + + + + + + + 9 + + + 6 + + + + + 0 + + + 6 + + + + + mm + + + 2.000000000000000 + + + + + + + Polygon: + + + + + + + 3 + + + 1000 + + + 6 + + + + + + + Circumradius: + + + + + + + Height: + + + + + + + mm + + + 10.000000000000000 + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + QLayout::SetDefaultConstraint + + + 4 + + + + + X min/max: + + + + + + + Y min/max: + + + + + + + Z min/max: + + + + + + + X2 min/max: + + + + + + + Z2 min/max: + + + + + + + mm + + + 0.000000000000000 + + + + + + + mm + + + 10.000000000000000 + + + + + + + mm + + + 0.000000000000000 + + + + + + + mm + + + 10.000000000000000 + + + + + + + mm + + + 0.000000000000000 + + + + + + + mm + + + 10.000000000000000 + + + + + + + mm + + + 2.000000000000000 + + + + + + + mm + + + 8.000000000000000 + + + + + + + mm + + + 2.000000000000000 + + + + + + + mm + + + 8.000000000000000 + + + + + + + + + Qt::Vertical + + + + 20 + 81 + + + + + + + + + + 9 + + + 6 + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + 0 + + + 6 + + + + + Radius: + + + + + + + Pitch: + + + + + + + Height: + + + + + + + Angle: + + + + + + + Coordinate system: + + + + + + + + Right-handed + + + + + Left-handed + + + + + + + + deg + + + 0.000000000000000 + + + + + + + mm + + + 1.000000000000000 + + + + + + + mm + + + 2.000000000000000 + + + + + + + mm + + + 1.000000000000000 + + + + + + + + + + + 9 + + + 6 + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + 0 + + + 6 + + + + + Radius: + + + + + + + Growth: + + + + + + + Number of rotations: + + + + + + + mm + + + 1.000000000000000 + + + + + + + 1000.000000000000000 + + + 2.000000000000000 + + + + + + + mm + + + 1.000000000000000 + + + + + + + + + + + + + 0 + + + 6 + + + + + Radius: + + + + + + + Angle 1: + + + + + + + Angle 2: + + + + + + + deg + + + 0.000000000000000 + + + + + + + deg + + + 360.000000000000000 + + + + + + + mm + + + 2.000000000000000 + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + From three points + + + + + + + + + Qt::Vertical + + + + 20 + 95 + + + + + + + + + + + + + + Major radius: + + + + + + + Minor radius: + + + + + + + Angle 1: + + + + + + + Angle 2: + + + + + + + mm + + + 4.000000000000000 + + + + + + + mm + + + 2.000000000000000 + + + + + + + deg + + + 0.000000000000000 + + + + + + + deg + + + 360.000000000000000 + + + + + + + + + Qt::Vertical + + + + 20 + 131 + + + + + + + + + + + + + + X: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + Y: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + Z: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + mm + + + 0.000000000000000 + + + + + + + mm + + + 0.000000000000000 + + + + + + + mm + + + 0.000000000000000 + + + + + + + + + Qt::Vertical + + + + 20 + 139 + + + + + + + + + + + + + + X: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + Y: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + Z: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + Qt::Horizontal + + + + + + + End point + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + Start point + + + + + + + X: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + Y: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + Z: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + mm + + + 0.000000000000000 + + + + + + + mm + + + 0.000000000000000 + + + + + + + mm + + + 0.000000000000000 + + + + + + + mm + + + 10.000000000000000 + + + + + + + mm + + + 10.000000000000000 + + + + + + + mm + + + 10.000000000000000 + + + + + + + + + Qt::Vertical + + + + 20 + 0 + + + + + + + + + + 9 + + + 6 + + + + + 0 + + + 6 + + + + + Polygon: + + + + + + + 3 + + + 1000 + + + 6 + + + + + + + Circumradius: + + + + + + + mm + + + 2.000000000000000 + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + Gui::QuantitySpinBox + QWidget +
Gui/QuantitySpinBox.h
+
+
+ + + + +