From 49eb5467f7f3ed128f245e9444646ed0dc2c118e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Tr=C3=B6ger?= Date: Wed, 20 May 2015 20:15:13 +0200 Subject: [PATCH] add gui for remaining primitives --- src/Mod/PartDesign/Gui/CommandPrimitive.cpp | 143 +++++++- .../PartDesign/Gui/Resources/PartDesign.qrc | 10 + .../icons/PartDesign_Additive_Cone.svg | 166 +++++++++ .../icons/PartDesign_Additive_Ellipsoid.svg | 242 +++++++++++++ .../icons/PartDesign_Additive_Prism.svg | 320 +++++++++++++++++ .../icons/PartDesign_Additive_Torus.svg | 265 ++++++++++++++ .../icons/PartDesign_Additive_Wedge.svg | 236 +++++++++++++ .../icons/PartDesign_Subtractive_Cone.svg | 179 ++++++++++ .../PartDesign_Subtractive_Ellipsoid.svg | 232 ++++++++++++ .../icons/PartDesign_Subtractive_Prism.svg | 332 ++++++++++++++++++ .../icons/PartDesign_Subtractive_Torus.svg | 272 ++++++++++++++ .../icons/PartDesign_Subtractive_Wedge.svg | 236 +++++++++++++ .../Gui/TaskPrimitiveParameters.cpp | 249 ++++++++++++- .../PartDesign/Gui/TaskPrimitiveParameters.h | 28 ++ .../PartDesign/Gui/ViewProviderPrimitive.cpp | 15 + 15 files changed, 2922 insertions(+), 3 deletions(-) create mode 100644 src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Cone.svg create mode 100644 src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Ellipsoid.svg create mode 100644 src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Prism.svg create mode 100644 src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Torus.svg create mode 100644 src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Wedge.svg create mode 100644 src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Cone.svg create mode 100644 src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Ellipsoid.svg create mode 100644 src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Prism.svg create mode 100644 src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Torus.svg create mode 100644 src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Wedge.svg diff --git a/src/Mod/PartDesign/Gui/CommandPrimitive.cpp b/src/Mod/PartDesign/Gui/CommandPrimitive.cpp index 208440295..79c02372b 100644 --- a/src/Mod/PartDesign/Gui/CommandPrimitive.cpp +++ b/src/Mod/PartDesign/Gui/CommandPrimitive.cpp @@ -77,7 +77,7 @@ void CmdPrimtiveCompAdditive::activated(int iMsg) Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::AdditiveCylinder\',\'%s\')", FeatName.c_str()); } - else if(iMsg == 3) { + else if(iMsg == 2) { FeatName = getUniqueObjectName("Sphere"); @@ -85,6 +85,47 @@ void CmdPrimtiveCompAdditive::activated(int iMsg) Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::AdditiveSphere\',\'%s\')", FeatName.c_str()); } + else if(iMsg == 3) { + + FeatName = getUniqueObjectName("Cone"); + + Gui::Command::openCommand("Make additive cone"); + Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::AdditiveCone\',\'%s\')", + FeatName.c_str()); + } + else if(iMsg == 4) { + + FeatName = getUniqueObjectName("Ellipsoid"); + + Gui::Command::openCommand("Make additive ellipsoid"); + Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::AdditiveEllipsoid\',\'%s\')", + FeatName.c_str()); + } + else if(iMsg == 5) { + + FeatName = getUniqueObjectName("Torus"); + + Gui::Command::openCommand("Make additive torus"); + Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::AdditiveTorus\',\'%s\')", + FeatName.c_str()); + } + else if(iMsg == 6) { + + FeatName = getUniqueObjectName("Prism"); + + Gui::Command::openCommand("Make additive prism"); + Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::AdditivePrism\',\'%s\')", + FeatName.c_str()); + } + else if(iMsg == 7) { + + FeatName = getUniqueObjectName("Wedge"); + + Gui::Command::openCommand("Make additive wedge"); + Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::AdditiveWedge\',\'%s\')", + FeatName.c_str()); + } + Gui::Command::doCommand(Doc,"App.ActiveDocument.%s.addFeature(App.activeDocument().%s)" ,pcActiveBody->getNameInDocument(), FeatName.c_str()); @@ -116,6 +157,16 @@ Gui::Action * CmdPrimtiveCompAdditive::createAction(void) p2->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Additive_Cylinder")); QAction* p3 = pcAction->addAction(QString()); p3->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Additive_Sphere")); + QAction* p4 = pcAction->addAction(QString()); + p4->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Additive_Cone")); + QAction* p5 = pcAction->addAction(QString()); + p5->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Additive_Ellipsoid")); + QAction* p6 = pcAction->addAction(QString()); + p6->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Additive_Torus")); + QAction* p7 = pcAction->addAction(QString()); + p7->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Additive_Prism")); + QAction* p8 = pcAction->addAction(QString()); + p8->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Additive_Wedge")); _pcAction = pcAction; languageChange(); @@ -148,6 +199,26 @@ void CmdPrimtiveCompAdditive::languageChange() arc3->setText(QApplication::translate("CmdPrimtiveCompAdditive","Additive Sphere")); arc3->setToolTip(QApplication::translate("PartDesign_CompPrimitiveAdditive","Create an additive sphere by its radius and varius angles")); arc3->setStatusTip(arc3->toolTip()); + QAction* arc4 = a[3]; + arc4->setText(QApplication::translate("CmdPrimtiveCompAdditive","Additive Cone")); + arc4->setToolTip(QApplication::translate("PartDesign_CompPrimitiveAdditive","Create an additive cone")); + arc4->setStatusTip(arc4->toolTip()); + QAction* arc5 = a[4]; + arc5->setText(QApplication::translate("CmdPrimtiveCompAdditive","Additive Ellipsoid")); + arc5->setToolTip(QApplication::translate("PartDesign_CompPrimitiveAdditive","Create an additive ellipsoid")); + arc5->setStatusTip(arc5->toolTip()); + QAction* arc6 = a[5]; + arc6->setText(QApplication::translate("CmdPrimtiveCompAdditive","Additive Torus")); + arc6->setToolTip(QApplication::translate("PartDesign_CompPrimitiveAdditive","Create an additive torus")); + arc6->setStatusTip(arc6->toolTip()); + QAction* arc7 = a[6]; + arc7->setText(QApplication::translate("CmdPrimtiveCompAdditive","Additive Prism")); + arc7->setToolTip(QApplication::translate("PartDesign_CompPrimitiveAdditive","Create an additive prism")); + arc7->setStatusTip(arc7->toolTip()); + QAction* arc8 = a[7]; + arc8->setText(QApplication::translate("CmdPrimtiveCompAdditive","Additive Wedge")); + arc8->setToolTip(QApplication::translate("PartDesign_CompPrimitiveAdditive","Create an additive wedge")); + arc8->setStatusTip(arc8->toolTip()); } bool CmdPrimtiveCompAdditive::isActive(void) @@ -203,6 +274,46 @@ void CmdPrimtiveCompSubtractive::activated(int iMsg) Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::SubtractiveSphere\',\'%s\')", FeatName.c_str()); } + else if(iMsg == 3) { + + FeatName = getUniqueObjectName("Cone"); + + Gui::Command::openCommand("Make subtractive cone"); + Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::SubtractiveCone\',\'%s\')", + FeatName.c_str()); + } + else if(iMsg == 4) { + + FeatName = getUniqueObjectName("Ellipsoid"); + + Gui::Command::openCommand("Make subtractive ellipsoid"); + Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::SubtractiveEllipsoid\',\'%s\')", + FeatName.c_str()); + } + else if(iMsg == 5) { + + FeatName = getUniqueObjectName("Torus"); + + Gui::Command::openCommand("Make subtractive torus"); + Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::SubtractiveTorus\',\'%s\')", + FeatName.c_str()); + } + else if(iMsg == 6) { + + FeatName = getUniqueObjectName("Prism"); + + Gui::Command::openCommand("Make subtractive prism"); + Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::SubtractivePrism\',\'%s\')", + FeatName.c_str()); + } + else if(iMsg == 7) { + + FeatName = getUniqueObjectName("Wedge"); + + Gui::Command::openCommand("Make subtractive wedge"); + Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.addObject(\'PartDesign::SubtractiveWedge\',\'%s\')", + FeatName.c_str()); + } Gui::Command::doCommand(Doc,"App.ActiveDocument.%s.addFeature(App.activeDocument().%s)" ,pcActiveBody->getNameInDocument(), FeatName.c_str()); @@ -236,6 +347,16 @@ Gui::Action * CmdPrimtiveCompSubtractive::createAction(void) p2->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Subtractive_Cylinder")); QAction* p3 = pcAction->addAction(QString()); p3->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Subtractive_Sphere")); + QAction* p4 = pcAction->addAction(QString()); + p4->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Subtractive_Cone")); + QAction* p5 = pcAction->addAction(QString()); + p5->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Subtractive_Ellipsoid")); + QAction* p6 = pcAction->addAction(QString()); + p6->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Subtractive_Torus")); + QAction* p7 = pcAction->addAction(QString()); + p7->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Subtractive_Prism")); + QAction* p8 = pcAction->addAction(QString()); + p8->setIcon(Gui::BitmapFactory().pixmap("PartDesign_Subtractive_Wedge")); _pcAction = pcAction; languageChange(); @@ -268,6 +389,26 @@ void CmdPrimtiveCompSubtractive::languageChange() arc3->setText(QApplication::translate("CmdPrimtiveCompSubtractive","Subtractive Sphere")); arc3->setToolTip(QApplication::translate("PartDesign_CompPrimitiveSubtractive","Create an subtractive sphere by its radius and varius angles")); arc3->setStatusTip(arc3->toolTip()); + QAction* arc4 = a[3]; + arc4->setText(QApplication::translate("CmdPrimtiveCompSubtractive","Subtractive Cone")); + arc4->setToolTip(QApplication::translate("PartDesign_CompPrimitiveSubtractive","Create an subtractive cone")); + arc4->setStatusTip(arc4->toolTip()); + QAction* arc5 = a[4]; + arc5->setText(QApplication::translate("CmdPrimtiveCompSubtractive","Subtractive Ellipsoid")); + arc5->setToolTip(QApplication::translate("PartDesign_CompPrimitiveSubtractive","Create an subtractive ellipsoid")); + arc5->setStatusTip(arc5->toolTip()); + QAction* arc6 = a[5]; + arc6->setText(QApplication::translate("CmdPrimtiveCompSubtractive","Subtractive Torus")); + arc6->setToolTip(QApplication::translate("PartDesign_CompPrimitiveSubtractive","Create an subtractive torus")); + arc6->setStatusTip(arc6->toolTip()); + QAction* arc7 = a[6]; + arc7->setText(QApplication::translate("CmdPrimtiveCompSubtractive","Subtractive Prism")); + arc7->setToolTip(QApplication::translate("PartDesign_CompPrimitiveSubtractive","Create an subtractive prism")); + arc7->setStatusTip(arc7->toolTip()); + QAction* arc8 = a[7]; + arc8->setText(QApplication::translate("CmdPrimtiveCompSubtractive","Subtractive Wedge")); + arc8->setToolTip(QApplication::translate("PartDesign_CompPrimitiveSubtractive","Create an subtractive wedge")); + arc8->setStatusTip(arc8->toolTip()); } bool CmdPrimtiveCompSubtractive::isActive(void) diff --git a/src/Mod/PartDesign/Gui/Resources/PartDesign.qrc b/src/Mod/PartDesign/Gui/Resources/PartDesign.qrc index 7aefa0afd..73f48e9ef 100644 --- a/src/Mod/PartDesign/Gui/Resources/PartDesign.qrc +++ b/src/Mod/PartDesign/Gui/Resources/PartDesign.qrc @@ -30,9 +30,19 @@ icons/PartDesign_Additive_Box.svg icons/PartDesign_Additive_Cylinder.svg icons/PartDesign_Additive_Sphere.svg + icons/PartDesign_Additive_Cone.svg + icons/PartDesign_Additive_Torus.svg + icons/PartDesign_Additive_Ellipsoid.svg + icons/PartDesign_Additive_Prism.svg + icons/PartDesign_Additive_Wedge.svg icons/PartDesign_Subtractive_Box.svg icons/PartDesign_Subtractive_Cylinder.svg icons/PartDesign_Subtractive_Sphere.svg + icons/PartDesign_Subtractive_Cone.svg + icons/PartDesign_Subtractive_Torus.svg + icons/PartDesign_Subtractive_Ellipsoid.svg + icons/PartDesign_Subtractive_Prism.svg + icons/PartDesign_Subtractive_Wedge.svg translations/PartDesign_af.qm translations/PartDesign_de.qm translations/PartDesign_fi.qm diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Cone.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Cone.svg new file mode 100644 index 000000000..164c611f0 --- /dev/null +++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Cone.svg @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Ellipsoid.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Ellipsoid.svg new file mode 100644 index 000000000..4438313aa --- /dev/null +++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Ellipsoid.svg @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Prism.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Prism.svg new file mode 100644 index 000000000..026db9031 --- /dev/null +++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Prism.svg @@ -0,0 +1,320 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Torus.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Torus.svg new file mode 100644 index 000000000..c2d0f9bd6 --- /dev/null +++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Torus.svg @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Wedge.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Wedge.svg new file mode 100644 index 000000000..cbc1a961c --- /dev/null +++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Additive_Wedge.svg @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Cone.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Cone.svg new file mode 100644 index 000000000..53d9db4b2 --- /dev/null +++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Cone.svg @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Ellipsoid.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Ellipsoid.svg new file mode 100644 index 000000000..2792b9afc --- /dev/null +++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Ellipsoid.svg @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Prism.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Prism.svg new file mode 100644 index 000000000..21a3cff92 --- /dev/null +++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Prism.svg @@ -0,0 +1,332 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Torus.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Torus.svg new file mode 100644 index 000000000..c47121b49 --- /dev/null +++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Torus.svg @@ -0,0 +1,272 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Wedge.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Wedge.svg new file mode 100644 index 000000000..4fe674be9 --- /dev/null +++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Subtractive_Wedge.svg @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp index d73a27d70..a0e79ebad 100644 --- a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp @@ -49,7 +49,6 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent) proxy = new QWidget(this); ui.setupUi(proxy); - // set limits // box ui.boxLength->setMaximum(INT_MAX); ui.boxWidth->setMaximum(INT_MAX); @@ -69,6 +68,10 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent) ui.coneRadius1->setMaximum(INT_MAX); ui.coneRadius2->setMaximum(INT_MAX); ui.coneHeight->setMaximum(INT_MAX); + connect(ui.coneRadius1, SIGNAL(valueChanged(double)), this, SLOT(onConeRadius1Changed(double))); + connect(ui.coneRadius2, SIGNAL(valueChanged(double)), this, SLOT(onConeRadius2Changed(double))); + connect(ui.coneAngle, SIGNAL(valueChanged(double)), this, SLOT(onConeAngleChanged(double))); + connect(ui.coneHeight, SIGNAL(valueChanged(double)), this, SLOT(onConeHeightChanged(double))); // sphere ui.sphereRadius->setMaximum(INT_MAX); @@ -81,9 +84,27 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent) ui.ellipsoidRadius1->setMaximum(INT_MAX); ui.ellipsoidRadius2->setMaximum(INT_MAX); ui.ellipsoidRadius3->setMaximum(INT_MAX); + connect(ui.ellipsoidRadius1, SIGNAL(valueChanged(double)), this, SLOT(onEllipsoidRadius1Changed(double))); + connect(ui.ellipsoidRadius2, SIGNAL(valueChanged(double)), this, SLOT(onEllipsoidRadius2Changed(double))); + connect(ui.ellipsoidRadius3, SIGNAL(valueChanged(double)), this, SLOT(onEllipsoidRadius3Changed(double))); + connect(ui.ellipsoidAngle1, SIGNAL(valueChanged(double)), this, SLOT(onEllipsoidAngle1Changed(double))); + connect(ui.ellipsoidAngle2, SIGNAL(valueChanged(double)), this, SLOT(onEllipsoidAngle2Changed(double))); + connect(ui.ellipsoidAngle3, SIGNAL(valueChanged(double)), this, SLOT(onEllipsoidAngle3Changed(double))); + // torus ui.torusRadius1->setMaximum(INT_MAX); ui.torusRadius2->setMaximum(INT_MAX); + connect(ui.torusRadius1, SIGNAL(valueChanged(double)), this, SLOT(onTorusRadius1Changed(double))); + connect(ui.torusRadius2, SIGNAL(valueChanged(double)), this, SLOT(onTorusRadius2Changed(double))); + connect(ui.torusAngle1, SIGNAL(valueChanged(double)), this, SLOT(onTorusAngle1Changed(double))); + connect(ui.torusAngle2, SIGNAL(valueChanged(double)), this, SLOT(onTorusAngle2Changed(double))); + connect(ui.torusAngle3, SIGNAL(valueChanged(double)), this, SLOT(onTorusAngle3Changed(double))); + + //prism + connect(ui.prismCircumradius, SIGNAL(valueChanged(double)), this, SLOT(onPrismCircumradiusChanged(double))); + connect(ui.prismHeight, SIGNAL(valueChanged(double)), this, SLOT(onPrismHeightChanged(double))); + connect(ui.prismPolygon, SIGNAL(valueChanged(int)), this, SLOT(onPrismPolygonChanged(int))); + // wedge ui.wedgeXmin->setMinimum(INT_MIN); ui.wedgeXmin->setMaximum(INT_MAX); @@ -105,7 +126,17 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent) ui.wedgeX2max->setMaximum(INT_MAX); ui.wedgeZ2max->setMinimum(INT_MIN); ui.wedgeZ2max->setMaximum(INT_MAX); - + connect(ui.wedgeXmax, SIGNAL(valueChanged(double)), this, SLOT(onWedgeXmaxChanged(double))); + connect(ui.wedgeXmin, SIGNAL(valueChanged(double)), this, SLOT(onWedgeXinChanged(double))); + connect(ui.wedgeYmax, SIGNAL(valueChanged(double)), this, SLOT(onWedgeYmaxChanged(double))); + connect(ui.wedgeYmin, SIGNAL(valueChanged(double)), this, SLOT(onWedgeYinChanged(double))); + connect(ui.wedgeZmax, SIGNAL(valueChanged(double)), this, SLOT(onWedgeZmaxChanged(double))); + connect(ui.wedgeZmin, SIGNAL(valueChanged(double)), this, SLOT(onWedgeZinChanged(double))); + connect(ui.wedgeX2max, SIGNAL(valueChanged(double)), this, SLOT(onWedgeX2maxChanged(double))); + connect(ui.wedgeX2min, SIGNAL(valueChanged(double)), this, SLOT(onWedgeX2inChanged(double))); + connect(ui.wedgeZ2max, SIGNAL(valueChanged(double)), this, SLOT(onWedgeZ2maxChanged(double))); + connect(ui.wedgeZ2min, SIGNAL(valueChanged(double)), this, SLOT(onWedgeZ2inChanged(double))); + this->groupLayout()->addWidget(proxy); int index = 0; @@ -130,6 +161,49 @@ TaskBoxPrimitives::TaskBoxPrimitives(ViewProviderPrimitive* vp, QWidget* parent) ui.sphereAngle3->setValue(static_cast(vp->getObject())->Angle3.getValue()); ui.sphereRadius->setValue(static_cast(vp->getObject())->Radius.getValue()); break; + case PartDesign::FeaturePrimitive::Cone: + index = 3; + ui.coneAngle->setValue(static_cast(vp->getObject())->Angle.getValue()); + ui.coneHeight->setValue(static_cast(vp->getObject())->Height.getValue()); + ui.coneRadius1->setValue(static_cast(vp->getObject())->Radius1.getValue()); + ui.coneRadius2->setValue(static_cast(vp->getObject())->Radius2.getValue()); + break; + case PartDesign::FeaturePrimitive::Ellipsoid: + index = 5; + ui.ellipsoidAngle1->setValue(static_cast(vp->getObject())->Angle1.getValue()); + ui.ellipsoidAngle2->setValue(static_cast(vp->getObject())->Angle2.getValue()); + ui.ellipsoidAngle3->setValue(static_cast(vp->getObject())->Angle3.getValue()); + ui.ellipsoidRadius1->setValue(static_cast(vp->getObject())->Radius1.getValue()); + ui.ellipsoidRadius2->setValue(static_cast(vp->getObject())->Radius2.getValue()); + ui.ellipsoidRadius3->setValue(static_cast(vp->getObject())->Radius3.getValue()); + break; + case PartDesign::FeaturePrimitive::Torus: + index = 6; + ui.torusAngle1->setValue(static_cast(vp->getObject())->Angle1.getValue()); + ui.torusAngle2->setValue(static_cast(vp->getObject())->Angle2.getValue()); + ui.torusAngle3->setValue(static_cast(vp->getObject())->Angle3.getValue()); + ui.torusRadius1->setValue(static_cast(vp->getObject())->Radius1.getValue()); + ui.torusRadius2->setValue(static_cast(vp->getObject())->Radius2.getValue()); + break; + case PartDesign::FeaturePrimitive::Prism: + index = 7; + ui.prismPolygon->setValue(static_cast(vp->getObject())->Polygon.getValue()); + ui.prismCircumradius->setValue(static_cast(vp->getObject())->Circumradius.getValue()); + ui.prismHeight->setValue(static_cast(vp->getObject())->Height.getValue()); + break; + case PartDesign::FeaturePrimitive::Wedge: + index = 8; + ui.wedgeXmax->setValue(static_cast(vp->getObject())->Xmax.getValue()); + ui.wedgeXmin->setValue(static_cast(vp->getObject())->Xmin.getValue()); + ui.wedgeX2max->setValue(static_cast(vp->getObject())->X2max.getValue()); + ui.wedgeX2min->setValue(static_cast(vp->getObject())->X2min.getValue()); + ui.wedgeYmax->setValue(static_cast(vp->getObject())->Ymax.getValue()); + ui.wedgeYmin->setValue(static_cast(vp->getObject())->Ymin.getValue()); + ui.wedgeZmax->setValue(static_cast(vp->getObject())->Zmax.getValue()); + ui.wedgeZmin->setValue(static_cast(vp->getObject())->Zmin.getValue()); + ui.wedgeZ2max->setValue(static_cast(vp->getObject())->Z2max.getValue()); + ui.wedgeZ2min->setValue(static_cast(vp->getObject())->Z2min.getValue()); + break; } ui.widgetStack->setCurrentIndex(index); @@ -208,6 +282,177 @@ void TaskBoxPrimitives::onSphereRadiusChanged(double v) { vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); } +void TaskBoxPrimitives::onConeAngleChanged(double v) { + + PartDesign::Cone* sph = static_cast(vp->getObject()); + sph->Angle.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onConeHeightChanged(double v) { + PartDesign::Cone* sph = static_cast(vp->getObject()); + sph->Height.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onConeRadius1Changed(double v) { + PartDesign::Cone* sph = static_cast(vp->getObject()); + sph->Radius1.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onConeRadius2Changed(double v) { + PartDesign::Cone* sph = static_cast(vp->getObject()); + sph->Radius2.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onEllipsoidAngle1Changed(double v) { + PartDesign::Ellipsoid* sph = static_cast(vp->getObject()); + sph->Angle1.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onEllipsoidAngle2Changed(double v) { + PartDesign::Ellipsoid* sph = static_cast(vp->getObject()); + sph->Angle2.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onEllipsoidAngle3Changed(double v) { + PartDesign::Ellipsoid* sph = static_cast(vp->getObject()); + sph->Angle3.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onEllipsoidRadius1Changed(double v) { + PartDesign::Ellipsoid* sph = static_cast(vp->getObject()); + sph->Radius1.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onEllipsoidRadius2Changed(double v) { + PartDesign::Ellipsoid* sph = static_cast(vp->getObject()); + sph->Radius2.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onEllipsoidRadius3Changed(double v) { + PartDesign::Ellipsoid* sph = static_cast(vp->getObject()); + sph->Radius3.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onTorusAngle1Changed(double v) { + PartDesign::Torus* sph = static_cast(vp->getObject()); + sph->Angle1.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onTorusAngle2Changed(double v) { + PartDesign::Torus* sph = static_cast(vp->getObject()); + sph->Angle2.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onTorusAngle3Changed(double v) { + PartDesign::Torus* sph = static_cast(vp->getObject()); + sph->Angle3.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onTorusRadius1Changed(double v) { + PartDesign::Torus* sph = static_cast(vp->getObject()); + sph->Radius1.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onTorusRadius2Changed(double v) { + PartDesign::Torus* sph = static_cast(vp->getObject()); + sph->Radius2.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onPrismCircumradiusChanged(double v) { + PartDesign::Prism* sph = static_cast(vp->getObject()); + sph->Circumradius.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onPrismHeightChanged(double v) { + PartDesign::Prism* sph = static_cast(vp->getObject()); + sph->Height.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onPrismPolygonChanged(int v) { + PartDesign::Prism* sph = static_cast(vp->getObject()); + sph->Polygon.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + + +void TaskBoxPrimitives::onWedgeX2inChanged(double v) { + PartDesign::Wedge* sph = static_cast(vp->getObject()); + sph->X2min.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onWedgeX2maxChanged(double v) { + PartDesign::Wedge* sph = static_cast(vp->getObject()); + sph->X2max.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onWedgeXinChanged(double v) { + PartDesign::Wedge* sph = static_cast(vp->getObject()); + sph->Xmin.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onWedgeXmaxChanged(double v) { + PartDesign::Wedge* sph = static_cast(vp->getObject()); + sph->Xmax.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onWedgeYinChanged(double v) { + PartDesign::Wedge* sph = static_cast(vp->getObject()); + sph->Ymin.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onWedgeYmaxChanged(double v) { + PartDesign::Wedge* sph = static_cast(vp->getObject()); + sph->Ymax.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onWedgeZ2inChanged(double v) { + PartDesign::Wedge* sph = static_cast(vp->getObject()); + sph->Z2min.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onWedgeZ2maxChanged(double v) { + PartDesign::Wedge* sph = static_cast(vp->getObject()); + sph->Z2max.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onWedgeZinChanged(double v) { + PartDesign::Wedge* sph = static_cast(vp->getObject()); + sph->Zmin.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + +void TaskBoxPrimitives::onWedgeZmaxChanged(double v) { + PartDesign::Wedge* sph = static_cast(vp->getObject()); + sph->Zmax.setValue(v); + vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); +} + + /* void TaskBoxPrimitives::createPrimitive(const QString& placement) diff --git a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h index 4e4681f68..53e8d2d46 100644 --- a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h +++ b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h @@ -67,6 +67,34 @@ public Q_SLOTS: void onSphereAngle1Changed(double); void onSphereAngle2Changed(double); void onSphereAngle3Changed(double); + void onConeRadius1Changed(double); + void onConeRadius2Changed(double); + void onConeAngleChanged(double); + void onConeHeightChanged(double); + void onEllipsoidRadius1Changed(double); + void onEllipsoidRadius2Changed(double); + void onEllipsoidRadius3Changed(double); + void onEllipsoidAngle1Changed(double); + void onEllipsoidAngle2Changed(double); + void onEllipsoidAngle3Changed(double); + void onTorusRadius1Changed(double); + void onTorusRadius2Changed(double); + void onTorusAngle1Changed(double); + void onTorusAngle2Changed(double); + void onTorusAngle3Changed(double); + void onPrismCircumradiusChanged(double); + void onPrismHeightChanged(double); + void onPrismPolygonChanged(int); + void onWedgeXmaxChanged(double); + void onWedgeXinChanged(double); + void onWedgeYmaxChanged(double); + void onWedgeYinChanged(double); + void onWedgeZmaxChanged(double); + void onWedgeZinChanged(double); + void onWedgeX2maxChanged(double); + void onWedgeX2inChanged(double); + void onWedgeZ2maxChanged(double); + void onWedgeZ2inChanged(double); private: QWidget* proxy; diff --git a/src/Mod/PartDesign/Gui/ViewProviderPrimitive.cpp b/src/Mod/PartDesign/Gui/ViewProviderPrimitive.cpp index acd4ee3b9..5ba45ee8d 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderPrimitive.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderPrimitive.cpp @@ -355,6 +355,21 @@ QIcon ViewProviderPrimitive::getIcon(void) const { case PartDesign::FeaturePrimitive::Sphere: str += QString::fromAscii("Sphere"); break; + case PartDesign::FeaturePrimitive::Cone: + str += QString::fromAscii("Cone"); + break; + case PartDesign::FeaturePrimitive::Ellipsoid: + str += QString::fromAscii("Ellipsoid"); + break; + case PartDesign::FeaturePrimitive::Torus: + str += QString::fromAscii("Torus"); + break; + case PartDesign::FeaturePrimitive::Prism: + str += QString::fromAscii("Prism"); + break; + case PartDesign::FeaturePrimitive::Wedge: + str += QString::fromAscii("Wedge"); + break; } str += QString::fromAscii(".svg");