From 31ecac57af5a3d6ebae596c6033520d22236531a Mon Sep 17 00:00:00 2001 From: 0penBrain <48731257+0penBrain@users.noreply.github.com> Date: Mon, 25 Jul 2022 17:53:26 +0200 Subject: [PATCH 1/3] Part: better quantity values handling for primitives --- src/Mod/Part/Gui/DlgPrimitives.cpp | 556 ++++++++++++++--------------- 1 file changed, 262 insertions(+), 294 deletions(-) diff --git a/src/Mod/Part/Gui/DlgPrimitives.cpp b/src/Mod/Part/Gui/DlgPrimitives.cpp index 75f2bba6a8..e86f5facf7 100644 --- a/src/Mod/Part/Gui/DlgPrimitives.cpp +++ b/src/Mod/Part/Gui/DlgPrimitives.cpp @@ -261,30 +261,28 @@ const char* PlanePrimitive::getDefaultName() const QString PlanePrimitive::create(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( "App.ActiveDocument.addObject(\"Part::Plane\",\"%1\")\n" - "App.ActiveDocument.%1.Length=%2\n" - "App.ActiveDocument.%1.Width=%3\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(objectName, - Base::UnitsApi::toNumber(ui->planeLength->value(), format), - Base::UnitsApi::toNumber(ui->planeWidth->value(), format), + ui->planeLength->value().getUserString(), + ui->planeWidth->value().getUserString(), placement, DlgPrimitives::tr("Plane")); } QString PlanePrimitive::change(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( - "%1.Length=%2\n" - "%1.Width=%3\n" + "%1.Length='%2'\n" + "%1.Width='%3'\n" "%1.Placement=%4\n") .arg(objectName, - Base::UnitsApi::toNumber(ui->planeLength->value(), format), - Base::UnitsApi::toNumber(ui->planeWidth->value(), format), + ui->planeLength->value().getUserString(), + ui->planeWidth->value().getUserString(), placement); } @@ -336,34 +334,32 @@ const char* BoxPrimitive::getDefaultName() const QString BoxPrimitive::create(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( "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.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(objectName, - Base::UnitsApi::toNumber(ui->boxLength->value(), format), - Base::UnitsApi::toNumber(ui->boxWidth->value(), format), - Base::UnitsApi::toNumber(ui->boxHeight->value(), format), + ui->boxLength->value().getUserString(), + ui->boxWidth->value().getUserString(), + ui->boxHeight->value().getUserString(), placement, DlgPrimitives::tr("Box")); } QString BoxPrimitive::change(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( - "%1.Length=%2\n" - "%1.Width=%3\n" - "%1.Height=%4\n" + "%1.Length='%2'\n" + "%1.Width='%3'\n" + "%1.Height='%4'\n" "%1.Placement=%5\n") .arg(objectName, - Base::UnitsApi::toNumber(ui->boxLength->value(), format), - Base::UnitsApi::toNumber(ui->boxWidth->value(), format), - Base::UnitsApi::toNumber(ui->boxHeight->value(), format), + ui->boxLength->value().getUserString(), + ui->boxWidth->value().getUserString(), + ui->boxHeight->value().getUserString(), placement); } @@ -424,38 +420,36 @@ const char* CylinderPrimitive::getDefaultName() const QString CylinderPrimitive::create(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( "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.FirstAngle=%5\n" - "App.ActiveDocument.%1.SecondAngle=%6\n" + "App.ActiveDocument.%1.Radius='%2'\n" + "App.ActiveDocument.%1.Height='%3'\n" + "App.ActiveDocument.%1.Angle='%4'\n" + "App.ActiveDocument.%1.FirstAngle='%5'\n" + "App.ActiveDocument.%1.SecondAngle='%6'\n" "App.ActiveDocument.%1.Placement=%7\n" "App.ActiveDocument.%1.Label='%8'\n") .arg(objectName, - Base::UnitsApi::toNumber(ui->cylinderRadius->value(), format), - Base::UnitsApi::toNumber(ui->cylinderHeight->value(), format), - Base::UnitsApi::toNumber(ui->cylinderAngle->value(), format), - Base::UnitsApi::toNumber(ui->cylinderXSkew->value(), format), - Base::UnitsApi::toNumber(ui->cylinderYSkew->value(), format), + ui->cylinderRadius->value().getUserString(), + ui->cylinderHeight->value().getUserString(), + ui->cylinderAngle->value().getUserString(), + ui->cylinderXSkew->value().getUserString(), + ui->cylinderYSkew->value().getUserString(), placement, DlgPrimitives::tr("Cylinder")); } QString CylinderPrimitive::change(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( - "%1.Radius=%2\n" - "%1.Height=%3\n" - "%1.Angle=%4\n" + "%1.Radius='%2'\n" + "%1.Height='%3'\n" + "%1.Angle='%4'\n" "%1.Placement=%5\n") .arg(objectName, - Base::UnitsApi::toNumber(ui->cylinderRadius->value(), format), - Base::UnitsApi::toNumber(ui->cylinderHeight->value(), format), - Base::UnitsApi::toNumber(ui->cylinderAngle->value(), format), + ui->cylinderRadius->value().getUserString(), + ui->cylinderHeight->value().getUserString(), + ui->cylinderAngle->value().getUserString(), placement); } @@ -520,38 +514,36 @@ const char* ConePrimitive::getDefaultName() const QString ConePrimitive::create(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( "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.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(objectName, - Base::UnitsApi::toNumber(ui->coneRadius1->value(), format), - Base::UnitsApi::toNumber(ui->coneRadius2->value(), format), - Base::UnitsApi::toNumber(ui->coneHeight->value(), format), - Base::UnitsApi::toNumber(ui->coneAngle->value(), format), + ui->coneRadius1->value().getUserString(), + ui->coneRadius2->value().getUserString(), + ui->coneHeight->value().getUserString(), + ui->coneAngle->value().getUserString(), placement, DlgPrimitives::tr("Cone")); } QString ConePrimitive::change(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( - "%1.Radius1=%2\n" - "%1.Radius2=%3\n" - "%1.Height=%4\n" - "%1.Angle=%5\n" + "%1.Radius1='%2'\n" + "%1.Radius2='%3'\n" + "%1.Height='%4'\n" + "%1.Angle='%5'\n" "%1.Placement=%6\n") .arg(objectName, - Base::UnitsApi::toNumber(ui->coneRadius1->value(), format), - Base::UnitsApi::toNumber(ui->coneRadius2->value(), format), - Base::UnitsApi::toNumber(ui->coneHeight->value(), format), - Base::UnitsApi::toNumber(ui->coneAngle->value(), format), + ui->coneRadius1->value().getUserString(), + ui->coneRadius2->value().getUserString(), + ui->coneHeight->value().getUserString(), + ui->coneAngle->value().getUserString(), placement); } @@ -613,38 +605,36 @@ const char* SpherePrimitive::getDefaultName() const QString SpherePrimitive::create(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( "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.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(objectName, - Base::UnitsApi::toNumber(ui->sphereRadius->value(), format), - Base::UnitsApi::toNumber(ui->sphereAngle1->value(), format), - Base::UnitsApi::toNumber(ui->sphereAngle2->value(), format), - Base::UnitsApi::toNumber(ui->sphereAngle3->value(), format), + ui->sphereRadius->value().getUserString(), + ui->sphereAngle1->value().getUserString(), + ui->sphereAngle2->value().getUserString(), + ui->sphereAngle3->value().getUserString(), placement, DlgPrimitives::tr("Sphere")); } QString SpherePrimitive::change(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( - "%1.Radius=%2\n" - "%1.Angle1=%3\n" - "%1.Angle2=%4\n" - "%1.Angle3=%5\n" + "%1.Radius='%2'\n" + "%1.Angle1='%3'\n" + "%1.Angle2='%4'\n" + "%1.Angle3='%5'\n" "%1.Placement=%6\n") .arg(objectName, - Base::UnitsApi::toNumber(ui->sphereRadius->value(), format), - Base::UnitsApi::toNumber(ui->sphereAngle1->value(), format), - Base::UnitsApi::toNumber(ui->sphereAngle2->value(), format), - Base::UnitsApi::toNumber(ui->sphereAngle3->value(), format), + ui->sphereRadius->value().getUserString(), + ui->sphereAngle1->value().getUserString(), + ui->sphereAngle2->value().getUserString(), + ui->sphereAngle3->value().getUserString(), placement); } @@ -715,46 +705,44 @@ const char* EllipsoidPrimitive::getDefaultName() const QString EllipsoidPrimitive::create(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( "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.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(objectName, - Base::UnitsApi::toNumber(ui->ellipsoidRadius1->value(), format), - Base::UnitsApi::toNumber(ui->ellipsoidRadius2->value(), format), - Base::UnitsApi::toNumber(ui->ellipsoidRadius3->value(), format), - Base::UnitsApi::toNumber(ui->ellipsoidAngle1->value(), format), - Base::UnitsApi::toNumber(ui->ellipsoidAngle2->value(), format), - Base::UnitsApi::toNumber(ui->ellipsoidAngle3->value(), format), + ui->ellipsoidRadius1->value().getUserString(), + ui->ellipsoidRadius2->value().getUserString(), + ui->ellipsoidRadius3->value().getUserString(), + ui->ellipsoidAngle1->value().getUserString(), + ui->ellipsoidAngle2->value().getUserString(), + ui->ellipsoidAngle3->value().getUserString(), placement, DlgPrimitives::tr("Ellipsoid")); } QString EllipsoidPrimitive::change(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( - "%1.Radius1=%2\n" - "%1.Radius2=%3\n" - "%1.Radius3=%4\n" - "%1.Angle1=%5\n" - "%1.Angle2=%6\n" - "%1.Angle3=%7\n" + "%1.Radius1='%2'\n" + "%1.Radius2='%3'\n" + "%1.Radius3='%4'\n" + "%1.Angle1='%5'\n" + "%1.Angle2='%6'\n" + "%1.Angle3='%7'\n" "%1.Placement=%8\n") .arg(objectName, - Base::UnitsApi::toNumber(ui->ellipsoidRadius1->value(), format), - Base::UnitsApi::toNumber(ui->ellipsoidRadius2->value(), format), - Base::UnitsApi::toNumber(ui->ellipsoidRadius3->value(), format), - Base::UnitsApi::toNumber(ui->ellipsoidAngle1->value(), format), - Base::UnitsApi::toNumber(ui->ellipsoidAngle2->value(), format), - Base::UnitsApi::toNumber(ui->ellipsoidAngle3->value(), format), + ui->ellipsoidRadius1->value().getUserString(), + ui->ellipsoidRadius2->value().getUserString(), + ui->ellipsoidRadius3->value().getUserString(), + ui->ellipsoidAngle1->value().getUserString(), + ui->ellipsoidAngle2->value().getUserString(), + ui->ellipsoidAngle3->value().getUserString(), placement); } @@ -826,42 +814,40 @@ const char* TorusPrimitive::getDefaultName() const QString TorusPrimitive::create(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( "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.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(objectName, - Base::UnitsApi::toNumber(ui->torusRadius1->value(), format), - Base::UnitsApi::toNumber(ui->torusRadius2->value(), format), - Base::UnitsApi::toNumber(ui->torusAngle1->value(), format), - Base::UnitsApi::toNumber(ui->torusAngle2->value(), format), - Base::UnitsApi::toNumber(ui->torusAngle3->value(), format), + ui->torusRadius1->value().getUserString(), + ui->torusRadius2->value().getUserString(), + ui->torusAngle1->value().getUserString(), + ui->torusAngle2->value().getUserString(), + ui->torusAngle3->value().getUserString(), placement, DlgPrimitives::tr("Torus")); } QString TorusPrimitive::change(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( - "%1.Radius1=%2\n" - "%1.Radius2=%3\n" - "%1.Angle1=%4\n" - "%1.Angle2=%5\n" - "%1.Angle3=%6\n" + "%1.Radius1='%2'\n" + "%1.Radius2='%3'\n" + "%1.Angle1='%4'\n" + "%1.Angle2='%5'\n" + "%1.Angle3='%6'\n" "%1.Placement=%7\n") .arg(objectName, - Base::UnitsApi::toNumber(ui->torusRadius1->value(), format), - Base::UnitsApi::toNumber(ui->torusRadius2->value(), format), - Base::UnitsApi::toNumber(ui->torusAngle1->value(), format), - Base::UnitsApi::toNumber(ui->torusAngle2->value(), format), - Base::UnitsApi::toNumber(ui->torusAngle3->value(), format), + ui->torusRadius1->value().getUserString(), + ui->torusRadius2->value().getUserString(), + ui->torusAngle1->value().getUserString(), + ui->torusAngle2->value().getUserString(), + ui->torusAngle3->value().getUserString(), placement); } @@ -926,42 +912,40 @@ const char* PrismPrimitive::getDefaultName() const QString PrismPrimitive::create(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( "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.FirstAngle=%5\n" - "App.ActiveDocument.%1.SecondAngle=%6\n" + "App.ActiveDocument.%1.Circumradius='%3'\n" + "App.ActiveDocument.%1.Height='%4'\n" + "App.ActiveDocument.%1.FirstAngle='%5'\n" + "App.ActiveDocument.%1.SecondAngle='%6'\n" "App.ActiveDocument.%1.Placement=%7\n" "App.ActiveDocument.%1.Label='%8'\n") .arg(objectName, QString::number(ui->prismPolygon->value()), - Base::UnitsApi::toNumber(ui->prismCircumradius->value(), format), - Base::UnitsApi::toNumber(ui->prismHeight->value(), format), - Base::UnitsApi::toNumber(ui->prismXSkew->value(), format), - Base::UnitsApi::toNumber(ui->prismYSkew->value(), format), + ui->prismCircumradius->value().getUserString(), + ui->prismHeight->value().getUserString(), + ui->prismXSkew->value().getUserString(), + ui->prismYSkew->value().getUserString(), placement, DlgPrimitives::tr("Prism")); } QString PrismPrimitive::change(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( "%1.Polygon=%2\n" - "%1.Circumradius=%3\n" - "%1.Height=%4\n" - "%1.FirstAngle=%5\n" - "%1.SecondAngle=%6\n" + "%1.Circumradius='%3'\n" + "%1.Height='%4'\n" + "%1.FirstAngle='%5'\n" + "%1.SecondAngle='%6'\n" "%1.Placement=%7\n") .arg(objectName, QString::number(ui->prismPolygon->value()), - Base::UnitsApi::toNumber(ui->prismCircumradius->value(), format), - Base::UnitsApi::toNumber(ui->prismHeight->value(), format), - Base::UnitsApi::toNumber(ui->prismXSkew->value(), format), - Base::UnitsApi::toNumber(ui->prismYSkew->value(), format), + ui->prismCircumradius->value().getUserString(), + ui->prismHeight->value().getUserString(), + ui->prismXSkew->value().getUserString(), + ui->prismYSkew->value().getUserString(), placement); } @@ -1060,62 +1044,60 @@ const char* WedgePrimitive::getDefaultName() const QString WedgePrimitive::create(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( "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.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(objectName, - Base::UnitsApi::toNumber(ui->wedgeXmin->value(), format), - Base::UnitsApi::toNumber(ui->wedgeYmin->value(), format), - Base::UnitsApi::toNumber(ui->wedgeZmin->value(), format), - Base::UnitsApi::toNumber(ui->wedgeX2min->value(), format), - Base::UnitsApi::toNumber(ui->wedgeZ2min->value(), format), - Base::UnitsApi::toNumber(ui->wedgeXmax->value(), format), - Base::UnitsApi::toNumber(ui->wedgeYmax->value(), format)) - .arg(Base::UnitsApi::toNumber(ui->wedgeZmax->value(), format), - Base::UnitsApi::toNumber(ui->wedgeX2max->value(), format), - Base::UnitsApi::toNumber(ui->wedgeZ2max->value(), format), + ui->wedgeXmin->value().getUserString(), + ui->wedgeYmin->value().getUserString(), + ui->wedgeZmin->value().getUserString(), + ui->wedgeX2min->value().getUserString(), + ui->wedgeZ2min->value().getUserString(), + ui->wedgeXmax->value().getUserString(), + ui->wedgeYmax->value().getUserString()) + .arg(ui->wedgeZmax->value().getUserString(), + ui->wedgeX2max->value().getUserString(), + ui->wedgeZ2max->value().getUserString(), placement, DlgPrimitives::tr("Wedge")); } QString WedgePrimitive::change(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( - "%1.Xmin=%2\n" - "%1.Ymin=%3\n" - "%1.Zmin=%4\n" - "%1.X2min=%5\n" - "%1.Z2min=%6\n" - "%1.Xmax=%7\n" - "%1.Ymax=%8\n" - "%1.Zmax=%9\n" - "%1.X2max=%10\n" - "%1.Z2max=%11\n" + "%1.Xmin='%2'\n" + "%1.Ymin='%3'\n" + "%1.Zmin='%4'\n" + "%1.X2min='%5'\n" + "%1.Z2min='%6'\n" + "%1.Xmax='%7'\n" + "%1.Ymax='%8'\n" + "%1.Zmax='%9'\n" + "%1.X2max='%10'\n" + "%1.Z2max='%11'\n" "%1.Placement=%12\n") .arg(objectName, - Base::UnitsApi::toNumber(ui->wedgeXmin->value(), format), - Base::UnitsApi::toNumber(ui->wedgeYmin->value(), format), - Base::UnitsApi::toNumber(ui->wedgeZmin->value(), format), - Base::UnitsApi::toNumber(ui->wedgeX2min->value(), format), - Base::UnitsApi::toNumber(ui->wedgeZ2min->value(), format), - Base::UnitsApi::toNumber(ui->wedgeXmax->value(), format), - Base::UnitsApi::toNumber(ui->wedgeYmax->value(), format), - Base::UnitsApi::toNumber(ui->wedgeZmax->value(), format)) - .arg(Base::UnitsApi::toNumber(ui->wedgeX2max->value(), format), - Base::UnitsApi::toNumber(ui->wedgeZ2max->value(), format), + ui->wedgeXmin->value().getUserString(), + ui->wedgeYmin->value().getUserString(), + ui->wedgeZmin->value().getUserString(), + ui->wedgeX2min->value().getUserString(), + ui->wedgeZ2min->value().getUserString(), + ui->wedgeXmax->value().getUserString(), + ui->wedgeYmax->value().getUserString(), + ui->wedgeZmax->value().getUserString()) + .arg(ui->wedgeX2max->value().getUserString(), + ui->wedgeZ2max->value().getUserString(), placement); } @@ -1197,22 +1179,21 @@ const char* HelixPrimitive::getDefaultName() const QString HelixPrimitive::create(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( "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.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(objectName, - Base::UnitsApi::toNumber(ui->helixPitch->value(), format), - Base::UnitsApi::toNumber(ui->helixHeight->value(), format), - Base::UnitsApi::toNumber(ui->helixRadius->value(), format), - Base::UnitsApi::toNumber(ui->helixAngle->value(), format), + ui->helixPitch->value().getUserString(), + ui->helixHeight->value().getUserString(), + ui->helixRadius->value().getUserString(), + ui->helixAngle->value().getUserString(), QString::number(ui->helixLocalCS->currentIndex()), placement, DlgPrimitives::tr("Helix")); @@ -1220,19 +1201,18 @@ QString HelixPrimitive::create(const QString& objectName, const QString& placeme QString HelixPrimitive::change(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( - "%1.Pitch=%2\n" - "%1.Height=%3\n" - "%1.Radius=%4\n" - "%1.Angle=%5\n" + "%1.Pitch='%2'\n" + "%1.Height='%3'\n" + "%1.Radius='%4'\n" + "%1.Angle='%5'\n" "%1.LocalCoord=%6\n" "%1.Placement=%7\n") .arg(objectName, - Base::UnitsApi::toNumber(ui->helixPitch->value(), format), - Base::UnitsApi::toNumber(ui->helixHeight->value(), format), - Base::UnitsApi::toNumber(ui->helixRadius->value(), format), - Base::UnitsApi::toNumber(ui->helixAngle->value(), format), + ui->helixPitch->value().getUserString(), + ui->helixHeight->value().getUserString(), + ui->helixRadius->value().getUserString(), + ui->helixAngle->value().getUserString(), QString::number(ui->helixLocalCS->currentIndex()), placement); } @@ -1293,34 +1273,32 @@ const char* SpiralPrimitive::getDefaultName() const QString SpiralPrimitive::create(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( "App.ActiveDocument.addObject(\"Part::Spiral\",\"%1\")\n" - "App.ActiveDocument.%1.Growth=%2\n" + "App.ActiveDocument.%1.Growth='%2'\n" "App.ActiveDocument.%1.Rotations=%3\n" - "App.ActiveDocument.%1.Radius=%4\n" + "App.ActiveDocument.%1.Radius='%4'\n" "App.ActiveDocument.%1.Placement=%5\n" "App.ActiveDocument.%1.Label='%6'\n") .arg(objectName, - Base::UnitsApi::toNumber(ui->spiralGrowth->value(), format), - Base::UnitsApi::toNumber(ui->spiralRotation->value(), format), - Base::UnitsApi::toNumber(ui->spiralRadius->value(), format), + ui->spiralGrowth->value().getUserString(), + QString::number(ui->spiralRotation->value()), + ui->spiralRadius->value().getUserString(), placement, DlgPrimitives::tr("Spiral")); } QString SpiralPrimitive::change(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( - "%1.Growth=%2\n" + "%1.Growth='%2'\n" "%1.Rotations=%3\n" - "%1.Radius=%4\n" + "%1.Radius='%4'\n" "%1.Placement=%5\n") .arg(objectName, - Base::UnitsApi::toNumber(ui->spiralGrowth->value(), format), - Base::UnitsApi::toNumber(ui->spiralRotation->value(), format), - Base::UnitsApi::toNumber(ui->spiralRadius->value(), format), + ui->spiralGrowth->value().getUserString(), + QString::number(ui->spiralRotation->value()), + ui->spiralRadius->value().getUserString(), placement); } @@ -1375,34 +1353,32 @@ const char* CirclePrimitive::getDefaultName() const QString CirclePrimitive::create(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( "App.ActiveDocument.addObject(\"Part::Circle\",\"%1\")\n" - "App.ActiveDocument.%1.Radius=%2\n" - "App.ActiveDocument.%1.Angle1=%3\n" - "App.ActiveDocument.%1.Angle2=%4\n" + "App.ActiveDocument.%1.Radius='%2'\n" + "App.ActiveDocument.%1.Angle1='%3'\n" + "App.ActiveDocument.%1.Angle2='%4'\n" "App.ActiveDocument.%1.Placement=%5\n" "App.ActiveDocument.%1.Label='%6'\n") .arg(objectName, - Base::UnitsApi::toNumber(ui->circleRadius->value(), format), - Base::UnitsApi::toNumber(ui->circleAngle1->value(), format), - Base::UnitsApi::toNumber(ui->circleAngle2->value(), format), + ui->circleRadius->value().getUserString(), + ui->circleAngle1->value().getUserString(), + ui->circleAngle2->value().getUserString(), placement, DlgPrimitives::tr("Circle")); } QString CirclePrimitive::change(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( - "%1.Radius=%2\n" - "%1.Angle1=%3\n" - "%1.Angle2=%4\n" + "%1.Radius='%2'\n" + "%1.Angle1='%3'\n" + "%1.Angle2='%4'\n" "%1.Placement=%5\n") .arg(objectName, - Base::UnitsApi::toNumber(ui->circleRadius->value(), format), - Base::UnitsApi::toNumber(ui->circleAngle1->value(), format), - Base::UnitsApi::toNumber(ui->circleAngle2->value(), format), + ui->circleRadius->value().getUserString(), + ui->circleAngle1->value().getUserString(), + ui->circleAngle2->value().getUserString(), placement); } @@ -1461,38 +1437,36 @@ const char* EllipsePrimitive::getDefaultName() const QString EllipsePrimitive::create(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( "App.ActiveDocument.addObject(\"Part::Ellipse\",\"%1\")\n" - "App.ActiveDocument.%1.MajorRadius=%2\n" - "App.ActiveDocument.%1.MinorRadius=%3\n" - "App.ActiveDocument.%1.Angle1=%4\n" - "App.ActiveDocument.%1.Angle2=%5\n" + "App.ActiveDocument.%1.MajorRadius='%2'\n" + "App.ActiveDocument.%1.MinorRadius='%3'\n" + "App.ActiveDocument.%1.Angle1='%4'\n" + "App.ActiveDocument.%1.Angle2='%5'\n" "App.ActiveDocument.%1.Placement=%6\n" "App.ActiveDocument.%1.Label='%7'\n") .arg(objectName, - Base::UnitsApi::toNumber(ui->ellipseMajorRadius->value(), format), - Base::UnitsApi::toNumber(ui->ellipseMinorRadius->value(), format), - Base::UnitsApi::toNumber(ui->ellipseAngle1->value(), format), - Base::UnitsApi::toNumber(ui->ellipseAngle2->value(), format), + ui->ellipseMajorRadius->value().getUserString(), + ui->ellipseMinorRadius->value().getUserString(), + ui->ellipseAngle1->value().getUserString(), + ui->ellipseAngle2->value().getUserString(), placement, DlgPrimitives::tr("Ellipse")); } QString EllipsePrimitive::change(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( - "%1.MajorRadius=%2\n" - "%1.MinorRadius=%3\n" - "%1.Angle1=%4\n" - "%1.Angle2=%5\n" + "%1.MajorRadius='%2'\n" + "%1.MinorRadius='%3'\n" + "%1.Angle1='%4'\n" + "%1.Angle2='%5'\n" "%1.Placement=%6\n") .arg(objectName, - Base::UnitsApi::toNumber(ui->ellipseMajorRadius->value(), format), - Base::UnitsApi::toNumber(ui->ellipseMinorRadius->value(), format), - Base::UnitsApi::toNumber(ui->ellipseAngle1->value(), format), - Base::UnitsApi::toNumber(ui->ellipseAngle2->value(), format), + ui->ellipseMajorRadius->value().getUserString(), + ui->ellipseMinorRadius->value().getUserString(), + ui->ellipseAngle1->value().getUserString(), + ui->ellipseAngle2->value().getUserString(), placement); } @@ -1544,30 +1518,28 @@ const char* PolygonPrimitive::getDefaultName() const QString PolygonPrimitive::create(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( "App.ActiveDocument.addObject(\"Part::RegularPolygon\",\"%1\")\n" "App.ActiveDocument.%1.Polygon=%2\n" - "App.ActiveDocument.%1.Circumradius=%3\n" + "App.ActiveDocument.%1.Circumradius='%3'\n" "App.ActiveDocument.%1.Placement=%4\n" "App.ActiveDocument.%1.Label='%5'\n") .arg(objectName, QString::number(ui->regularPolygonPolygon->value()), - Base::UnitsApi::toNumber(ui->regularPolygonCircumradius->value(), format), + ui->regularPolygonCircumradius->value().getUserString(), placement, DlgPrimitives::tr("Regular polygon")); } QString PolygonPrimitive::change(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( "%1.Polygon=%2\n" - "%1.Circumradius=%3\n" + "%1.Circumradius='%3'\n" "%1.Placement=%4\n") .arg(objectName, QString::number(ui->regularPolygonPolygon->value()), - Base::UnitsApi::toNumber(ui->regularPolygonCircumradius->value(), format), + ui->regularPolygonCircumradius->value().getUserString(), placement); } @@ -1637,46 +1609,44 @@ const char* LinePrimitive::getDefaultName() const QString LinePrimitive::create(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( "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.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(objectName, - Base::UnitsApi::toNumber(ui->edgeX1->value(), format), - Base::UnitsApi::toNumber(ui->edgeY1->value(), format), - Base::UnitsApi::toNumber(ui->edgeZ1->value(), format), - Base::UnitsApi::toNumber(ui->edgeX2->value(), format), - Base::UnitsApi::toNumber(ui->edgeY2->value(), format), - Base::UnitsApi::toNumber(ui->edgeZ2->value(), format), + ui->edgeX1->value().getUserString(), + ui->edgeY1->value().getUserString(), + ui->edgeZ1->value().getUserString(), + ui->edgeX2->value().getUserString(), + ui->edgeY2->value().getUserString(), + ui->edgeZ2->value().getUserString(), placement, DlgPrimitives::tr("Line")); } QString LinePrimitive::change(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( - "%1.X1=%2\n" - "%1.Y1=%3\n" - "%1.Z1=%4\n" - "%1.X2=%5\n" - "%1.Y2=%6\n" - "%1.Z2=%7\n" + "%1.X1='%2'\n" + "%1.Y1='%3'\n" + "%1.Z1='%4'\n" + "%1.X2='%5'\n" + "%1.Y2='%6'\n" + "%1.Z2='%7'\n" "%1.Placement=%8\n") .arg(objectName, - Base::UnitsApi::toNumber(ui->edgeX1->value(), format), - Base::UnitsApi::toNumber(ui->edgeY1->value(), format), - Base::UnitsApi::toNumber(ui->edgeZ1->value(), format), - Base::UnitsApi::toNumber(ui->edgeX2->value(), format), - Base::UnitsApi::toNumber(ui->edgeY2->value(), format), - Base::UnitsApi::toNumber(ui->edgeZ2->value(), format), + ui->edgeX1->value().getUserString(), + ui->edgeY1->value().getUserString(), + ui->edgeZ1->value().getUserString(), + ui->edgeX2->value().getUserString(), + ui->edgeY2->value().getUserString(), + ui->edgeZ2->value().getUserString(), placement); } @@ -1743,34 +1713,32 @@ const char* VertexPrimitive::getDefaultName() const QString VertexPrimitive::create(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( "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.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(objectName, - Base::UnitsApi::toNumber(ui->vertexX->value(), format), - Base::UnitsApi::toNumber(ui->vertexY->value(), format), - Base::UnitsApi::toNumber(ui->vertexZ->value(), format), + ui->vertexX->value().getUserString(), + ui->vertexY->value().getUserString(), + ui->vertexZ->value().getUserString(), placement, DlgPrimitives::tr("Vertex")); } QString VertexPrimitive::change(const QString& objectName, const QString& placement) const { - Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals()); return QString::fromLatin1( - "%1.X=%2\n" - "%1.Y=%3\n" - "%1.Z=%4\n" + "%1.X='%2'\n" + "%1.Y='%3'\n" + "%1.Z='%4'\n" "%1.Placement=%5\n") .arg(objectName, - Base::UnitsApi::toNumber(ui->vertexX->value(), format), - Base::UnitsApi::toNumber(ui->vertexY->value(), format), - Base::UnitsApi::toNumber(ui->vertexZ->value(), format), + ui->vertexX->value().getUserString(), + ui->vertexY->value().getUserString(), + ui->vertexZ->value().getUserString(), placement); } From 257629f9c7fa02a2faebfc03aae483bac43ae816 Mon Sep 17 00:00:00 2001 From: 0penBrain <48731257+0penBrain@users.noreply.github.com> Date: Sat, 30 Jul 2022 14:00:52 +0200 Subject: [PATCH 2/3] PartDesign: better quantity values handling for primitives --- .../Gui/TaskPrimitiveParameters.cpp | 164 +++++++++--------- 1 file changed, 82 insertions(+), 82 deletions(-) diff --git a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp index 6de96f988a..78bfbf9c2c 100644 --- a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp @@ -730,28 +730,28 @@ bool TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj) switch(ui->widgetStack->currentIndex()) { case 1: // box cmd = QString::fromLatin1( - "%1.Length=%2\n" - "%1.Width=%3\n" - "%1.Height=%4\n") + "%1.Length='%2'\n" + "%1.Width='%3'\n" + "%1.Height='%4'\n") .arg(name, - Base::UnitsApi::toNumber(ui->boxLength->value(), format), - Base::UnitsApi::toNumber(ui->boxWidth->value(), format), - Base::UnitsApi::toNumber(ui->boxHeight->value(), format)); + ui->boxLength->value().getUserString(), + ui->boxWidth->value().getUserString(), + ui->boxHeight->value().getUserString()); break; case 2: // cylinder cmd = QString::fromLatin1( - "%1.Radius=%2\n" - "%1.Height=%3\n" - "%1.Angle=%4\n" - "%1.FirstAngle=%5\n" - "%1.SecondAngle=%6\n") + "%1.Radius='%2'\n" + "%1.Height='%3'\n" + "%1.Angle='%4'\n" + "%1.FirstAngle='%5'\n" + "%1.SecondAngle='%6'\n") .arg(name, - Base::UnitsApi::toNumber(ui->cylinderRadius->value(), format), - Base::UnitsApi::toNumber(ui->cylinderHeight->value(), format), - Base::UnitsApi::toNumber(ui->cylinderAngle->value(), format), - Base::UnitsApi::toNumber(ui->cylinderXSkew->value(), format), - Base::UnitsApi::toNumber(ui->cylinderYSkew->value(), format)); + ui->cylinderRadius->value().getUserString(), + ui->cylinderHeight->value().getUserString(), + ui->cylinderAngle->value().getUserString(), + ui->cylinderXSkew->value().getUserString(), + ui->cylinderYSkew->value().getUserString()); break; case 3: // cone @@ -762,73 +762,73 @@ bool TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj) return false; } cmd = QString::fromLatin1( - "%1.Radius1=%2\n" - "%1.Radius2=%3\n" - "%1.Height=%4\n" - "%1.Angle=%5\n") + "%1.Radius1='%2'\n" + "%1.Radius2='%3'\n" + "%1.Height='%4'\n" + "%1.Angle='%5'\n") .arg(name, - Base::UnitsApi::toNumber(ui->coneRadius1->value(), format), - Base::UnitsApi::toNumber(ui->coneRadius2->value(), format), - Base::UnitsApi::toNumber(ui->coneHeight->value(), format), - Base::UnitsApi::toNumber(ui->coneAngle->value(), format)); + ui->coneRadius1->value().getUserString(), + ui->coneRadius2->value().getUserString(), + ui->coneHeight->value().getUserString(), + ui->coneAngle->value().getUserString()); break; case 4: // sphere cmd = QString::fromLatin1( - "%1.Radius=%2\n" - "%1.Angle1=%3\n" - "%1.Angle2=%4\n" - "%1.Angle3=%5\n") + "%1.Radius='%2'\n" + "%1.Angle1='%3'\n" + "%1.Angle2='%4'\n" + "%1.Angle3='%5'\n") .arg(name, - Base::UnitsApi::toNumber(ui->sphereRadius->value(), format), - Base::UnitsApi::toNumber(ui->sphereAngle1->value(), format), - Base::UnitsApi::toNumber(ui->sphereAngle2->value(), format), - Base::UnitsApi::toNumber(ui->sphereAngle3->value(), format)); + ui->sphereRadius->value().getUserString(), + ui->sphereAngle1->value().getUserString(), + ui->sphereAngle2->value().getUserString(), + ui->sphereAngle3->value().getUserString()); break; case 5: // ellipsoid cmd = QString::fromLatin1( - "%1.Radius1=%2\n" - "%1.Radius2=%3\n" - "%1.Radius3=%4\n" - "%1.Angle1=%5\n" - "%1.Angle2=%6\n" - "%1.Angle3=%7\n") + "%1.Radius1='%2'\n" + "%1.Radius2='%3'\n" + "%1.Radius3='%4'\n" + "%1.Angle1='%5'\n" + "%1.Angle2='%6'\n" + "%1.Angle3='%7'\n") .arg(name, - Base::UnitsApi::toNumber(ui->ellipsoidRadius1->value(), format), - Base::UnitsApi::toNumber(ui->ellipsoidRadius2->value(), format), - Base::UnitsApi::toNumber(ui->ellipsoidRadius3->value(), format), - Base::UnitsApi::toNumber(ui->ellipsoidAngle1->value(), format), - Base::UnitsApi::toNumber(ui->ellipsoidAngle2->value(), format), - Base::UnitsApi::toNumber(ui->ellipsoidAngle3->value(), format)); + ui->ellipsoidRadius1->value().getUserString(), + ui->ellipsoidRadius2->value().getUserString(), + ui->ellipsoidRadius3->value().getUserString(), + ui->ellipsoidAngle1->value().getUserString(), + ui->ellipsoidAngle2->value().getUserString(), + ui->ellipsoidAngle3->value().getUserString()); break; case 6: // torus cmd = QString::fromLatin1( - "%1.Radius1=%2\n" - "%1.Radius2=%3\n" - "%1.Angle1=%4\n" - "%1.Angle2=%5\n" - "%1.Angle3=%6\n") + "%1.Radius1='%2'\n" + "%1.Radius2='%3'\n" + "%1.Angle1='%4'\n" + "%1.Angle2='%5'\n" + "%1.Angle3='%6'\n") .arg(name, - Base::UnitsApi::toNumber(ui->torusRadius1->value(), format), - Base::UnitsApi::toNumber(ui->torusRadius2->value(), format), - Base::UnitsApi::toNumber(ui->torusAngle1->value(), format), - Base::UnitsApi::toNumber(ui->torusAngle2->value(), format), - Base::UnitsApi::toNumber(ui->torusAngle3->value(), format)); + ui->torusRadius1->value().getUserString(), + ui->torusRadius2->value().getUserString(), + ui->torusAngle1->value().getUserString(), + ui->torusAngle2->value().getUserString(), + ui->torusAngle3->value().getUserString()); break; case 7: // prism cmd = QString::fromLatin1( "%1.Polygon=%2\n" - "%1.Circumradius=%3\n" - "%1.Height=%4\n" - "%1.FirstAngle=%5\n" - "%1.SecondAngle=%6\n") + "%1.Circumradius='%3'\n" + "%1.Height='%4'\n" + "%1.FirstAngle='%5'\n" + "%1.SecondAngle='%6'\n") .arg(name, QString::number(ui->prismPolygon->value()), - Base::UnitsApi::toNumber(ui->prismCircumradius->value(), format), - Base::UnitsApi::toNumber(ui->prismHeight->value(), format), - Base::UnitsApi::toNumber(ui->prismXSkew->value(), format), - Base::UnitsApi::toNumber(ui->prismYSkew->value(), format)); + ui->prismCircumradius->value().getUserString(), + ui->prismHeight->value().getUserString(), + ui->prismXSkew->value().getUserString(), + ui->prismYSkew->value().getUserString()); break; case 8: // wedge // Xmin/max, Ymin/max and Zmin/max must each not be equal @@ -848,27 +848,27 @@ bool TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj) return false; } cmd = QString::fromLatin1( - "%1.Xmin=%2\n" - "%1.Ymin=%3\n" - "%1.Zmin=%4\n" - "%1.X2min=%5\n" - "%1.Z2min=%6\n" - "%1.Xmax=%7\n" - "%1.Ymax=%8\n" - "%1.Zmax=%9\n" - "%1.X2max=%10\n" - "%1.Z2max=%11\n") + "%1.Xmin='%2'\n" + "%1.Ymin='%3'\n" + "%1.Zmin='%4'\n" + "%1.X2min='%5'\n" + "%1.Z2min='%6'\n" + "%1.Xmax='%7'\n" + "%1.Ymax='%8'\n" + "%1.Zmax='%9'\n" + "%1.X2max='%10'\n" + "%1.Z2max='%11'\n") .arg(name, - Base::UnitsApi::toNumber(ui->wedgeXmin->value(), format), - Base::UnitsApi::toNumber(ui->wedgeYmin->value(), format), - Base::UnitsApi::toNumber(ui->wedgeZmin->value(), format), - Base::UnitsApi::toNumber(ui->wedgeX2min->value(), format), - Base::UnitsApi::toNumber(ui->wedgeZ2min->value(), format), - Base::UnitsApi::toNumber(ui->wedgeXmax->value(), format), - Base::UnitsApi::toNumber(ui->wedgeYmax->value(), format), - Base::UnitsApi::toNumber(ui->wedgeZmax->value(), format)) - .arg(Base::UnitsApi::toNumber(ui->wedgeX2max->value(), format), - Base::UnitsApi::toNumber(ui->wedgeZ2max->value(), format)); + ui->wedgeXmin->value().getUserString(), + ui->wedgeYmin->value().getUserString(), + ui->wedgeZmin->value().getUserString(), + ui->wedgeX2min->value().getUserString(), + ui->wedgeZ2min->value().getUserString(), + ui->wedgeXmax->value().getUserString(), + ui->wedgeYmax->value().getUserString(), + ui->wedgeZmax->value().getUserString()) + .arg(ui->wedgeX2max->value().getUserString(), + ui->wedgeZ2max->value().getUserString()); break; default: From 569154b73f818c6a88b010def687d5e684ce64c2 Mon Sep 17 00:00:00 2001 From: 0penBrain <48731257+0penBrain@users.noreply.github.com> Date: Sat, 30 Jul 2022 14:58:31 +0200 Subject: [PATCH 3/3] Base: introduce 'getSafeUserUnit' that fallbacks to full precision and internal unit ... ... in case unit schema would zero a non-zero quantity For example, using '1 mil' with UnitsSchemaImperialDecimal schema --- src/Base/Quantity.cpp | 16 ++ src/Base/Quantity.h | 1 + src/Mod/Part/Gui/DlgPrimitives.cpp | 260 +++++++++--------- .../Gui/TaskPrimitiveParameters.cpp | 82 +++--- 4 files changed, 188 insertions(+), 171 deletions(-) diff --git a/src/Base/Quantity.cpp b/src/Base/Quantity.cpp index 8485d39303..24a6c6808e 100644 --- a/src/Base/Quantity.cpp +++ b/src/Base/Quantity.cpp @@ -242,6 +242,22 @@ QString Quantity::getUserString(UnitsSchema* schema, double &factor, QString &un return schema->schemaTranslate(*this, factor, unitString); } +QString Quantity::getSafeUserString() const +{ + auto retString = getUserString(); + if(Q_LIKELY(this->_Value != 0)) + { + auto feedbackQty = parse(retString); + auto feedbackVal = feedbackQty.getValue(); + if (feedbackVal == 0) { + retString = QStringLiteral("%1 %2") + .arg(this->_Value) + .arg(this->getUnit().getString()); + } + } + return retString; +} + /// true if it has a number without a unit bool Quantity::isDimensionless() const { diff --git a/src/Base/Quantity.h b/src/Base/Quantity.h index 58d688bf10..5997910881 100644 --- a/src/Base/Quantity.h +++ b/src/Base/Quantity.h @@ -153,6 +153,7 @@ public: return getUserString(dummy1,dummy2); } QString getUserString(UnitsSchema* schema, double &factor, QString &unitString) const; + QString getSafeUserString() const; static Quantity parse(const QString &string); diff --git a/src/Mod/Part/Gui/DlgPrimitives.cpp b/src/Mod/Part/Gui/DlgPrimitives.cpp index e86f5facf7..c93edab516 100644 --- a/src/Mod/Part/Gui/DlgPrimitives.cpp +++ b/src/Mod/Part/Gui/DlgPrimitives.cpp @@ -268,8 +268,8 @@ QString PlanePrimitive::create(const QString& objectName, const QString& placeme "App.ActiveDocument.%1.Placement=%4\n" "App.ActiveDocument.%1.Label='%5'\n") .arg(objectName, - ui->planeLength->value().getUserString(), - ui->planeWidth->value().getUserString(), + ui->planeLength->value().getSafeUserString(), + ui->planeWidth->value().getSafeUserString(), placement, DlgPrimitives::tr("Plane")); } @@ -281,8 +281,8 @@ QString PlanePrimitive::change(const QString& objectName, const QString& placeme "%1.Width='%3'\n" "%1.Placement=%4\n") .arg(objectName, - ui->planeLength->value().getUserString(), - ui->planeWidth->value().getUserString(), + ui->planeLength->value().getSafeUserString(), + ui->planeWidth->value().getSafeUserString(), placement); } @@ -342,9 +342,9 @@ QString BoxPrimitive::create(const QString& objectName, const QString& placement "App.ActiveDocument.%1.Placement=%5\n" "App.ActiveDocument.%1.Label='%6'\n") .arg(objectName, - ui->boxLength->value().getUserString(), - ui->boxWidth->value().getUserString(), - ui->boxHeight->value().getUserString(), + ui->boxLength->value().getSafeUserString(), + ui->boxWidth->value().getSafeUserString(), + ui->boxHeight->value().getSafeUserString(), placement, DlgPrimitives::tr("Box")); } @@ -357,9 +357,9 @@ QString BoxPrimitive::change(const QString& objectName, const QString& placement "%1.Height='%4'\n" "%1.Placement=%5\n") .arg(objectName, - ui->boxLength->value().getUserString(), - ui->boxWidth->value().getUserString(), - ui->boxHeight->value().getUserString(), + ui->boxLength->value().getSafeUserString(), + ui->boxWidth->value().getSafeUserString(), + ui->boxHeight->value().getSafeUserString(), placement); } @@ -430,11 +430,11 @@ QString CylinderPrimitive::create(const QString& objectName, const QString& plac "App.ActiveDocument.%1.Placement=%7\n" "App.ActiveDocument.%1.Label='%8'\n") .arg(objectName, - ui->cylinderRadius->value().getUserString(), - ui->cylinderHeight->value().getUserString(), - ui->cylinderAngle->value().getUserString(), - ui->cylinderXSkew->value().getUserString(), - ui->cylinderYSkew->value().getUserString(), + ui->cylinderRadius->value().getSafeUserString(), + ui->cylinderHeight->value().getSafeUserString(), + ui->cylinderAngle->value().getSafeUserString(), + ui->cylinderXSkew->value().getSafeUserString(), + ui->cylinderYSkew->value().getSafeUserString(), placement, DlgPrimitives::tr("Cylinder")); } @@ -447,9 +447,9 @@ QString CylinderPrimitive::change(const QString& objectName, const QString& plac "%1.Angle='%4'\n" "%1.Placement=%5\n") .arg(objectName, - ui->cylinderRadius->value().getUserString(), - ui->cylinderHeight->value().getUserString(), - ui->cylinderAngle->value().getUserString(), + ui->cylinderRadius->value().getSafeUserString(), + ui->cylinderHeight->value().getSafeUserString(), + ui->cylinderAngle->value().getSafeUserString(), placement); } @@ -523,10 +523,10 @@ QString ConePrimitive::create(const QString& objectName, const QString& placemen "App.ActiveDocument.%1.Placement=%6\n" "App.ActiveDocument.%1.Label='%7'\n") .arg(objectName, - ui->coneRadius1->value().getUserString(), - ui->coneRadius2->value().getUserString(), - ui->coneHeight->value().getUserString(), - ui->coneAngle->value().getUserString(), + ui->coneRadius1->value().getSafeUserString(), + ui->coneRadius2->value().getSafeUserString(), + ui->coneHeight->value().getSafeUserString(), + ui->coneAngle->value().getSafeUserString(), placement, DlgPrimitives::tr("Cone")); } @@ -540,10 +540,10 @@ QString ConePrimitive::change(const QString& objectName, const QString& placemen "%1.Angle='%5'\n" "%1.Placement=%6\n") .arg(objectName, - ui->coneRadius1->value().getUserString(), - ui->coneRadius2->value().getUserString(), - ui->coneHeight->value().getUserString(), - ui->coneAngle->value().getUserString(), + ui->coneRadius1->value().getSafeUserString(), + ui->coneRadius2->value().getSafeUserString(), + ui->coneHeight->value().getSafeUserString(), + ui->coneAngle->value().getSafeUserString(), placement); } @@ -614,10 +614,10 @@ QString SpherePrimitive::create(const QString& objectName, const QString& placem "App.ActiveDocument.%1.Placement=%6\n" "App.ActiveDocument.%1.Label='%7'\n") .arg(objectName, - ui->sphereRadius->value().getUserString(), - ui->sphereAngle1->value().getUserString(), - ui->sphereAngle2->value().getUserString(), - ui->sphereAngle3->value().getUserString(), + ui->sphereRadius->value().getSafeUserString(), + ui->sphereAngle1->value().getSafeUserString(), + ui->sphereAngle2->value().getSafeUserString(), + ui->sphereAngle3->value().getSafeUserString(), placement, DlgPrimitives::tr("Sphere")); } @@ -631,10 +631,10 @@ QString SpherePrimitive::change(const QString& objectName, const QString& placem "%1.Angle3='%5'\n" "%1.Placement=%6\n") .arg(objectName, - ui->sphereRadius->value().getUserString(), - ui->sphereAngle1->value().getUserString(), - ui->sphereAngle2->value().getUserString(), - ui->sphereAngle3->value().getUserString(), + ui->sphereRadius->value().getSafeUserString(), + ui->sphereAngle1->value().getSafeUserString(), + ui->sphereAngle2->value().getSafeUserString(), + ui->sphereAngle3->value().getSafeUserString(), placement); } @@ -716,12 +716,12 @@ QString EllipsoidPrimitive::create(const QString& objectName, const QString& pla "App.ActiveDocument.%1.Placement=%8\n" "App.ActiveDocument.%1.Label='%9'\n") .arg(objectName, - ui->ellipsoidRadius1->value().getUserString(), - ui->ellipsoidRadius2->value().getUserString(), - ui->ellipsoidRadius3->value().getUserString(), - ui->ellipsoidAngle1->value().getUserString(), - ui->ellipsoidAngle2->value().getUserString(), - ui->ellipsoidAngle3->value().getUserString(), + ui->ellipsoidRadius1->value().getSafeUserString(), + ui->ellipsoidRadius2->value().getSafeUserString(), + ui->ellipsoidRadius3->value().getSafeUserString(), + ui->ellipsoidAngle1->value().getSafeUserString(), + ui->ellipsoidAngle2->value().getSafeUserString(), + ui->ellipsoidAngle3->value().getSafeUserString(), placement, DlgPrimitives::tr("Ellipsoid")); } @@ -737,12 +737,12 @@ QString EllipsoidPrimitive::change(const QString& objectName, const QString& pla "%1.Angle3='%7'\n" "%1.Placement=%8\n") .arg(objectName, - ui->ellipsoidRadius1->value().getUserString(), - ui->ellipsoidRadius2->value().getUserString(), - ui->ellipsoidRadius3->value().getUserString(), - ui->ellipsoidAngle1->value().getUserString(), - ui->ellipsoidAngle2->value().getUserString(), - ui->ellipsoidAngle3->value().getUserString(), + ui->ellipsoidRadius1->value().getSafeUserString(), + ui->ellipsoidRadius2->value().getSafeUserString(), + ui->ellipsoidRadius3->value().getSafeUserString(), + ui->ellipsoidAngle1->value().getSafeUserString(), + ui->ellipsoidAngle2->value().getSafeUserString(), + ui->ellipsoidAngle3->value().getSafeUserString(), placement); } @@ -824,11 +824,11 @@ QString TorusPrimitive::create(const QString& objectName, const QString& placeme "App.ActiveDocument.%1.Placement=%7\n" "App.ActiveDocument.%1.Label='%8'\n") .arg(objectName, - ui->torusRadius1->value().getUserString(), - ui->torusRadius2->value().getUserString(), - ui->torusAngle1->value().getUserString(), - ui->torusAngle2->value().getUserString(), - ui->torusAngle3->value().getUserString(), + ui->torusRadius1->value().getSafeUserString(), + ui->torusRadius2->value().getSafeUserString(), + ui->torusAngle1->value().getSafeUserString(), + ui->torusAngle2->value().getSafeUserString(), + ui->torusAngle3->value().getSafeUserString(), placement, DlgPrimitives::tr("Torus")); } @@ -843,11 +843,11 @@ QString TorusPrimitive::change(const QString& objectName, const QString& placeme "%1.Angle3='%6'\n" "%1.Placement=%7\n") .arg(objectName, - ui->torusRadius1->value().getUserString(), - ui->torusRadius2->value().getUserString(), - ui->torusAngle1->value().getUserString(), - ui->torusAngle2->value().getUserString(), - ui->torusAngle3->value().getUserString(), + ui->torusRadius1->value().getSafeUserString(), + ui->torusRadius2->value().getSafeUserString(), + ui->torusAngle1->value().getSafeUserString(), + ui->torusAngle2->value().getSafeUserString(), + ui->torusAngle3->value().getSafeUserString(), placement); } @@ -923,10 +923,10 @@ QString PrismPrimitive::create(const QString& objectName, const QString& placeme "App.ActiveDocument.%1.Label='%8'\n") .arg(objectName, QString::number(ui->prismPolygon->value()), - ui->prismCircumradius->value().getUserString(), - ui->prismHeight->value().getUserString(), - ui->prismXSkew->value().getUserString(), - ui->prismYSkew->value().getUserString(), + ui->prismCircumradius->value().getSafeUserString(), + ui->prismHeight->value().getSafeUserString(), + ui->prismXSkew->value().getSafeUserString(), + ui->prismYSkew->value().getSafeUserString(), placement, DlgPrimitives::tr("Prism")); } @@ -942,10 +942,10 @@ QString PrismPrimitive::change(const QString& objectName, const QString& placeme "%1.Placement=%7\n") .arg(objectName, QString::number(ui->prismPolygon->value()), - ui->prismCircumradius->value().getUserString(), - ui->prismHeight->value().getUserString(), - ui->prismXSkew->value().getUserString(), - ui->prismYSkew->value().getUserString(), + ui->prismCircumradius->value().getSafeUserString(), + ui->prismHeight->value().getSafeUserString(), + ui->prismXSkew->value().getSafeUserString(), + ui->prismYSkew->value().getSafeUserString(), placement); } @@ -1059,16 +1059,16 @@ QString WedgePrimitive::create(const QString& objectName, const QString& placeme "App.ActiveDocument.%1.Placement=%12\n" "App.ActiveDocument.%1.Label='%13'\n") .arg(objectName, - ui->wedgeXmin->value().getUserString(), - ui->wedgeYmin->value().getUserString(), - ui->wedgeZmin->value().getUserString(), - ui->wedgeX2min->value().getUserString(), - ui->wedgeZ2min->value().getUserString(), - ui->wedgeXmax->value().getUserString(), - ui->wedgeYmax->value().getUserString()) - .arg(ui->wedgeZmax->value().getUserString(), - ui->wedgeX2max->value().getUserString(), - ui->wedgeZ2max->value().getUserString(), + ui->wedgeXmin->value().getSafeUserString(), + ui->wedgeYmin->value().getSafeUserString(), + ui->wedgeZmin->value().getSafeUserString(), + ui->wedgeX2min->value().getSafeUserString(), + ui->wedgeZ2min->value().getSafeUserString(), + ui->wedgeXmax->value().getSafeUserString(), + ui->wedgeYmax->value().getSafeUserString()) + .arg(ui->wedgeZmax->value().getSafeUserString(), + ui->wedgeX2max->value().getSafeUserString(), + ui->wedgeZ2max->value().getSafeUserString(), placement, DlgPrimitives::tr("Wedge")); } @@ -1088,16 +1088,16 @@ QString WedgePrimitive::change(const QString& objectName, const QString& placeme "%1.Z2max='%11'\n" "%1.Placement=%12\n") .arg(objectName, - ui->wedgeXmin->value().getUserString(), - ui->wedgeYmin->value().getUserString(), - ui->wedgeZmin->value().getUserString(), - ui->wedgeX2min->value().getUserString(), - ui->wedgeZ2min->value().getUserString(), - ui->wedgeXmax->value().getUserString(), - ui->wedgeYmax->value().getUserString(), - ui->wedgeZmax->value().getUserString()) - .arg(ui->wedgeX2max->value().getUserString(), - ui->wedgeZ2max->value().getUserString(), + ui->wedgeXmin->value().getSafeUserString(), + ui->wedgeYmin->value().getSafeUserString(), + ui->wedgeZmin->value().getSafeUserString(), + ui->wedgeX2min->value().getSafeUserString(), + ui->wedgeZ2min->value().getSafeUserString(), + ui->wedgeXmax->value().getSafeUserString(), + ui->wedgeYmax->value().getSafeUserString(), + ui->wedgeZmax->value().getSafeUserString()) + .arg(ui->wedgeX2max->value().getSafeUserString(), + ui->wedgeZ2max->value().getSafeUserString(), placement); } @@ -1190,10 +1190,10 @@ QString HelixPrimitive::create(const QString& objectName, const QString& placeme "App.ActiveDocument.%1.Placement=%7\n" "App.ActiveDocument.%1.Label='%8'\n") .arg(objectName, - ui->helixPitch->value().getUserString(), - ui->helixHeight->value().getUserString(), - ui->helixRadius->value().getUserString(), - ui->helixAngle->value().getUserString(), + ui->helixPitch->value().getSafeUserString(), + ui->helixHeight->value().getSafeUserString(), + ui->helixRadius->value().getSafeUserString(), + ui->helixAngle->value().getSafeUserString(), QString::number(ui->helixLocalCS->currentIndex()), placement, DlgPrimitives::tr("Helix")); @@ -1209,10 +1209,10 @@ QString HelixPrimitive::change(const QString& objectName, const QString& placeme "%1.LocalCoord=%6\n" "%1.Placement=%7\n") .arg(objectName, - ui->helixPitch->value().getUserString(), - ui->helixHeight->value().getUserString(), - ui->helixRadius->value().getUserString(), - ui->helixAngle->value().getUserString(), + ui->helixPitch->value().getSafeUserString(), + ui->helixHeight->value().getSafeUserString(), + ui->helixRadius->value().getSafeUserString(), + ui->helixAngle->value().getSafeUserString(), QString::number(ui->helixLocalCS->currentIndex()), placement); } @@ -1281,9 +1281,9 @@ QString SpiralPrimitive::create(const QString& objectName, const QString& placem "App.ActiveDocument.%1.Placement=%5\n" "App.ActiveDocument.%1.Label='%6'\n") .arg(objectName, - ui->spiralGrowth->value().getUserString(), + ui->spiralGrowth->value().getSafeUserString(), QString::number(ui->spiralRotation->value()), - ui->spiralRadius->value().getUserString(), + ui->spiralRadius->value().getSafeUserString(), placement, DlgPrimitives::tr("Spiral")); } @@ -1296,9 +1296,9 @@ QString SpiralPrimitive::change(const QString& objectName, const QString& placem "%1.Radius='%4'\n" "%1.Placement=%5\n") .arg(objectName, - ui->spiralGrowth->value().getUserString(), + ui->spiralGrowth->value().getSafeUserString(), QString::number(ui->spiralRotation->value()), - ui->spiralRadius->value().getUserString(), + ui->spiralRadius->value().getSafeUserString(), placement); } @@ -1361,9 +1361,9 @@ QString CirclePrimitive::create(const QString& objectName, const QString& placem "App.ActiveDocument.%1.Placement=%5\n" "App.ActiveDocument.%1.Label='%6'\n") .arg(objectName, - ui->circleRadius->value().getUserString(), - ui->circleAngle1->value().getUserString(), - ui->circleAngle2->value().getUserString(), + ui->circleRadius->value().getSafeUserString(), + ui->circleAngle1->value().getSafeUserString(), + ui->circleAngle2->value().getSafeUserString(), placement, DlgPrimitives::tr("Circle")); } @@ -1376,9 +1376,9 @@ QString CirclePrimitive::change(const QString& objectName, const QString& placem "%1.Angle2='%4'\n" "%1.Placement=%5\n") .arg(objectName, - ui->circleRadius->value().getUserString(), - ui->circleAngle1->value().getUserString(), - ui->circleAngle2->value().getUserString(), + ui->circleRadius->value().getSafeUserString(), + ui->circleAngle1->value().getSafeUserString(), + ui->circleAngle2->value().getSafeUserString(), placement); } @@ -1446,10 +1446,10 @@ QString EllipsePrimitive::create(const QString& objectName, const QString& place "App.ActiveDocument.%1.Placement=%6\n" "App.ActiveDocument.%1.Label='%7'\n") .arg(objectName, - ui->ellipseMajorRadius->value().getUserString(), - ui->ellipseMinorRadius->value().getUserString(), - ui->ellipseAngle1->value().getUserString(), - ui->ellipseAngle2->value().getUserString(), + ui->ellipseMajorRadius->value().getSafeUserString(), + ui->ellipseMinorRadius->value().getSafeUserString(), + ui->ellipseAngle1->value().getSafeUserString(), + ui->ellipseAngle2->value().getSafeUserString(), placement, DlgPrimitives::tr("Ellipse")); } @@ -1463,10 +1463,10 @@ QString EllipsePrimitive::change(const QString& objectName, const QString& place "%1.Angle2='%5'\n" "%1.Placement=%6\n") .arg(objectName, - ui->ellipseMajorRadius->value().getUserString(), - ui->ellipseMinorRadius->value().getUserString(), - ui->ellipseAngle1->value().getUserString(), - ui->ellipseAngle2->value().getUserString(), + ui->ellipseMajorRadius->value().getSafeUserString(), + ui->ellipseMinorRadius->value().getSafeUserString(), + ui->ellipseAngle1->value().getSafeUserString(), + ui->ellipseAngle2->value().getSafeUserString(), placement); } @@ -1526,7 +1526,7 @@ QString PolygonPrimitive::create(const QString& objectName, const QString& place "App.ActiveDocument.%1.Label='%5'\n") .arg(objectName, QString::number(ui->regularPolygonPolygon->value()), - ui->regularPolygonCircumradius->value().getUserString(), + ui->regularPolygonCircumradius->value().getSafeUserString(), placement, DlgPrimitives::tr("Regular polygon")); } @@ -1539,7 +1539,7 @@ QString PolygonPrimitive::change(const QString& objectName, const QString& place "%1.Placement=%4\n") .arg(objectName, QString::number(ui->regularPolygonPolygon->value()), - ui->regularPolygonCircumradius->value().getUserString(), + ui->regularPolygonCircumradius->value().getSafeUserString(), placement); } @@ -1620,12 +1620,12 @@ QString LinePrimitive::create(const QString& objectName, const QString& placemen "App.ActiveDocument.%1.Placement=%8\n" "App.ActiveDocument.%1.Label='%9'\n") .arg(objectName, - ui->edgeX1->value().getUserString(), - ui->edgeY1->value().getUserString(), - ui->edgeZ1->value().getUserString(), - ui->edgeX2->value().getUserString(), - ui->edgeY2->value().getUserString(), - ui->edgeZ2->value().getUserString(), + ui->edgeX1->value().getSafeUserString(), + ui->edgeY1->value().getSafeUserString(), + ui->edgeZ1->value().getSafeUserString(), + ui->edgeX2->value().getSafeUserString(), + ui->edgeY2->value().getSafeUserString(), + ui->edgeZ2->value().getSafeUserString(), placement, DlgPrimitives::tr("Line")); } @@ -1641,12 +1641,12 @@ QString LinePrimitive::change(const QString& objectName, const QString& placemen "%1.Z2='%7'\n" "%1.Placement=%8\n") .arg(objectName, - ui->edgeX1->value().getUserString(), - ui->edgeY1->value().getUserString(), - ui->edgeZ1->value().getUserString(), - ui->edgeX2->value().getUserString(), - ui->edgeY2->value().getUserString(), - ui->edgeZ2->value().getUserString(), + ui->edgeX1->value().getSafeUserString(), + ui->edgeY1->value().getSafeUserString(), + ui->edgeZ1->value().getSafeUserString(), + ui->edgeX2->value().getSafeUserString(), + ui->edgeY2->value().getSafeUserString(), + ui->edgeZ2->value().getSafeUserString(), placement); } @@ -1721,9 +1721,9 @@ QString VertexPrimitive::create(const QString& objectName, const QString& placem "App.ActiveDocument.%1.Placement=%5\n" "App.ActiveDocument.%1.Label='%6'\n") .arg(objectName, - ui->vertexX->value().getUserString(), - ui->vertexY->value().getUserString(), - ui->vertexZ->value().getUserString(), + ui->vertexX->value().getSafeUserString(), + ui->vertexY->value().getSafeUserString(), + ui->vertexZ->value().getSafeUserString(), placement, DlgPrimitives::tr("Vertex")); } @@ -1736,9 +1736,9 @@ QString VertexPrimitive::change(const QString& objectName, const QString& placem "%1.Z='%4'\n" "%1.Placement=%5\n") .arg(objectName, - ui->vertexX->value().getUserString(), - ui->vertexY->value().getUserString(), - ui->vertexZ->value().getUserString(), + ui->vertexX->value().getSafeUserString(), + ui->vertexY->value().getSafeUserString(), + ui->vertexZ->value().getSafeUserString(), placement); } diff --git a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp index 78bfbf9c2c..c2fd4930e3 100644 --- a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp @@ -734,9 +734,9 @@ bool TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj) "%1.Width='%3'\n" "%1.Height='%4'\n") .arg(name, - ui->boxLength->value().getUserString(), - ui->boxWidth->value().getUserString(), - ui->boxHeight->value().getUserString()); + ui->boxLength->value().getSafeUserString(), + ui->boxWidth->value().getSafeUserString(), + ui->boxHeight->value().getSafeUserString()); break; case 2: // cylinder @@ -747,11 +747,11 @@ bool TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj) "%1.FirstAngle='%5'\n" "%1.SecondAngle='%6'\n") .arg(name, - ui->cylinderRadius->value().getUserString(), - ui->cylinderHeight->value().getUserString(), - ui->cylinderAngle->value().getUserString(), - ui->cylinderXSkew->value().getUserString(), - ui->cylinderYSkew->value().getUserString()); + ui->cylinderRadius->value().getSafeUserString(), + ui->cylinderHeight->value().getSafeUserString(), + ui->cylinderAngle->value().getSafeUserString(), + ui->cylinderXSkew->value().getSafeUserString(), + ui->cylinderYSkew->value().getSafeUserString()); break; case 3: // cone @@ -767,10 +767,10 @@ bool TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj) "%1.Height='%4'\n" "%1.Angle='%5'\n") .arg(name, - ui->coneRadius1->value().getUserString(), - ui->coneRadius2->value().getUserString(), - ui->coneHeight->value().getUserString(), - ui->coneAngle->value().getUserString()); + ui->coneRadius1->value().getSafeUserString(), + ui->coneRadius2->value().getSafeUserString(), + ui->coneHeight->value().getSafeUserString(), + ui->coneAngle->value().getSafeUserString()); break; case 4: // sphere @@ -780,10 +780,10 @@ bool TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj) "%1.Angle2='%4'\n" "%1.Angle3='%5'\n") .arg(name, - ui->sphereRadius->value().getUserString(), - ui->sphereAngle1->value().getUserString(), - ui->sphereAngle2->value().getUserString(), - ui->sphereAngle3->value().getUserString()); + ui->sphereRadius->value().getSafeUserString(), + ui->sphereAngle1->value().getSafeUserString(), + ui->sphereAngle2->value().getSafeUserString(), + ui->sphereAngle3->value().getSafeUserString()); break; case 5: // ellipsoid cmd = QString::fromLatin1( @@ -794,12 +794,12 @@ bool TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj) "%1.Angle2='%6'\n" "%1.Angle3='%7'\n") .arg(name, - ui->ellipsoidRadius1->value().getUserString(), - ui->ellipsoidRadius2->value().getUserString(), - ui->ellipsoidRadius3->value().getUserString(), - ui->ellipsoidAngle1->value().getUserString(), - ui->ellipsoidAngle2->value().getUserString(), - ui->ellipsoidAngle3->value().getUserString()); + ui->ellipsoidRadius1->value().getSafeUserString(), + ui->ellipsoidRadius2->value().getSafeUserString(), + ui->ellipsoidRadius3->value().getSafeUserString(), + ui->ellipsoidAngle1->value().getSafeUserString(), + ui->ellipsoidAngle2->value().getSafeUserString(), + ui->ellipsoidAngle3->value().getSafeUserString()); break; case 6: // torus @@ -810,11 +810,11 @@ bool TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj) "%1.Angle2='%5'\n" "%1.Angle3='%6'\n") .arg(name, - ui->torusRadius1->value().getUserString(), - ui->torusRadius2->value().getUserString(), - ui->torusAngle1->value().getUserString(), - ui->torusAngle2->value().getUserString(), - ui->torusAngle3->value().getUserString()); + ui->torusRadius1->value().getSafeUserString(), + ui->torusRadius2->value().getSafeUserString(), + ui->torusAngle1->value().getSafeUserString(), + ui->torusAngle2->value().getSafeUserString(), + ui->torusAngle3->value().getSafeUserString()); break; case 7: // prism cmd = QString::fromLatin1( @@ -825,10 +825,10 @@ bool TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj) "%1.SecondAngle='%6'\n") .arg(name, QString::number(ui->prismPolygon->value()), - ui->prismCircumradius->value().getUserString(), - ui->prismHeight->value().getUserString(), - ui->prismXSkew->value().getUserString(), - ui->prismYSkew->value().getUserString()); + ui->prismCircumradius->value().getSafeUserString(), + ui->prismHeight->value().getSafeUserString(), + ui->prismXSkew->value().getSafeUserString(), + ui->prismYSkew->value().getSafeUserString()); break; case 8: // wedge // Xmin/max, Ymin/max and Zmin/max must each not be equal @@ -859,16 +859,16 @@ bool TaskBoxPrimitives::setPrimitive(App::DocumentObject *obj) "%1.X2max='%10'\n" "%1.Z2max='%11'\n") .arg(name, - ui->wedgeXmin->value().getUserString(), - ui->wedgeYmin->value().getUserString(), - ui->wedgeZmin->value().getUserString(), - ui->wedgeX2min->value().getUserString(), - ui->wedgeZ2min->value().getUserString(), - ui->wedgeXmax->value().getUserString(), - ui->wedgeYmax->value().getUserString(), - ui->wedgeZmax->value().getUserString()) - .arg(ui->wedgeX2max->value().getUserString(), - ui->wedgeZ2max->value().getUserString()); + ui->wedgeXmin->value().getSafeUserString(), + ui->wedgeYmin->value().getSafeUserString(), + ui->wedgeZmin->value().getSafeUserString(), + ui->wedgeX2min->value().getSafeUserString(), + ui->wedgeZ2min->value().getSafeUserString(), + ui->wedgeXmax->value().getSafeUserString(), + ui->wedgeYmax->value().getSafeUserString(), + ui->wedgeZmax->value().getSafeUserString()) + .arg(ui->wedgeX2max->value().getSafeUserString(), + ui->wedgeZ2max->value().getSafeUserString()); break; default: