Base: Quantity: return std::string

This commit is contained in:
Ladislav Michl
2024-07-13 13:07:27 +02:00
committed by Yorik van Havre
parent c11b37e312
commit 2ea8a633ac
58 changed files with 573 additions and 592 deletions

View File

@@ -473,12 +473,12 @@ const std::string TaskFemConstraintContact::getReferences() const
const std::string TaskFemConstraintContact::getSlope() const
{
return ui->spbSlope->value().getSafeUserString().toStdString();
return ui->spbSlope->value().getSafeUserString();
}
const std::string TaskFemConstraintContact::getAdjust() const
{
return ui->spbAdjust->value().getSafeUserString().toStdString();
return ui->spbAdjust->value().getSafeUserString();
}
bool TaskFemConstraintContact::getFriction() const
@@ -493,7 +493,7 @@ double TaskFemConstraintContact::getFrictionCoeff() const
const std::string TaskFemConstraintContact::getStickSlope() const
{
return ui->spbStickSlope->value().getSafeUserString().toStdString();
return ui->spbStickSlope->value().getSafeUserString();
}
void TaskFemConstraintContact::changeEvent(QEvent*)

View File

@@ -378,32 +378,32 @@ const std::string TaskFemConstraintDisplacement::getReferences() const
std::string TaskFemConstraintDisplacement::get_spinxDisplacement() const
{
return ui->spinxDisplacement->value().getSafeUserString().toStdString();
return ui->spinxDisplacement->value().getSafeUserString();
}
std::string TaskFemConstraintDisplacement::get_spinyDisplacement() const
{
return ui->spinyDisplacement->value().getSafeUserString().toStdString();
return ui->spinyDisplacement->value().getSafeUserString();
}
std::string TaskFemConstraintDisplacement::get_spinzDisplacement() const
{
return ui->spinzDisplacement->value().getSafeUserString().toStdString();
return ui->spinzDisplacement->value().getSafeUserString();
}
std::string TaskFemConstraintDisplacement::get_spinxRotation() const
{
return ui->spinxRotation->value().getSafeUserString().toStdString();
return ui->spinxRotation->value().getSafeUserString();
}
std::string TaskFemConstraintDisplacement::get_spinyRotation() const
{
return ui->spinyRotation->value().getSafeUserString().toStdString();
return ui->spinyRotation->value().getSafeUserString();
}
std::string TaskFemConstraintDisplacement::get_spinzRotation() const
{
return ui->spinzRotation->value().getSafeUserString().toStdString();
return ui->spinzRotation->value().getSafeUserString();
}
std::string TaskFemConstraintDisplacement::get_xFormula() const

View File

@@ -338,7 +338,7 @@ void TaskFemConstraintForce::onCheckReverse(const bool pressed)
const std::string TaskFemConstraintForce::getForce() const
{
return ui->spinForce->value().getSafeUserString().toStdString();
return ui->spinForce->value().getSafeUserString();
}
const std::string TaskFemConstraintForce::getReferences() const

View File

@@ -401,29 +401,24 @@ const std::string TaskFemConstraintHeatflux::getReferences() const
std::string TaskFemConstraintHeatflux::getAmbientTemp() const
{
std::string temp;
if (ui->rb_convection->isChecked()) {
temp = ui->qsb_ambienttemp_conv->value().getSafeUserString().toStdString();
return ui->qsb_ambienttemp_conv->value().getSafeUserString();
}
else if (ui->rb_radiation->isChecked()) {
temp = ui->qsb_ambienttemp_rad->value().getSafeUserString().toStdString();
if (ui->rb_radiation->isChecked()) {
return ui->qsb_ambienttemp_rad->value().getSafeUserString();
}
else {
auto obj = ConstraintView->getObject<Fem::ConstraintHeatflux>();
temp = obj->AmbientTemp.getQuantityValue().getSafeUserString().toStdString();
}
return temp;
auto obj = ConstraintView->getObject<Fem::ConstraintHeatflux>();
return obj->AmbientTemp.getQuantityValue().getSafeUserString();
}
std::string TaskFemConstraintHeatflux::getFilmCoef() const
{
return ui->qsb_film_coef->value().getSafeUserString().toStdString();
return ui->qsb_film_coef->value().getSafeUserString();
}
std::string TaskFemConstraintHeatflux::getDFlux() const
{
return ui->qsb_heat_flux->value().getSafeUserString().toStdString();
return ui->qsb_heat_flux->value().getSafeUserString();
}
double TaskFemConstraintHeatflux::getEmissivity() const

View File

@@ -70,7 +70,7 @@ TaskFemConstraintInitialTemperature::~TaskFemConstraintInitialTemperature() = de
std::string TaskFemConstraintInitialTemperature::get_temperature() const
{
return ui->if_temperature->value().getSafeUserString().toStdString();
return ui->if_temperature->value().getSafeUserString();
}
void TaskFemConstraintInitialTemperature::changeEvent(QEvent*)

View File

@@ -250,7 +250,7 @@ const std::string TaskFemConstraintPressure::getReferences() const
std::string TaskFemConstraintPressure::getPressure() const
{
return ui->if_pressure->value().getSafeUserString().toStdString();
return ui->if_pressure->value().getSafeUserString();
}
bool TaskFemConstraintPressure::getReverse() const

View File

@@ -116,7 +116,7 @@ TaskFemConstraintRigidBody::TaskFemConstraintRigidBody(
Base::Vector3d rotDir;
double rotAngleRad;
pcConstraint->Rotation.getValue().getValue(rotDir, rotAngleRad);
Base::Quantity rotAngle(rotAngleRad, QString::fromUtf8("rad"));
Base::Quantity rotAngle(rotAngleRad, "rad");
Base::Quantity forceX = pcConstraint->ForceX.getQuantityValue();
Base::Quantity forceY = pcConstraint->ForceY.getQuantityValue();
Base::Quantity forceZ = pcConstraint->ForceZ.getQuantityValue();
@@ -581,18 +581,18 @@ Base::Rotation TaskFemConstraintRigidBody::getRotation() const
std::vector<std::string> TaskFemConstraintRigidBody::getForce() const
{
std::string x = ui->qsb_force_x->value().getSafeUserString().toStdString();
std::string y = ui->qsb_force_y->value().getSafeUserString().toStdString();
std::string z = ui->qsb_force_z->value().getSafeUserString().toStdString();
std::string x = ui->qsb_force_x->value().getSafeUserString();
std::string y = ui->qsb_force_y->value().getSafeUserString();
std::string z = ui->qsb_force_z->value().getSafeUserString();
return {x, y, z};
}
std::vector<std::string> TaskFemConstraintRigidBody::getMoment() const
{
std::string x = ui->qsb_moment_x->value().getSafeUserString().toStdString();
std::string y = ui->qsb_moment_y->value().getSafeUserString().toStdString();
std::string z = ui->qsb_moment_z->value().getSafeUserString().toStdString();
std::string x = ui->qsb_moment_x->value().getSafeUserString();
std::string y = ui->qsb_moment_y->value().getSafeUserString();
std::string z = ui->qsb_moment_z->value().getSafeUserString();
return std::vector<std::string>({x, y, z});
}

View File

@@ -248,12 +248,12 @@ const std::string TaskFemConstraintSpring::getReferences() const
std::string TaskFemConstraintSpring::getNormalStiffness() const
{
return ui->qsb_norm->value().getSafeUserString().toStdString();
return ui->qsb_norm->value().getSafeUserString();
}
std::string TaskFemConstraintSpring::getTangentialStiffness() const
{
return ui->qsb_tan->value().getSafeUserString().toStdString();
return ui->qsb_tan->value().getSafeUserString();
}
std::string TaskFemConstraintSpring::getElmerStiffness() const

View File

@@ -306,12 +306,12 @@ const std::string TaskFemConstraintTemperature::getReferences() const
std::string TaskFemConstraintTemperature::get_temperature() const
{
return ui->qsb_temperature->value().getSafeUserString().toStdString();
return ui->qsb_temperature->value().getSafeUserString();
}
std::string TaskFemConstraintTemperature::get_cflux() const
{
return ui->qsb_cflux->value().getSafeUserString().toStdString();
return ui->qsb_cflux->value().getSafeUserString();
}
std::string TaskFemConstraintTemperature::get_constraint_type() const

View File

@@ -118,7 +118,7 @@ TaskFemConstraintTransform::TaskFemConstraintTransform(
ui->spb_rot_axis_x->setValue(axis.x);
ui->spb_rot_axis_y->setValue(axis.y);
ui->spb_rot_axis_z->setValue(axis.z);
Base::Quantity rotAngle(angle, QString::fromUtf8("rad"));
Base::Quantity rotAngle(angle, "rad");
ui->qsb_rot_angle->setValue(rotAngle.getValueAs(Base::Quantity::Degree));
ui->spb_rot_axis_x->bind(
@@ -406,7 +406,7 @@ void TaskFemConstraintTransform::addToSelection()
ui->spb_rot_axis_x->setValue(axis.x);
ui->spb_rot_axis_y->setValue(axis.y);
ui->spb_rot_axis_z->setValue(axis.z);
Base::Quantity rotAngle(angle, QString::fromUtf8("rad"));
Base::Quantity rotAngle(angle, "rad");
ui->qsb_rot_angle->setValue(rotAngle.getValueAs(Base::Quantity::Degree));
}
}

View File

@@ -115,8 +115,7 @@ std::shared_ptr<Material2DArray> MaterialYamlEntry::read2DArray(const YAML::Node
auto row = std::make_shared<QList<QVariant>>();
for (std::size_t j = 0; j < yamlRow.size(); j++) {
Base::Quantity qq =
Base::Quantity::parse(QString::fromStdString(yamlRow[j].as<std::string>()));
Base::Quantity qq = Base::Quantity::parse(yamlRow[j].as<std::string>());
qq.setFormat(MaterialValue::getQuantityFormat());
row->push_back(QVariant::fromValue(qq));
}
@@ -142,10 +141,8 @@ std::shared_ptr<Material3DArray> MaterialYamlEntry::read3DArray(const YAML::Node
for (std::size_t depth = 0; depth < yamlArray.size(); depth++) {
auto yamlDepth = yamlArray[depth];
for (auto it = yamlDepth.begin(); it != yamlDepth.end(); it++) {
auto depthValue =
Base::Quantity::parse(QString::fromStdString(it->first.as<std::string>()));
auto depthValue = Base::Quantity::parse(it->first.as<std::string>());
depthValue.setFormat(MaterialValue::getQuantityFormat());
array3d->addDepth(depth, depthValue);
auto yamlTable = it->second;
@@ -154,8 +151,7 @@ std::shared_ptr<Material3DArray> MaterialYamlEntry::read3DArray(const YAML::Node
auto row = std::make_shared<QList<Base::Quantity>>();
for (std::size_t j = 0; j < yamlRow.size(); j++) {
auto qq = Base::Quantity::parse(
QString::fromStdString(yamlRow[j].as<std::string>()));
auto qq = Base::Quantity::parse(yamlRow[j].as<std::string>());
qq.setFormat(MaterialValue::getQuantityFormat());
row->push_back(qq);
}

View File

@@ -288,7 +288,7 @@ QString MaterialValue::getYAMLString() const
}
if (getType() == MaterialValue::Quantity) {
auto quantity = getValue().value<Base::Quantity>();
yaml += quantity.getUserString();
yaml += QString::fromStdString(quantity.getUserString());
}
else if (getType() == MaterialValue::Float) {
auto value = getValue();
@@ -500,7 +500,7 @@ QString Material2DArray::getYAMLString() const
}
yaml += QString::fromStdString("\"");
auto quantity = column.value<Base::Quantity>();
yaml += quantity.getUserString();
yaml += QString::fromStdString(quantity.getUserString());
yaml += QString::fromStdString("\"");
}
@@ -814,7 +814,7 @@ QString Material3DArray::getYAMLString() const
}
yaml += QString::fromStdString("\"");
auto value = getDepthValue(depth).getUserString();
auto value = QString::fromStdString(getDepthValue(depth).getUserString());
yaml += value;
yaml += QString::fromStdString("\": [");
@@ -844,7 +844,7 @@ QString Material3DArray::getYAMLString() const
}
yaml += QString::fromStdString("\"");
// Base::Quantity quantity = column.value<Base::Quantity>();
yaml += column.getUserString();
yaml += QString::fromStdString(column.getUserString());
yaml += QString::fromStdString("\"");
}

View File

@@ -125,7 +125,7 @@ QString MaterialProperty::getString() const
}
if (getType() == MaterialValue::Quantity) {
auto quantity = getValue().value<Base::Quantity>();
return quantity.getUserString();
return QString::fromStdString(quantity.getUserString());
}
if (getType() == MaterialValue::Float) {
auto value = getValue();
@@ -266,7 +266,7 @@ QVariant MaterialProperty::getColumnNull(int column) const
switch (valueType) {
case MaterialValue::Quantity: {
Base::Quantity quant = Base::Quantity(0, getColumnUnits(column));
Base::Quantity quant = Base::Quantity(0, getColumnUnits(column).toStdString());
return QVariant::fromValue(quant);
}
@@ -306,7 +306,7 @@ void MaterialProperty::setValue(const QString& value)
}
else if (_valuePtr->getType() == MaterialValue::Quantity) {
try {
setQuantity(Base::Quantity::parse(value));
setQuantity(Base::Quantity::parse(value.toStdString()));
}
catch (const Base::ParserError& e) {
Base::Console().Log("MaterialProperty::setValue Error '%s' - '%s'\n",
@@ -392,12 +392,12 @@ void MaterialProperty::setQuantity(const Base::Quantity& value)
void MaterialProperty::setQuantity(double value, const QString& units)
{
setQuantity(Base::Quantity(value, units));
setQuantity(Base::Quantity(value, units.toStdString()));
}
void MaterialProperty::setQuantity(const QString& value)
{
setQuantity(Base::Quantity::parse(value));
setQuantity(Base::Quantity::parse(value.toStdString()));
}
void MaterialProperty::setList(const QList<QVariant>& value)
@@ -1038,7 +1038,7 @@ Material::getValueString(const std::map<QString, std::shared_ptr<MaterialPropert
if (value.isNull()) {
return {};
}
return value.value<Base::Quantity>().getUserString();
return QString::fromStdString(value.value<Base::Quantity>().getUserString());
}
if (property->getType() == MaterialValue::Float) {
auto value = property->getValue();

View File

@@ -72,16 +72,13 @@ void ArrayDelegate::paint(QPainter* painter,
auto* tableModel = dynamic_cast<const AbstractArrayModel*>(index.model());
painter->save();
if (tableModel->newRow(index)) {
painter->drawText(option.rect, 0, QString());
}
else {
QString text;
if (!tableModel->newRow(index)) {
QVariant item = tableModel->data(index);
auto quantity = item.value<Base::Quantity>();
QString text = quantity.getUserString();
painter->drawText(option.rect, 0, text);
text = QString::fromStdString(quantity.getUserString());
}
painter->drawText(option.rect, 0, text);
painter->restore();
}
else {

View File

@@ -93,7 +93,7 @@ QVariant Array2DModel::data(const QModelIndex& index, int role) const
try {
auto column = _property->getColumnType(index.column());
if (column == Materials::MaterialValue::Quantity) {
Base::Quantity qq = Base::Quantity(0, _property->getColumnUnits(index.column()));
Base::Quantity qq = Base::Quantity(0, _property->getColumnUnits(index.column()).toStdString());
qq.setFormat(Materials::MaterialValue::getQuantityFormat());
return QVariant::fromValue(qq);
}
@@ -237,7 +237,7 @@ QVariant Array3DDepthModel::data(const QModelIndex& index, int role) const
}
try {
Base::Quantity qq = Base::Quantity(0, _property->getColumnUnits(0));
Base::Quantity qq = Base::Quantity(0, _property->getColumnUnits(0).toStdString());
qq.setFormat(Materials::MaterialValue::getQuantityFormat());
return QVariant::fromValue(qq);
}
@@ -293,7 +293,7 @@ bool Array3DDepthModel::insertRows(int row, int count, const QModelIndex& parent
beginInsertRows(parent, row, row + count - 1);
for (int i = 0; i < count; i++) {
auto qq = Base::Quantity(0, _property->getColumnUnits(0));
auto qq = Base::Quantity(0, _property->getColumnUnits(0).toStdString());
qq.setFormat(Materials::MaterialValue::getQuantityFormat());
_value->addDepth(row, qq);
}
@@ -395,7 +395,7 @@ QVariant Array3DModel::data(const QModelIndex& index, int role) const
}
try {
Base::Quantity qq = Base::Quantity(0, _property->getColumnUnits(index.column() + 1));
Base::Quantity qq = Base::Quantity(0, _property->getColumnUnits(index.column() + 1).toStdString());
qq.setFormat(Materials::MaterialValue::getQuantityFormat());
return QVariant::fromValue(qq);
}

View File

@@ -103,15 +103,13 @@ void BaseDelegate::paintQuantity(QPainter* painter,
painter->drawText(option.rect, 0, QString());
}
else {
QString text;
QVariant item = getValue(index);
auto quantity = item.value<Base::Quantity>();
if (quantity.isValid()) {
QString text = quantity.getUserString();
painter->drawText(option.rect, 0, text);
}
else {
painter->drawText(option.rect, 0, QString());
text = QString::fromStdString(quantity.getUserString());
}
painter->drawText(option.rect, 0, text);
}
painter->restore();

View File

@@ -180,7 +180,8 @@ QString MeasureBase::getResultString()
}
if (prop->isDerivedFrom(App::PropertyQuantity::getClassTypeId())) {
return static_cast<App::PropertyQuantity*>(prop)->getQuantityValue().getUserString();
return QString::fromStdString(
static_cast<App::PropertyQuantity*>(prop)->getQuantityValue().getUserString());
}

View File

@@ -179,12 +179,23 @@ void QuickMeasure::addSelectionToMeasurement()
}
}
static QString areaStr(double value)
{
Base::Quantity area(value, Base::Unit::Area);
return QString::fromStdString(area.getUserString());
}
static QString lenghtStr(double value)
{
Base::Quantity dist(value, Base::Unit::Length);
return QString::fromStdString(dist.getUserString());
}
void QuickMeasure::printResult()
{
MeasureType mtype = measurement->getType();
if (mtype == MeasureType::Surfaces) {
Base::Quantity area(measurement->area(), Base::Unit::Area);
print(tr("Total area: %1").arg(area.getUserString()));
print(tr("Total area: %1").arg(areaStr(measurement->area())));
}
/* deactivated because computing the volumes/area of solids makes a significant
slow down in selection of complex solids.
@@ -195,48 +206,37 @@ void QuickMeasure::printResult()
%2").arg(vol.getSafeUserString()).arg(area.getSafeUserString()));
}*/
else if (mtype == MeasureType::TwoPlanes) {
Base::Quantity dist(measurement->planePlaneDistance(), Base::Unit::Length);
print(tr("Nominal distance: %1").arg(dist.getSafeUserString()));
print(tr("Nominal distance: %1").arg(lenghtStr(measurement->planePlaneDistance())));
}
else if (mtype == MeasureType::Cone || mtype == MeasureType::Plane) {
Base::Quantity area(measurement->area(), Base::Unit::Area);
print(tr("Area: %1").arg(area.getUserString()));
print(tr("Area: %1").arg(areaStr(measurement->area())));
}
else if (mtype == MeasureType::Cylinder || mtype == MeasureType::Sphere
|| mtype == MeasureType::Torus) {
Base::Quantity area(measurement->area(), Base::Unit::Area);
Base::Quantity rad(measurement->radius(), Base::Unit::Length);
print(tr("Area: %1, Radius: %2").arg(area.getSafeUserString(), rad.getSafeUserString()));
print(tr("Area: %1, Radius: %2")
.arg(areaStr(measurement->area()), lenghtStr(measurement->radius())));
}
else if (mtype == MeasureType::Edges) {
Base::Quantity dist(measurement->length(), Base::Unit::Length);
print(tr("Total length: %1").arg(dist.getSafeUserString()));
print(tr("Total length: %1").arg(lenghtStr(measurement->length())));
}
else if (mtype == MeasureType::TwoParallelLines) {
Base::Quantity dist(measurement->lineLineDistance(), Base::Unit::Length);
print(tr("Nominal distance: %1").arg(dist.getSafeUserString()));
print(tr("Nominal distance: %1").arg(lenghtStr(measurement->lineLineDistance())));
}
else if (mtype == MeasureType::TwoLines) {
Base::Quantity angle(measurement->angle(), Base::Unit::Length);
Base::Quantity dist(measurement->length(), Base::Unit::Length);
print(tr("Angle: %1, Total length: %2")
.arg(angle.getSafeUserString(), dist.getSafeUserString()));
.arg(lenghtStr(measurement->angle()), lenghtStr(measurement->length())));
}
else if (mtype == MeasureType::Line) {
Base::Quantity dist(measurement->length(), Base::Unit::Length);
print(tr("Length: %1").arg(dist.getSafeUserString()));
print(tr("Length: %1").arg(lenghtStr(measurement->length())));
}
else if (mtype == MeasureType::Circle) {
Base::Quantity dist(measurement->radius(), Base::Unit::Length);
print(tr("Radius: %1").arg(dist.getSafeUserString()));
print(tr("Radius: %1").arg(lenghtStr(measurement->radius())));
}
else if (mtype == MeasureType::PointToPoint) {
Base::Quantity dist(measurement->length(), Base::Unit::Length);
print(tr("Distance: %1").arg(dist.getSafeUserString()));
print(tr("Distance: %1").arg(lenghtStr(measurement->length())));
}
else if (mtype == MeasureType::PointToEdge || mtype == MeasureType::PointToSurface) {
Base::Quantity dist(measurement->length(), Base::Unit::Length);
print(tr("Minimum distance: %1").arg(dist.getSafeUserString()));
print(tr("Minimum distance: %1").arg(lenghtStr(measurement->length())));
}
else {
print(QString::fromLatin1(""));

View File

@@ -263,7 +263,7 @@ void ViewProviderMeasureBase::draggerChangedCallback(void* data, SoDragger*)
void ViewProviderMeasureBase::setLabelValue(const Base::Quantity& value)
{
pLabel->string.setValue(value.getUserString().toUtf8().constData());
pLabel->string.setValue(value.getUserString().c_str());
}
void ViewProviderMeasureBase::setLabelValue(const QString& value)

View File

@@ -478,23 +478,23 @@ void ViewProviderMeasureDistance::redrawAnnotation()
auto propDistance =
dynamic_cast<App::PropertyDistance*>(pcObject->getPropertyByName("Distance"));
setLabelValue(propDistance->getQuantityValue().getUserString());
setLabelValue(QString::fromStdString(propDistance->getQuantityValue().getUserString()));
// Set delta distance
auto propDistanceX =
static_cast<App::PropertyDistance*>(getMeasureObject()->getPropertyByName("DistanceX"));
static_cast<DimensionLinear*>(pDeltaDimensionSwitch->getChild(0))
->text.setValue("Δx: " + propDistanceX->getQuantityValue().getUserString().toUtf8());
->text.setValue(("Δx: " + propDistanceX->getQuantityValue().getUserString()).c_str());
auto propDistanceY =
static_cast<App::PropertyDistance*>(getMeasureObject()->getPropertyByName("DistanceY"));
static_cast<DimensionLinear*>(pDeltaDimensionSwitch->getChild(1))
->text.setValue("Δy: " + propDistanceY->getQuantityValue().getUserString().toUtf8());
->text.setValue(("Δy: " + propDistanceY->getQuantityValue().getUserString()).c_str());
auto propDistanceZ =
static_cast<App::PropertyDistance*>(getMeasureObject()->getPropertyByName("DistanceZ"));
static_cast<DimensionLinear*>(pDeltaDimensionSwitch->getChild(2))
->text.setValue("Δz: " + propDistanceZ->getQuantityValue().getUserString().toUtf8());
->text.setValue(("Δz: " + propDistanceZ->getQuantityValue().getUserString()).c_str());
// Set matrix
SbMatrix matrix = getMatrix();
@@ -529,7 +529,6 @@ void ViewProviderMeasureDistance::onChanged(const App::Property* prop)
->backgroundColor.setValue(bColor.r, bColor.g, bColor.g);
}
ViewProviderMeasureBase::onChanged(prop);
}

View File

@@ -155,7 +155,7 @@ QVariant FilletRadiusModel::data(const QModelIndex& index, int role) const
QVariant value = QStandardItemModel::data(index, role);
if (role == Qt::DisplayRole && index.column() >= 1) {
Base::Quantity q = value.value<Base::Quantity>();
QString str = q.getUserString();
QString str = QString::fromStdString(q.getUserString());
return str;
}
return value;

View File

@@ -111,6 +111,11 @@ const char* gce_ErrorStatusText(gce_ErrorType et)
}
}
static QString safeQuantityQString(Gui::QuantitySpinBox *qs)
{
return QString::fromStdString(qs->value().getSafeUserString());
}
void Picker::createPrimitive(QWidget* widget, const QString& descr, Gui::Document* doc)
{
try {
@@ -268,8 +273,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().getSafeUserString(),
ui->planeWidth->value().getSafeUserString(),
safeQuantityQString(ui->planeLength),
safeQuantityQString(ui->planeWidth),
placement,
DlgPrimitives::tr("Plane"));
}
@@ -281,8 +286,8 @@ QString PlanePrimitive::change(const QString& objectName, const QString& placeme
"%1.Width='%3'\n"
"%1.Placement=%4\n")
.arg(objectName,
ui->planeLength->value().getSafeUserString(),
ui->planeWidth->value().getSafeUserString(),
safeQuantityQString(ui->planeLength),
safeQuantityQString(ui->planeWidth),
placement);
}
@@ -342,9 +347,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().getSafeUserString(),
ui->boxWidth->value().getSafeUserString(),
ui->boxHeight->value().getSafeUserString(),
safeQuantityQString(ui->boxLength),
safeQuantityQString(ui->boxWidth),
safeQuantityQString(ui->boxHeight),
placement,
DlgPrimitives::tr("Box"));
}
@@ -357,9 +362,9 @@ QString BoxPrimitive::change(const QString& objectName, const QString& placement
"%1.Height='%4'\n"
"%1.Placement=%5\n")
.arg(objectName,
ui->boxLength->value().getSafeUserString(),
ui->boxWidth->value().getSafeUserString(),
ui->boxHeight->value().getSafeUserString(),
safeQuantityQString(ui->boxLength),
safeQuantityQString(ui->boxWidth),
safeQuantityQString(ui->boxHeight),
placement);
}
@@ -430,11 +435,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().getSafeUserString(),
ui->cylinderHeight->value().getSafeUserString(),
ui->cylinderAngle->value().getSafeUserString(),
ui->cylinderXSkew->value().getSafeUserString(),
ui->cylinderYSkew->value().getSafeUserString(),
safeQuantityQString(ui->cylinderRadius),
safeQuantityQString(ui->cylinderHeight),
safeQuantityQString(ui->cylinderAngle),
safeQuantityQString(ui->cylinderXSkew),
safeQuantityQString(ui->cylinderYSkew),
placement,
DlgPrimitives::tr("Cylinder"));
}
@@ -449,11 +454,11 @@ QString CylinderPrimitive::change(const QString& objectName, const QString& plac
"%1.SecondAngle='%6'\n"
"%1.Placement=%7\n")
.arg(objectName,
ui->cylinderRadius->value().getSafeUserString(),
ui->cylinderHeight->value().getSafeUserString(),
ui->cylinderAngle->value().getSafeUserString(),
ui->cylinderXSkew->value().getSafeUserString(),
ui->cylinderYSkew->value().getSafeUserString(),
safeQuantityQString(ui->cylinderRadius),
safeQuantityQString(ui->cylinderHeight),
safeQuantityQString(ui->cylinderAngle),
safeQuantityQString(ui->cylinderXSkew),
safeQuantityQString(ui->cylinderYSkew),
placement);
}
@@ -527,10 +532,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().getSafeUserString(),
ui->coneRadius2->value().getSafeUserString(),
ui->coneHeight->value().getSafeUserString(),
ui->coneAngle->value().getSafeUserString(),
safeQuantityQString(ui->coneRadius1),
safeQuantityQString(ui->coneRadius2),
safeQuantityQString(ui->coneHeight),
safeQuantityQString(ui->coneAngle),
placement,
DlgPrimitives::tr("Cone"));
}
@@ -544,10 +549,10 @@ QString ConePrimitive::change(const QString& objectName, const QString& placemen
"%1.Angle='%5'\n"
"%1.Placement=%6\n")
.arg(objectName,
ui->coneRadius1->value().getSafeUserString(),
ui->coneRadius2->value().getSafeUserString(),
ui->coneHeight->value().getSafeUserString(),
ui->coneAngle->value().getSafeUserString(),
safeQuantityQString(ui->coneRadius1),
safeQuantityQString(ui->coneRadius2),
safeQuantityQString(ui->coneHeight),
safeQuantityQString(ui->coneAngle),
placement);
}
@@ -618,10 +623,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().getSafeUserString(),
ui->sphereAngle1->value().getSafeUserString(),
ui->sphereAngle2->value().getSafeUserString(),
ui->sphereAngle3->value().getSafeUserString(),
safeQuantityQString(ui->sphereRadius),
safeQuantityQString(ui->sphereAngle1),
safeQuantityQString(ui->sphereAngle2),
safeQuantityQString(ui->sphereAngle3),
placement,
DlgPrimitives::tr("Sphere"));
}
@@ -635,10 +640,10 @@ QString SpherePrimitive::change(const QString& objectName, const QString& placem
"%1.Angle3='%5'\n"
"%1.Placement=%6\n")
.arg(objectName,
ui->sphereRadius->value().getSafeUserString(),
ui->sphereAngle1->value().getSafeUserString(),
ui->sphereAngle2->value().getSafeUserString(),
ui->sphereAngle3->value().getSafeUserString(),
safeQuantityQString(ui->sphereRadius),
safeQuantityQString(ui->sphereAngle1),
safeQuantityQString(ui->sphereAngle2),
safeQuantityQString(ui->sphereAngle3),
placement);
}
@@ -720,12 +725,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().getSafeUserString(),
ui->ellipsoidRadius2->value().getSafeUserString(),
ui->ellipsoidRadius3->value().getSafeUserString(),
ui->ellipsoidAngle1->value().getSafeUserString(),
ui->ellipsoidAngle2->value().getSafeUserString(),
ui->ellipsoidAngle3->value().getSafeUserString(),
safeQuantityQString(ui->ellipsoidRadius1),
safeQuantityQString(ui->ellipsoidRadius2),
safeQuantityQString(ui->ellipsoidRadius3),
safeQuantityQString(ui->ellipsoidAngle1),
safeQuantityQString(ui->ellipsoidAngle2),
safeQuantityQString(ui->ellipsoidAngle3),
placement,
DlgPrimitives::tr("Ellipsoid"));
}
@@ -741,12 +746,12 @@ QString EllipsoidPrimitive::change(const QString& objectName, const QString& pla
"%1.Angle3='%7'\n"
"%1.Placement=%8\n")
.arg(objectName,
ui->ellipsoidRadius1->value().getSafeUserString(),
ui->ellipsoidRadius2->value().getSafeUserString(),
ui->ellipsoidRadius3->value().getSafeUserString(),
ui->ellipsoidAngle1->value().getSafeUserString(),
ui->ellipsoidAngle2->value().getSafeUserString(),
ui->ellipsoidAngle3->value().getSafeUserString(),
safeQuantityQString(ui->ellipsoidRadius1),
safeQuantityQString(ui->ellipsoidRadius2),
safeQuantityQString(ui->ellipsoidRadius3),
safeQuantityQString(ui->ellipsoidAngle1),
safeQuantityQString(ui->ellipsoidAngle2),
safeQuantityQString(ui->ellipsoidAngle3),
placement);
}
@@ -828,11 +833,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().getSafeUserString(),
ui->torusRadius2->value().getSafeUserString(),
ui->torusAngle1->value().getSafeUserString(),
ui->torusAngle2->value().getSafeUserString(),
ui->torusAngle3->value().getSafeUserString(),
safeQuantityQString(ui->torusRadius1),
safeQuantityQString(ui->torusRadius2),
safeQuantityQString(ui->torusAngle1),
safeQuantityQString(ui->torusAngle2),
safeQuantityQString(ui->torusAngle3),
placement,
DlgPrimitives::tr("Torus"));
}
@@ -847,11 +852,11 @@ QString TorusPrimitive::change(const QString& objectName, const QString& placeme
"%1.Angle3='%6'\n"
"%1.Placement=%7\n")
.arg(objectName,
ui->torusRadius1->value().getSafeUserString(),
ui->torusRadius2->value().getSafeUserString(),
ui->torusAngle1->value().getSafeUserString(),
ui->torusAngle2->value().getSafeUserString(),
ui->torusAngle3->value().getSafeUserString(),
safeQuantityQString(ui->torusRadius1),
safeQuantityQString(ui->torusRadius2),
safeQuantityQString(ui->torusAngle1),
safeQuantityQString(ui->torusAngle2),
safeQuantityQString(ui->torusAngle3),
placement);
}
@@ -927,10 +932,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().getSafeUserString(),
ui->prismHeight->value().getSafeUserString(),
ui->prismXSkew->value().getSafeUserString(),
ui->prismYSkew->value().getSafeUserString(),
safeQuantityQString(ui->prismCircumradius),
safeQuantityQString(ui->prismHeight),
safeQuantityQString(ui->prismXSkew),
safeQuantityQString(ui->prismYSkew),
placement,
DlgPrimitives::tr("Prism"));
}
@@ -946,10 +951,10 @@ QString PrismPrimitive::change(const QString& objectName, const QString& placeme
"%1.Placement=%7\n")
.arg(objectName,
QString::number(ui->prismPolygon->value()),
ui->prismCircumradius->value().getSafeUserString(),
ui->prismHeight->value().getSafeUserString(),
ui->prismXSkew->value().getSafeUserString(),
ui->prismYSkew->value().getSafeUserString(),
safeQuantityQString(ui->prismCircumradius),
safeQuantityQString(ui->prismHeight),
safeQuantityQString(ui->prismXSkew),
safeQuantityQString(ui->prismYSkew),
placement);
}
@@ -1063,16 +1068,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().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(),
safeQuantityQString(ui->wedgeXmin),
safeQuantityQString(ui->wedgeYmin),
safeQuantityQString(ui->wedgeZmin),
safeQuantityQString(ui->wedgeX2min),
safeQuantityQString(ui->wedgeZ2min),
safeQuantityQString(ui->wedgeXmax),
safeQuantityQString(ui->wedgeYmax))
.arg(safeQuantityQString(ui->wedgeZmax),
safeQuantityQString(ui->wedgeX2max),
safeQuantityQString(ui->wedgeZ2max),
placement,
DlgPrimitives::tr("Wedge"));
}
@@ -1092,16 +1097,16 @@ QString WedgePrimitive::change(const QString& objectName, const QString& placeme
"%1.Z2max='%11'\n"
"%1.Placement=%12\n")
.arg(objectName,
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(),
safeQuantityQString(ui->wedgeXmin),
safeQuantityQString(ui->wedgeYmin),
safeQuantityQString(ui->wedgeZmin),
safeQuantityQString(ui->wedgeX2min),
safeQuantityQString(ui->wedgeZ2min),
safeQuantityQString(ui->wedgeXmax),
safeQuantityQString(ui->wedgeYmax),
safeQuantityQString(ui->wedgeZmax))
.arg(safeQuantityQString(ui->wedgeX2max),
safeQuantityQString(ui->wedgeZ2max),
placement);
}
@@ -1194,10 +1199,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().getSafeUserString(),
ui->helixHeight->value().getSafeUserString(),
ui->helixRadius->value().getSafeUserString(),
ui->helixAngle->value().getSafeUserString(),
safeQuantityQString(ui->helixPitch),
safeQuantityQString(ui->helixHeight),
safeQuantityQString(ui->helixRadius),
safeQuantityQString(ui->helixAngle),
QString::number(ui->helixLocalCS->currentIndex()),
placement,
DlgPrimitives::tr("Helix"));
@@ -1213,10 +1218,10 @@ QString HelixPrimitive::change(const QString& objectName, const QString& placeme
"%1.LocalCoord=%6\n"
"%1.Placement=%7\n")
.arg(objectName,
ui->helixPitch->value().getSafeUserString(),
ui->helixHeight->value().getSafeUserString(),
ui->helixRadius->value().getSafeUserString(),
ui->helixAngle->value().getSafeUserString(),
safeQuantityQString(ui->helixPitch),
safeQuantityQString(ui->helixHeight),
safeQuantityQString(ui->helixRadius),
safeQuantityQString(ui->helixAngle),
QString::number(ui->helixLocalCS->currentIndex()),
placement);
}
@@ -1285,9 +1290,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().getSafeUserString(),
safeQuantityQString(ui->spiralGrowth),
QString::number(ui->spiralRotation->value()),
ui->spiralRadius->value().getSafeUserString(),
safeQuantityQString(ui->spiralRadius),
placement,
DlgPrimitives::tr("Spiral"));
}
@@ -1300,9 +1305,9 @@ QString SpiralPrimitive::change(const QString& objectName, const QString& placem
"%1.Radius='%4'\n"
"%1.Placement=%5\n")
.arg(objectName,
ui->spiralGrowth->value().getSafeUserString(),
safeQuantityQString(ui->spiralGrowth),
QString::number(ui->spiralRotation->value()),
ui->spiralRadius->value().getSafeUserString(),
safeQuantityQString(ui->spiralRadius),
placement);
}
@@ -1365,9 +1370,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().getSafeUserString(),
ui->circleAngle1->value().getSafeUserString(),
ui->circleAngle2->value().getSafeUserString(),
safeQuantityQString(ui->circleRadius),
safeQuantityQString(ui->circleAngle1),
safeQuantityQString(ui->circleAngle2),
placement,
DlgPrimitives::tr("Circle"));
}
@@ -1380,9 +1385,9 @@ QString CirclePrimitive::change(const QString& objectName, const QString& placem
"%1.Angle2='%4'\n"
"%1.Placement=%5\n")
.arg(objectName,
ui->circleRadius->value().getSafeUserString(),
ui->circleAngle1->value().getSafeUserString(),
ui->circleAngle2->value().getSafeUserString(),
safeQuantityQString(ui->circleRadius),
safeQuantityQString(ui->circleAngle1),
safeQuantityQString(ui->circleAngle2),
placement);
}
@@ -1450,10 +1455,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().getSafeUserString(),
ui->ellipseMinorRadius->value().getSafeUserString(),
ui->ellipseAngle1->value().getSafeUserString(),
ui->ellipseAngle2->value().getSafeUserString(),
safeQuantityQString(ui->ellipseMajorRadius),
safeQuantityQString(ui->ellipseMinorRadius),
safeQuantityQString(ui->ellipseAngle1),
safeQuantityQString(ui->ellipseAngle2),
placement,
DlgPrimitives::tr("Ellipse"));
}
@@ -1467,10 +1472,10 @@ QString EllipsePrimitive::change(const QString& objectName, const QString& place
"%1.Angle2='%5'\n"
"%1.Placement=%6\n")
.arg(objectName,
ui->ellipseMajorRadius->value().getSafeUserString(),
ui->ellipseMinorRadius->value().getSafeUserString(),
ui->ellipseAngle1->value().getSafeUserString(),
ui->ellipseAngle2->value().getSafeUserString(),
safeQuantityQString(ui->ellipseMajorRadius),
safeQuantityQString(ui->ellipseMinorRadius),
safeQuantityQString(ui->ellipseAngle1),
safeQuantityQString(ui->ellipseAngle2),
placement);
}
@@ -1530,7 +1535,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().getSafeUserString(),
safeQuantityQString(ui->regularPolygonCircumradius),
placement,
DlgPrimitives::tr("Regular polygon"));
}
@@ -1543,7 +1548,7 @@ QString PolygonPrimitive::change(const QString& objectName, const QString& place
"%1.Placement=%4\n")
.arg(objectName,
QString::number(ui->regularPolygonPolygon->value()),
ui->regularPolygonCircumradius->value().getSafeUserString(),
safeQuantityQString(ui->regularPolygonCircumradius),
placement);
}
@@ -1624,12 +1629,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().getSafeUserString(),
ui->edgeY1->value().getSafeUserString(),
ui->edgeZ1->value().getSafeUserString(),
ui->edgeX2->value().getSafeUserString(),
ui->edgeY2->value().getSafeUserString(),
ui->edgeZ2->value().getSafeUserString(),
safeQuantityQString(ui->edgeX1),
safeQuantityQString(ui->edgeY1),
safeQuantityQString(ui->edgeZ1),
safeQuantityQString(ui->edgeX2),
safeQuantityQString(ui->edgeY2),
safeQuantityQString(ui->edgeZ2),
placement,
DlgPrimitives::tr("Line"));
}
@@ -1645,12 +1650,12 @@ QString LinePrimitive::change(const QString& objectName, const QString& placemen
"%1.Z2='%7'\n"
"%1.Placement=%8\n")
.arg(objectName,
ui->edgeX1->value().getSafeUserString(),
ui->edgeY1->value().getSafeUserString(),
ui->edgeZ1->value().getSafeUserString(),
ui->edgeX2->value().getSafeUserString(),
ui->edgeY2->value().getSafeUserString(),
ui->edgeZ2->value().getSafeUserString(),
safeQuantityQString(ui->edgeX1),
safeQuantityQString(ui->edgeY1),
safeQuantityQString(ui->edgeZ1),
safeQuantityQString(ui->edgeX2),
safeQuantityQString(ui->edgeY2),
safeQuantityQString(ui->edgeZ2),
placement);
}
@@ -1725,9 +1730,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().getSafeUserString(),
ui->vertexY->value().getSafeUserString(),
ui->vertexZ->value().getSafeUserString(),
safeQuantityQString(ui->vertexX),
safeQuantityQString(ui->vertexY),
safeQuantityQString(ui->vertexZ),
placement,
DlgPrimitives::tr("Vertex"));
}
@@ -1740,9 +1745,9 @@ QString VertexPrimitive::change(const QString& objectName, const QString& placem
"%1.Z='%4'\n"
"%1.Placement=%5\n")
.arg(objectName,
ui->vertexX->value().getSafeUserString(),
ui->vertexY->value().getSafeUserString(),
ui->vertexZ->value().getSafeUserString(),
safeQuantityQString(ui->vertexX),
safeQuantityQString(ui->vertexY),
safeQuantityQString(ui->vertexZ),
placement);
}

View File

@@ -811,103 +811,103 @@ void TaskBoxPrimitives::onWedgeZmaxChanged(double v)
bool TaskBoxPrimitives::setPrimitive(App::DocumentObject* obj)
{
try {
QString name(QString::fromLatin1(Gui::Command::getObjectCmd(obj).c_str()));
QString cmd;
App::Document* doc = App::GetApplication().getActiveDocument();
if (!doc) {
return false;
}
std::string cmd;
std::string name(Gui::Command::getObjectCmd(obj));
Base::QuantityFormat format(Base::QuantityFormat::Fixed, Base::UnitsApi::getDecimals());
switch (ui->widgetStack->currentIndex()) {
case 1: // box
cmd = QString::fromLatin1("%1.Length='%2'\n"
"%1.Width='%3'\n"
"%1.Height='%4'\n")
.arg(name,
ui->boxLength->value().getSafeUserString(),
ui->boxWidth->value().getSafeUserString(),
ui->boxHeight->value().getSafeUserString());
cmd = fmt::format("{0}.Length='{1}'\n"
"{0}.Width='{2}'\n"
"{0}.Height='{3}'\n",
name,
ui->boxLength->value().getSafeUserString(),
ui->boxWidth->value().getSafeUserString(),
ui->boxHeight->value().getSafeUserString());
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")
.arg(name,
ui->cylinderRadius->value().getSafeUserString(),
ui->cylinderHeight->value().getSafeUserString(),
ui->cylinderAngle->value().getSafeUserString(),
ui->cylinderXSkew->value().getSafeUserString(),
ui->cylinderYSkew->value().getSafeUserString());
cmd = fmt::format("{0}.Radius='{1}'\n"
"{0}.Height='{2}'\n"
"{0}.Angle='{3}'\n"
"{0}.FirstAngle='{4}'\n"
"{0}.SecondAngle='{5}'\n",
name,
ui->cylinderRadius->value().getSafeUserString(),
ui->cylinderHeight->value().getSafeUserString(),
ui->cylinderAngle->value().getSafeUserString(),
ui->cylinderXSkew->value().getSafeUserString(),
ui->cylinderYSkew->value().getSafeUserString());
break;
case 3: // cone
cmd = QString::fromLatin1("%1.Radius1='%2'\n"
"%1.Radius2='%3'\n"
"%1.Height='%4'\n"
"%1.Angle='%5'\n")
.arg(name,
ui->coneRadius1->value().getSafeUserString(),
ui->coneRadius2->value().getSafeUserString(),
ui->coneHeight->value().getSafeUserString(),
ui->coneAngle->value().getSafeUserString());
cmd = fmt::format("{0}.Radius1='{1}'\n"
"{0}.Radius2='{2}'\n"
"{0}.Height='{3}'\n"
"{0}.Angle='{4}'\n",
name,
ui->coneRadius1->value().getSafeUserString(),
ui->coneRadius2->value().getSafeUserString(),
ui->coneHeight->value().getSafeUserString(),
ui->coneAngle->value().getSafeUserString());
break;
case 4: // sphere
cmd = QString::fromLatin1("%1.Radius='%2'\n"
"%1.Angle1='%3'\n"
"%1.Angle2='%4'\n"
"%1.Angle3='%5'\n")
.arg(name,
ui->sphereRadius->value().getSafeUserString(),
ui->sphereAngle1->value().getSafeUserString(),
ui->sphereAngle2->value().getSafeUserString(),
ui->sphereAngle3->value().getSafeUserString());
cmd = fmt::format("{0}.Radius='{1}'\n"
"{0}.Angle1='{2}'\n"
"{0}.Angle2='{3}'\n"
"{0}.Angle3='{4}'\n",
name,
ui->sphereRadius->value().getSafeUserString(),
ui->sphereAngle1->value().getSafeUserString(),
ui->sphereAngle2->value().getSafeUserString(),
ui->sphereAngle3->value().getSafeUserString());
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")
.arg(name,
ui->ellipsoidRadius1->value().getSafeUserString(),
ui->ellipsoidRadius2->value().getSafeUserString(),
ui->ellipsoidRadius3->value().getSafeUserString(),
ui->ellipsoidAngle1->value().getSafeUserString(),
ui->ellipsoidAngle2->value().getSafeUserString(),
ui->ellipsoidAngle3->value().getSafeUserString());
cmd = fmt::format("{0}.Radius1='{1}'\n"
"{0}.Radius2='{2}'\n"
"{0}.Radius3='{3}'\n"
"{0}.Angle1='{4}'\n"
"{0}.Angle2='{5}'\n"
"{0}.Angle3='{6}'\n",
name,
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
cmd = QString::fromLatin1("%1.Radius1='%2'\n"
"%1.Radius2='%3'\n"
"%1.Angle1='%4'\n"
"%1.Angle2='%5'\n"
"%1.Angle3='%6'\n")
.arg(name,
ui->torusRadius1->value().getSafeUserString(),
ui->torusRadius2->value().getSafeUserString(),
ui->torusAngle1->value().getSafeUserString(),
ui->torusAngle2->value().getSafeUserString(),
ui->torusAngle3->value().getSafeUserString());
cmd = fmt::format("{0}.Radius1='{1}'\n"
"{0}.Radius2='{2}'\n"
"{0}.Angle1='{3}'\n"
"{0}.Angle2='{4}'\n"
"{0}.Angle3='{5}'\n",
name,
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("%1.Polygon=%2\n"
"%1.Circumradius='%3'\n"
"%1.Height='%4'\n"
"%1.FirstAngle='%5'\n"
"%1.SecondAngle='%6'\n")
.arg(name,
QString::number(ui->prismPolygon->value()),
ui->prismCircumradius->value().getSafeUserString(),
ui->prismHeight->value().getSafeUserString(),
ui->prismXSkew->value().getSafeUserString(),
ui->prismYSkew->value().getSafeUserString());
cmd = fmt::format("{0}.Polygon={1}\n"
"{0}.Circumradius='{2}'\n"
"{0}.Height='{3}'\n"
"{0}.FirstAngle='{4}'\n"
"{0}.SecondAngle='{5}'\n",
name,
ui->prismPolygon->value(),
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
@@ -929,27 +929,27 @@ bool TaskBoxPrimitives::setPrimitive(App::DocumentObject* obj)
tr("Z min must not be equal to Z max!"));
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")
.arg(name,
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());
cmd = fmt::format("{0}.Xmin='{1}'\n"
"{0}.Ymin='{2}'\n"
"{0}.Zmin='{3}'\n"
"{0}.X2min='{4}'\n"
"{0}.Z2min='{5}'\n"
"{0}.Xmax='{6}'\n"
"{0}.Ymax='{7}'\n"
"{0}.Zmax='{8}'\n"
"{0}.X2max='{9}'\n"
"{0}.Z2max='{10}'\n",
name,
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(),
ui->wedgeX2max->value().getSafeUserString(),
ui->wedgeZ2max->value().getSafeUserString());
break;
default:
@@ -959,7 +959,7 @@ bool TaskBoxPrimitives::setPrimitive(App::DocumentObject* obj)
// Execute the Python block
// No need to open a transaction because this is already done in the command
// class or when starting to edit a primitive.
Gui::Command::runCommand(Gui::Command::Doc, cmd.toUtf8());
Gui::Command::runCommand(Gui::Command::Doc, cmd.c_str());
Gui::Command::runCommand(Gui::Command::Doc, "App.ActiveDocument.recompute()");
}
catch (const Base::PyException& e) {

View File

@@ -765,8 +765,8 @@ PyObject* SketchObjectPy::setDatum(PyObject* args)
str << "Cannot set the datum because the sketch contains conflicting constraints";
}
else if (err == -2) {
str << "Datum " << (const char*)Quantity.getUserString().toUtf8()
<< " for the constraint with index " << Index << " is invalid";
str << "Datum " << Quantity.getUserString() << " for the constraint with index "
<< Index << " is invalid";
}
else if (err == -4) {
str << "Negative datum values are not valid for the constraint with index " << Index;
@@ -778,8 +778,7 @@ PyObject* SketchObjectPy::setDatum(PyObject* args)
str << "Cannot set the datum because of invalid geometry";
}
else {
str << "Unexpected problem at setting datum "
<< (const char*)Quantity.getUserString().toUtf8()
str << "Unexpected problem at setting datum " << Quantity.getUserString()
<< " for the constraint with index " << Index;
}
PyErr_SetString(PyExc_ValueError, str.str().c_str());

View File

@@ -2095,11 +2095,10 @@ void EditModeConstraintCoinManager::rebuildConstraintNodes(
QString EditModeConstraintCoinManager::getPresentationString(const Constraint* constraint)
{
QString nameStr; // name parameter string
std::string nameStr; // name parameter string
QString valueStr; // dimensional value string
QString presentationStr; // final return string
QString unitStr; // the actual unit string
QString baseUnitStr; // the expected base unit string
std::string unitStr; // the actual unit string
std::string baseUnitStr; // the expected base unit string
double factor; // unit scaling factor, currently not used
Base::UnitSystem unitSys; // current unit system
@@ -2108,10 +2107,11 @@ QString EditModeConstraintCoinManager::getPresentationString(const Constraint* c
}
// Get the current name parameter string of the constraint
nameStr = QString::fromStdString(constraint->Name);
nameStr = constraint->Name;
// Get the current value string including units
valueStr = constraint->getPresentationValue().getUserString(factor, unitStr);
valueStr =
QString::fromStdString(constraint->getPresentationValue().getUserString(factor, unitStr));
// Hide units if user has requested it, is being displayed in the base
// units, and the schema being used has a clear base unit in the first
@@ -2127,19 +2127,19 @@ QString EditModeConstraintCoinManager::getPresentationString(const Constraint* c
switch (unitSys) {
case Base::UnitSystem::SI1:
case Base::UnitSystem::MmMin:
baseUnitStr = QString::fromLatin1("mm");
baseUnitStr = "mm";
break;
case Base::UnitSystem::SI2:
baseUnitStr = QString::fromLatin1("m");
baseUnitStr = "m";
break;
case Base::UnitSystem::ImperialDecimal:
baseUnitStr = QString::fromLatin1("in");
baseUnitStr = "in";
break;
case Base::UnitSystem::Centimeters:
baseUnitStr = QString::fromLatin1("cm");
baseUnitStr = "cm";
break;
default:
@@ -2147,9 +2147,9 @@ QString EditModeConstraintCoinManager::getPresentationString(const Constraint* c
break;
}
if (!baseUnitStr.isEmpty()) {
if (!baseUnitStr.empty()) {
// expected unit string matches actual unit string. remove.
if (QString::compare(baseUnitStr, unitStr) == 0) {
if (baseUnitStr.compare(unitStr) == 0) {
// Example code from: Mod/TechDraw/App/DrawViewDimension.cpp:372
QRegularExpression rxUnits(
QString::fromUtf8(" \\D*$")); // space + any non digits at end of string
@@ -2171,17 +2171,19 @@ QString EditModeConstraintCoinManager::getPresentationString(const Constraint* c
%N - the constraint name parameter
%V - the value of the dimensional constraint, including any unit characters
*/
if (constraintParameters.bShowDimensionalName && !nameStr.isEmpty()) {
if (constraintParameters.bShowDimensionalName && !nameStr.empty()) {
QString presentationStr;
if (constraintParameters.sDimensionalStringFormat.contains(QLatin1String("%V"))
|| constraintParameters.sDimensionalStringFormat.contains(QLatin1String("%N"))) {
presentationStr = constraintParameters.sDimensionalStringFormat;
presentationStr.replace(QLatin1String("%N"), nameStr);
presentationStr.replace(QLatin1String("%N"), QString::fromStdString(nameStr));
presentationStr.replace(QLatin1String("%V"), valueStr);
}
else {
// user defined format string does not contain any valid parameter, using default format
// "%N = %V"
presentationStr = nameStr + QLatin1String(" = ") + valueStr;
presentationStr =
QString::fromStdString(nameStr) + QString::fromLatin1(" = ") + valueStr;
}
return presentationStr;

View File

@@ -50,8 +50,7 @@ PropertyConstraintListItem::~PropertyConstraintListItem()
QVariant PropertyConstraintListItem::toString(const QVariant& prop) const
{
const QList<Base::Quantity>& value = prop.value<QList<Base::Quantity>>();
QString str;
QTextStream out(&str);
std::stringstream out;
out << "[";
for (QList<Base::Quantity>::const_iterator it = value.begin(); it != value.end(); ++it) {
if (it != value.begin()) {
@@ -60,7 +59,7 @@ QVariant PropertyConstraintListItem::toString(const QVariant& prop) const
out << it->getUserString();
}
out << "]";
return QVariant(str);
return QVariant(QString::fromStdString(out.str()));
}
void PropertyConstraintListItem::initialize()

View File

@@ -158,7 +158,8 @@ public:
case Sketcher::Diameter:
case Sketcher::Angle:
name = QString::fromLatin1("%1 (%2)").arg(
name, constraint->getPresentationValue().getUserString());
name,
QString::fromStdString(constraint->getPresentationValue().getUserString()));
break;
case Sketcher::SnellsLaw: {
double v = constraint->getPresentationValue().getValue();

View File

@@ -719,10 +719,10 @@ std::string SketcherGui::lengthToDisplayFormat(double value, int digits)
Base::Quantity asQuantity;
asQuantity.setValue(value);
asQuantity.setUnit(Base::Unit::Length);
QString qUserString = asQuantity.getUserString();
std::string userString = asQuantity.getUserString();
if (Base::UnitsApi::isMultiUnitLength() || (!hideUnits() && useSystemDecimals())) {
// just return the user string
return qUserString.toStdString();
return userString;
}
// find the unit of measure
@@ -734,26 +734,26 @@ std::string SketcherGui::lengthToDisplayFormat(double value, int digits)
// get the numeric part of the user string
QRegularExpression rxNoUnits(
QString::fromUtf8("(.*) \\D*$")); // text before space + any non digits at end of string
QRegularExpressionMatch match = rxNoUnits.match(qUserString);
QRegularExpressionMatch match = rxNoUnits.match(QString::fromStdString(userString));
if (!match.hasMatch()) {
// no units in userString?
return qUserString.toStdString();
return userString;
}
QString matched = match.captured(1); // matched is the numeric part of user string
auto smatched = matched.toStdString();
int dpPos = matched.indexOf(QLocale().decimalPoint());
if (dpPos < 0) {
auto ret = matched.toStdString();
// no decimal separator (ie an integer), return all the digits
if (!hideUnits()) {
ret.append(unitPart.toStdString());
smatched.append(unitPart.toStdString());
}
return ret;
return smatched;
}
// real number
if (useSystemDecimals() && hideUnits()) {
// return just the numeric part of the user string
return matched.toStdString();
return smatched;
}
// real number and not using system decimals
@@ -779,7 +779,7 @@ std::string SketcherGui::angleToDisplayFormat(double value, int digits)
Base::Quantity asQuantity;
asQuantity.setValue(value);
asQuantity.setUnit(Base::Unit::Angle);
QString qUserString = asQuantity.getUserString();
QString qUserString = QString::fromStdString(asQuantity.getUserString());
if (Base::UnitsApi::isMultiUnitAngle()) {
// just return the user string
// Coin SbString doesn't handle utf8 well, so we convert to ascii
@@ -794,7 +794,7 @@ std::string SketcherGui::angleToDisplayFormat(double value, int digits)
// we always use use U+00B0 (°) as the unit of measure for angles in
// single unit schema. Will need a change to support rads or grads.
auto qUnitString = QString::fromUtf8("°");
std::string unitString = "°";
auto decimalSep = QLocale().decimalPoint();
// get the numeric part of the user string
@@ -806,18 +806,12 @@ std::string SketcherGui::angleToDisplayFormat(double value, int digits)
return qUserString.toStdString();
}
QString matched = match.captured(1); // matched is the numeric part of user string
auto smatched = matched.toStdString();
auto sUnitString = qUnitString.toStdString();
int dpPos = matched.indexOf(decimalSep);
if (dpPos < 0) {
// no decimal separator (ie an integer), return all the digits
return smatched + sUnitString;
}
// real number
if (useSystemDecimals()) {
// return just the numeric part of the user string + degree symbol
return smatched + sUnitString;
if (dpPos < 0 || useSystemDecimals()) {
// just the numeric part of the user string + degree symbol
auto angle = matched.toStdString();
angle.append(unitString);
return angle;
}
// real number and not using system decimals
@@ -827,7 +821,7 @@ std::string SketcherGui::angleToDisplayFormat(double value, int digits)
requiredLength = matched.size();
}
auto numericPart = matched.left(requiredLength).toStdString();
numericPart.append(sUnitString);
numericPart.append(unitString);
return numericPart;
}

View File

@@ -158,8 +158,7 @@ void ViewProviderSketch::ParameterObserver::updateGridSize(const std::string& st
"User parameter:BaseApp/Preferences/Mod/Sketcher/General");
Client.GridSize.setValue(
Base::Quantity::parse(
QString::fromLatin1(hGrp->GetGroup("GridSize")->GetASCII("GridSize", "10.0").c_str()))
Base::Quantity::parse(hGrp->GetGroup("GridSize")->GetASCII("GridSize", "10.0"))
.getValue());
}

View File

@@ -378,7 +378,7 @@ QVariant SheetModel::data(const QModelIndex& index, int role) const
// When displaying a quantity then use the globally set scheme
// See: https://forum.freecad.org/viewtopic.php?f=3&t=50078
Base::Quantity value = floatProp->getQuantityValue();
v = value.getUserString();
v = QString::fromStdString(value.getUserString());
}
return formatCellDisplay(v, cell);
}

View File

@@ -78,9 +78,9 @@ std::string DimensionFormatter::formatValue(const qreal value,
asQuantity.setUnit(Base::Unit::Length);
}
QString qUserString = asQuantity.getUserString(); // this handles mm to inch/km/parsec etc
// and decimal positions but won't give more than
// Global_Decimals precision
// this handles mm to inch/km/parsec etc and decimal positions but
// won't give more than Global_Decimals precision
QString qUserString = QString::fromStdString(asQuantity.getUserString());
//get formatSpec prefix/suffix/specifier
QStringList qsl = getPrefixSuffixSpec(qFormatSpec);
@@ -132,7 +132,7 @@ std::string DimensionFormatter::formatValue(const qreal value,
qBasicUnit = QString::fromUtf8("°");
}
else {
double convertValue = Base::Quantity::parse(QString::fromLatin1("1") + qBasicUnit).getValue();
double convertValue = Base::Quantity::parse("1" + qBasicUnit.toStdString()).getValue();
userVal = asQuantity.getValue() / convertValue;
if (areaMeasure) {
userVal = userVal / convertValue; // divide again as area is length²

View File

@@ -182,13 +182,13 @@ void DrawSVGTemplate::extractTemplateAttributes(QDomDocument& templateDocument)
// Obtain the width
QString str = docElement.attribute(QString::fromLatin1("width"));
quantity = Base::Quantity::parse(str);
quantity = Base::Quantity::parse(str.toStdString());
quantity.setUnit(Base::Unit::Length);
Width.setValue(quantity.getValue());
str = docElement.attribute(QString::fromLatin1("height"));
quantity = Base::Quantity::parse(str);
quantity = Base::Quantity::parse(str.toStdString());
quantity.setUnit(Base::Unit::Length);
Height.setValue(quantity.getValue());

View File

@@ -272,8 +272,7 @@ std::string DrawViewSpreadsheet::getSheetImage()
if (prop && cell) {
if (prop->isDerivedFrom(App::PropertyQuantity::getClassTypeId())) {
auto contentAsQuantity = static_cast<App::PropertyQuantity*>(prop)->getQuantityValue();
auto ustring = contentAsQuantity.getUserString();
field << ustring.toStdString();
field << contentAsQuantity.getUserString();
} else if (prop->isDerivedFrom(App::PropertyFloat::getClassTypeId()) ||
prop->isDerivedFrom(App::PropertyInteger::getClassTypeId())) {
std::string temp = cell->getFormattedQuantity();

View File

@@ -1840,7 +1840,7 @@ void CmdTechDrawExtensionAreaAnnotation::activated(int iMsg)
asQuantity.setValue(totalArea);
asQuantity.setUnit(Base::Unit::Area);
QString qUserString = asQuantity.getUserString();
QString qUserString = QString::fromStdString(asQuantity.getUserString());
if (qUserString.endsWith(QString::fromUtf8("^2"))) {
qUserString.chop(2);
qUserString.append(QString::fromUtf8("²"));