diff --git a/src/app/tape/tmainwindow.cpp b/src/app/tape/tmainwindow.cpp index 56a42c01d..fe3fe9ce3 100644 --- a/src/app/tape/tmainwindow.cpp +++ b/src/app/tape/tmainwindow.cpp @@ -1006,18 +1006,8 @@ void TMainWindow::Fx() DialogEditWrongFormula *dialog = new DialogEditWrongFormula(meash->GetData(), NULL_ID, this); dialog->setWindowTitle(tr("Edit measurement")); - - QString text = ui->plainTextEditFormula->toPlainText().replace("\n", " "); - try - { - text = qApp->TrVars()->FormulaFromUser(text, true); - } - catch (qmu::QmuParserError &e) // Just in case something bad will happen - { - Q_UNUSED(e) - text = ui->plainTextEditFormula->toPlainText(); - } - dialog->SetFormula(text); + dialog->SetFormula(qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditFormula->toPlainText().replace("\n", " "), + true)); const QString postfix = VDomDocument::UnitsToStr(mUnit, true);//Show unit in dialog lable (cm, mm or inch) dialog->setPostfix(postfix); diff --git a/src/app/valentina/core/vapplication.cpp b/src/app/valentina/core/vapplication.cpp index c14082338..c0bd9c5e7 100644 --- a/src/app/valentina/core/vapplication.cpp +++ b/src/app/valentina/core/vapplication.cpp @@ -358,8 +358,9 @@ bool VApplication::notify(QObject *receiver, QEvent *event) qUtf8Printable(e.ErrorMessage()), qUtf8Printable(e.DetailedInformation())); return true; } - // These last two cases special. I found that we can't show here modal dialog with error message. - // Somehow program doesn't waite untile an error dialog will be closed. But if ignore this program will hang. + // These last two cases are special. I found that we can't show here a modal dialog with an error message. + // Somehow program doesn't wait until an error dialog will be closed. But if ignore the exception the program will + // hang. catch (const qmu::QmuParserError &e) { qCCritical(vApp, "%s", qUtf8Printable(tr("Parser error: %1. Program will be terminated.").arg(e.GetMsg()))); diff --git a/src/app/valentina/dialogs/dialogincrements.cpp b/src/app/valentina/dialogs/dialogincrements.cpp index a9cf5343c..a459061d5 100644 --- a/src/app/valentina/dialogs/dialogincrements.cpp +++ b/src/app/valentina/dialogs/dialogincrements.cpp @@ -634,7 +634,7 @@ void DialogIncrements::SaveIncrFormula() const QString formula = qApp->TrVars()->FormulaFromUser(text, qApp->Settings()->GetOsSeparator()); doc->SetIncrementFormula(nameField->text(), formula); } - catch (qmu::QmuParserError &e) // Just in case something bad happens + catch (qmu::QmuParserError &e) // Just in case something bad will happen { Q_UNUSED(e) return; @@ -697,11 +697,8 @@ void DialogIncrements::Fx() DialogEditWrongFormula *dialog = new DialogEditWrongFormula(incr->GetData(), NULL_ID, this); dialog->setWindowTitle(tr("Edit increment")); - - QString text = ui->plainTextEditFormula->toPlainText(); - text.replace("\n", " "); - text = qApp->TrVars()->FormulaFromUser(text, qApp->Settings()->GetOsSeparator()); - dialog->SetFormula(text); + dialog->SetFormula(qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditFormula->toPlainText().replace("\n", " "), + qApp->Settings()->GetOsSeparator())); const QString postfix = VDomDocument::UnitsToStr(qApp->patternUnit(), true); dialog->setPostfix(postfix);//Show unit in dialog lable (cm, mm or inch) diff --git a/src/libs/vpatterndb/vformula.cpp b/src/libs/vpatterndb/vformula.cpp index 94f54e73a..8d28c3aa4 100644 --- a/src/libs/vpatterndb/vformula.cpp +++ b/src/libs/vpatterndb/vformula.cpp @@ -103,7 +103,7 @@ QString VFormula::GetFormula(FormulaType type) const } else { - return qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); } } diff --git a/src/libs/vpatterndb/vtranslatevars.cpp b/src/libs/vpatterndb/vtranslatevars.cpp index 4d98d3388..fdbc344fe 100644 --- a/src/libs/vpatterndb/vtranslatevars.cpp +++ b/src/libs/vpatterndb/vtranslatevars.cpp @@ -29,6 +29,7 @@ #include "vtranslatevars.h" #include "calculator.h" #include "../vmisc/def.h" +#include "../vmisc/vabstractapplication.h" #include "../vgeometry/vgeometrydef.h" #include "../qmuparser/qmutokenparser.h" #include "../ifc/ifcdef.h" @@ -781,6 +782,20 @@ QString VTranslateVars::FormulaFromUser(const QString &formula, bool osSeparator return newFormula; } +//--------------------------------------------------------------------------------------------------------------------- +QString VTranslateVars::TryFormulaFromUser(const QString &formula, bool osSeparator) const +{ + try + { + return qApp->TrVars()->FormulaFromUser(formula, osSeparator); + } + catch (qmu::QmuParserError &e)// In case something bad will happen + { + Q_UNUSED(e) + return formula; + } +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief FormulaToUser replace all known tokens in formula to user look. Also change decimal diff --git a/src/libs/vpatterndb/vtranslatevars.h b/src/libs/vpatterndb/vtranslatevars.h index 6a23550f9..178377748 100644 --- a/src/libs/vpatterndb/vtranslatevars.h +++ b/src/libs/vpatterndb/vtranslatevars.h @@ -54,6 +54,7 @@ public: QString PostfixOperator(const QString &name) const; QString FormulaFromUser(const QString &formula, bool osSeparator) const; + QString TryFormulaFromUser(const QString &formula, bool osSeparator) const; QString FormulaToUser(const QString &formula) const; virtual void Retranslate() Q_DECL_OVERRIDE; diff --git a/src/libs/vtools/dialogs/support/dialogeditwrongformula.cpp b/src/libs/vtools/dialogs/support/dialogeditwrongformula.cpp index a523aee33..522138e45 100644 --- a/src/libs/vtools/dialogs/support/dialogeditwrongformula.cpp +++ b/src/libs/vtools/dialogs/support/dialogeditwrongformula.cpp @@ -349,7 +349,7 @@ void DialogEditWrongFormula::setPostfix(const QString &value) //--------------------------------------------------------------------------------------------------------------------- QString DialogEditWrongFormula::GetFormula() const { - return qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogalongline.cpp b/src/libs/vtools/dialogs/tools/dialogalongline.cpp index 6d7484818..c93ded462 100644 --- a/src/libs/vtools/dialogs/tools/dialogalongline.cpp +++ b/src/libs/vtools/dialogs/tools/dialogalongline.cpp @@ -316,7 +316,7 @@ QString DialogAlongLine::GetTypeLine() const */ QString DialogAlongLine::GetFormula() const { - return qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogarc.cpp b/src/libs/vtools/dialogs/tools/dialogarc.cpp index 1bd0368b8..5bb33ed3f 100644 --- a/src/libs/vtools/dialogs/tools/dialogarc.cpp +++ b/src/libs/vtools/dialogs/tools/dialogarc.cpp @@ -429,7 +429,7 @@ quint32 DialogArc::GetCenter() const */ QString DialogArc::GetRadius() const { - return qApp->TrVars()->FormulaFromUser(radius, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(radius, qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- @@ -439,7 +439,7 @@ QString DialogArc::GetRadius() const */ QString DialogArc::GetF1() const { - return qApp->TrVars()->FormulaFromUser(f1, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(f1, qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- @@ -449,5 +449,5 @@ QString DialogArc::GetF1() const */ QString DialogArc::GetF2() const { - return qApp->TrVars()->FormulaFromUser(f2, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(f2, qApp->Settings()->GetOsSeparator()); } diff --git a/src/libs/vtools/dialogs/tools/dialogarcwithlength.cpp b/src/libs/vtools/dialogs/tools/dialogarcwithlength.cpp index efab4b8d6..b54039acd 100644 --- a/src/libs/vtools/dialogs/tools/dialogarcwithlength.cpp +++ b/src/libs/vtools/dialogs/tools/dialogarcwithlength.cpp @@ -110,7 +110,7 @@ void DialogArcWithLength::SetCenter(const quint32 &value) //--------------------------------------------------------------------------------------------------------------------- QString DialogArcWithLength::GetRadius() const { - return qApp->TrVars()->FormulaFromUser(radius, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(radius, qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- @@ -134,7 +134,7 @@ void DialogArcWithLength::SetRadius(const QString &value) //--------------------------------------------------------------------------------------------------------------------- QString DialogArcWithLength::GetF1() const { - return qApp->TrVars()->FormulaFromUser(f1, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(f1, qApp->Settings()->GetOsSeparator()); } void DialogArcWithLength::SetF1(const QString &value) @@ -157,7 +157,7 @@ void DialogArcWithLength::SetF1(const QString &value) //--------------------------------------------------------------------------------------------------------------------- QString DialogArcWithLength::GetLength() const { - return qApp->TrVars()->FormulaFromUser(length, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(length, qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogbisector.cpp b/src/libs/vtools/dialogs/tools/dialogbisector.cpp index 515443f58..f3da1f948 100644 --- a/src/libs/vtools/dialogs/tools/dialogbisector.cpp +++ b/src/libs/vtools/dialogs/tools/dialogbisector.cpp @@ -349,7 +349,7 @@ QString DialogBisector::GetTypeLine() const */ QString DialogBisector::GetFormula() const { - return qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.cpp b/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.cpp index 5d7db2d6f..ed364444b 100644 --- a/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.cpp +++ b/src/libs/vtools/dialogs/tools/dialogcurveintersectaxis.cpp @@ -104,7 +104,7 @@ void DialogCurveIntersectAxis::SetTypeLine(const QString &value) //--------------------------------------------------------------------------------------------------------------------- QString DialogCurveIntersectAxis::GetAngle() const { - return qApp->TrVars()->FormulaFromUser(formulaAngle, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(formulaAngle, qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogcutarc.cpp b/src/libs/vtools/dialogs/tools/dialogcutarc.cpp index 59274be51..cbb1db51c 100644 --- a/src/libs/vtools/dialogs/tools/dialogcutarc.cpp +++ b/src/libs/vtools/dialogs/tools/dialogcutarc.cpp @@ -231,7 +231,7 @@ void DialogCutArc::SetPointName(const QString &value) */ QString DialogCutArc::GetFormula() const { - return qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogcutspline.cpp b/src/libs/vtools/dialogs/tools/dialogcutspline.cpp index 7e13d2a08..f73db268a 100644 --- a/src/libs/vtools/dialogs/tools/dialogcutspline.cpp +++ b/src/libs/vtools/dialogs/tools/dialogcutspline.cpp @@ -225,7 +225,7 @@ void DialogCutSpline::ShowVisualization() */ QString DialogCutSpline::GetFormula() const { - return qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogcutsplinepath.cpp b/src/libs/vtools/dialogs/tools/dialogcutsplinepath.cpp index abb2abaf9..4529b5b6b 100644 --- a/src/libs/vtools/dialogs/tools/dialogcutsplinepath.cpp +++ b/src/libs/vtools/dialogs/tools/dialogcutsplinepath.cpp @@ -225,7 +225,7 @@ void DialogCutSplinePath::ShowVisualization() */ QString DialogCutSplinePath::GetFormula() const { - return qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogendline.cpp b/src/libs/vtools/dialogs/tools/dialogendline.cpp index 2599928bc..55d278e94 100644 --- a/src/libs/vtools/dialogs/tools/dialogendline.cpp +++ b/src/libs/vtools/dialogs/tools/dialogendline.cpp @@ -363,7 +363,7 @@ QString DialogEndLine::GetTypeLine() const */ QString DialogEndLine::GetFormula() const { - return qApp->TrVars()->FormulaFromUser(formulaLength, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(formulaLength, qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- @@ -373,7 +373,7 @@ QString DialogEndLine::GetFormula() const */ QString DialogEndLine::GetAngle() const { - return qApp->TrVars()->FormulaFromUser(formulaAngle, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(formulaAngle, qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.cpp b/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.cpp index 273c05c4f..1009c4799 100644 --- a/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.cpp +++ b/src/libs/vtools/dialogs/tools/dialoglineintersectaxis.cpp @@ -113,7 +113,7 @@ void DialogLineIntersectAxis::SetTypeLine(const QString &value) //--------------------------------------------------------------------------------------------------------------------- QString DialogLineIntersectAxis::GetAngle() const { - return qApp->TrVars()->FormulaFromUser(formulaAngle, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(formulaAngle, qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialognormal.cpp b/src/libs/vtools/dialogs/tools/dialognormal.cpp index ad4de0ce6..97afbc813 100644 --- a/src/libs/vtools/dialogs/tools/dialognormal.cpp +++ b/src/libs/vtools/dialogs/tools/dialognormal.cpp @@ -322,7 +322,7 @@ QString DialogNormal::GetTypeLine() const */ QString DialogNormal::GetFormula() const { - return qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogpointfromcircleandtangent.cpp b/src/libs/vtools/dialogs/tools/dialogpointfromcircleandtangent.cpp index dcdbd81e9..9f4be7dfe 100644 --- a/src/libs/vtools/dialogs/tools/dialogpointfromcircleandtangent.cpp +++ b/src/libs/vtools/dialogs/tools/dialogpointfromcircleandtangent.cpp @@ -118,8 +118,8 @@ void DialogPointFromCircleAndTangent::SetCircleCenterId(const quint32 &value) //--------------------------------------------------------------------------------------------------------------------- QString DialogPointFromCircleAndTangent::GetCircleRadius() const { - return qApp->TrVars()->FormulaFromUser(ui->plainTextEditRadius->toPlainText(), - qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditRadius->toPlainText(), + qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogpointofcontact.cpp b/src/libs/vtools/dialogs/tools/dialogpointofcontact.cpp index 7c7ae3cd0..cbcb03a63 100644 --- a/src/libs/vtools/dialogs/tools/dialogpointofcontact.cpp +++ b/src/libs/vtools/dialogs/tools/dialogpointofcontact.cpp @@ -310,7 +310,7 @@ void DialogPointOfContact::SetPointName(const QString &value) */ QString DialogPointOfContact::getRadius() const { - return qApp->TrVars()->FormulaFromUser(radius, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(radius, qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.cpp b/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.cpp index 3a0d9019d..e6ded34c8 100644 --- a/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.cpp +++ b/src/libs/vtools/dialogs/tools/dialogpointofintersectioncircles.cpp @@ -150,8 +150,8 @@ void DialogPointOfIntersectionCircles::SetSecondCircleCenterId(const quint32 &va //--------------------------------------------------------------------------------------------------------------------- QString DialogPointOfIntersectionCircles::GetFirstCircleRadius() const { - return qApp->TrVars()->FormulaFromUser(ui->plainTextEditCircle1Radius->toPlainText(), - qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditCircle1Radius->toPlainText(), + qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- @@ -175,8 +175,8 @@ void DialogPointOfIntersectionCircles::SetFirstCircleRadius(const QString &value //--------------------------------------------------------------------------------------------------------------------- QString DialogPointOfIntersectionCircles::GetSecondCircleRadius() const { - return qApp->TrVars()->FormulaFromUser(ui->plainTextEditCircle2Radius->toPlainText(), - qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditCircle2Radius->toPlainText(), + qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogshoulderpoint.cpp b/src/libs/vtools/dialogs/tools/dialogshoulderpoint.cpp index 2854291af..39ae1b628 100644 --- a/src/libs/vtools/dialogs/tools/dialogshoulderpoint.cpp +++ b/src/libs/vtools/dialogs/tools/dialogshoulderpoint.cpp @@ -348,7 +348,7 @@ QString DialogShoulderPoint::GetTypeLine() const */ QString DialogShoulderPoint::GetFormula() const { - return qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); + return qApp->TrVars()->TryFormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogspline.cpp b/src/libs/vtools/dialogs/tools/dialogspline.cpp index cb6555313..8ea1f05e6 100644 --- a/src/libs/vtools/dialogs/tools/dialogspline.cpp +++ b/src/libs/vtools/dialogs/tools/dialogspline.cpp @@ -267,8 +267,8 @@ void DialogSpline::FXAngle1() { auto dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit first control point angle")); - QString angle1F = qApp->TrVars()->FormulaFromUser(ui->plainTextEditAngle1F->toPlainText(), - qApp->Settings()->GetOsSeparator()); + QString angle1F = qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditAngle1F->toPlainText(), + qApp->Settings()->GetOsSeparator()); dialog->SetFormula(angle1F); dialog->setPostfix(VDomDocument::UnitsToStr(qApp->patternUnit(), true)); if (dialog->exec() == QDialog::Accepted) @@ -290,8 +290,8 @@ void DialogSpline::FXAngle2() { auto dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit second control point angle")); - QString angle2F = qApp->TrVars()->FormulaFromUser(ui->plainTextEditAngle2F->toPlainText(), - qApp->Settings()->GetOsSeparator()); + QString angle2F = qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditAngle2F->toPlainText(), + qApp->Settings()->GetOsSeparator()); dialog->SetFormula(angle2F); dialog->setPostfix(VDomDocument::UnitsToStr(qApp->patternUnit(), true)); if (dialog->exec() == QDialog::Accepted) @@ -313,8 +313,8 @@ void DialogSpline::FXLength1() { auto dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit first control point length")); - QString length1F = qApp->TrVars()->FormulaFromUser(ui->plainTextEditLength1F->toPlainText(), - qApp->Settings()->GetOsSeparator()); + QString length1F = qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditLength1F->toPlainText(), + qApp->Settings()->GetOsSeparator()); dialog->SetFormula(length1F); dialog->setPostfix(VDomDocument::UnitsToStr(qApp->patternUnit(), true)); if (dialog->exec() == QDialog::Accepted) @@ -336,8 +336,8 @@ void DialogSpline::FXLength2() { auto dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit second control point length")); - QString length2F = qApp->TrVars()->FormulaFromUser(ui->plainTextEditLength2F->toPlainText(), - qApp->Settings()->GetOsSeparator()); + QString length2F = qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditLength2F->toPlainText(), + qApp->Settings()->GetOsSeparator()); dialog->SetFormula(length2F); dialog->setPostfix(VDomDocument::UnitsToStr(qApp->patternUnit(), true)); if (dialog->exec() == QDialog::Accepted) @@ -440,10 +440,10 @@ VSpline DialogSpline::CurrentSpline() const const bool separator = qApp->Settings()->GetOsSeparator(); - angle1F = qApp->TrVars()->FormulaFromUser(angle1F, separator); - angle2F = qApp->TrVars()->FormulaFromUser(angle2F, separator); - length1F = qApp->TrVars()->FormulaFromUser(length1F, separator); - length2F = qApp->TrVars()->FormulaFromUser(length2F, separator); + angle1F = qApp->TrVars()->TryFormulaFromUser(angle1F, separator); + angle2F = qApp->TrVars()->TryFormulaFromUser(angle2F, separator); + length1F = qApp->TrVars()->TryFormulaFromUser(length1F, separator); + length2F = qApp->TrVars()->TryFormulaFromUser(length2F, separator); VSpline spline(*GetP1(), *GetP4(), angle1, angle1F, angle2, angle2F, length1, length1F, length2, length2F); diff --git a/src/libs/vtools/dialogs/tools/dialogsplinepath.cpp b/src/libs/vtools/dialogs/tools/dialogsplinepath.cpp index 1781038ce..2154f965c 100644 --- a/src/libs/vtools/dialogs/tools/dialogsplinepath.cpp +++ b/src/libs/vtools/dialogs/tools/dialogsplinepath.cpp @@ -424,17 +424,8 @@ void DialogSplinePath::FXAngle1() auto dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit first control point angle")); - const QString formula = ui->plainTextEditAngle1F->toPlainText().replace("\n", " "); - QString angle1F; - try - { - angle1F = qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); - } - catch (qmu::QmuParserError &e) - { - Q_UNUSED(e) - angle1F = formula; - } + QString angle1F = qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditAngle1F->toPlainText().replace("\n", " "), + qApp->Settings()->GetOsSeparator()); dialog->SetFormula(angle1F); dialog->setPostfix(VDomDocument::UnitsToStr(qApp->patternUnit(), true)); @@ -458,17 +449,8 @@ void DialogSplinePath::FXAngle2() auto dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit second control point angle")); - const QString formula = ui->plainTextEditAngle2F->toPlainText().replace("\n", " "); - QString angle2F; - try - { - angle2F = qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); - } - catch (qmu::QmuParserError &e) - { - Q_UNUSED(e) - angle2F = formula; - } + QString angle2F = qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditAngle2F->toPlainText().replace("\n", " "), + qApp->Settings()->GetOsSeparator()); dialog->SetFormula(angle2F); dialog->setPostfix(VDomDocument::UnitsToStr(qApp->patternUnit(), true)); @@ -492,17 +474,8 @@ void DialogSplinePath::FXLength1() auto dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit first control point length")); - const QString formula = ui->plainTextEditLength1F->toPlainText().replace("\n", " "); - QString length1F; - try - { - length1F = qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); - } - catch (qmu::QmuParserError &e) - { - Q_UNUSED(e) - length1F = formula; - } + QString length1F = qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditLength1F->toPlainText().replace("\n", " "), + qApp->Settings()->GetOsSeparator()); dialog->SetFormula(length1F); dialog->setPostfix(VDomDocument::UnitsToStr(qApp->patternUnit(), true)); @@ -526,17 +499,8 @@ void DialogSplinePath::FXLength2() auto dialog = new DialogEditWrongFormula(data, toolId, this); dialog->setWindowTitle(tr("Edit second control point length")); - const QString formula = ui->plainTextEditLength2F->toPlainText().replace("\n", " "); - QString length2F; - try - { - length2F = qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator()); - } - catch (qmu::QmuParserError &e) - { - Q_UNUSED(e) - length2F = formula; - } + QString length2F = qApp->TrVars()->TryFormulaFromUser(ui->plainTextEditLength2F->toPlainText().replace("\n", " "), + qApp->Settings()->GetOsSeparator()); dialog->SetFormula(length2F); dialog->setPostfix(VDomDocument::UnitsToStr(qApp->patternUnit(), true));