From 3af28599808869cf695215325110aa4d501ce9c6 Mon Sep 17 00:00:00 2001 From: dismine Date: Mon, 11 Aug 2014 11:56:50 +0300 Subject: [PATCH] Formula that calculate angle can be equal zero. --HG-- branch : develop --- src/app/dialogs/tools/dialogarc.cpp | 4 ++-- src/app/dialogs/tools/dialogtool.cpp | 5 +++-- src/app/dialogs/tools/dialogtool.h | 2 +- src/app/tools/drawTools/vdrawtool.cpp | 3 +-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/app/dialogs/tools/dialogarc.cpp b/src/app/dialogs/tools/dialogarc.cpp index bd860e2a9..007200951 100644 --- a/src/app/dialogs/tools/dialogarc.cpp +++ b/src/app/dialogs/tools/dialogarc.cpp @@ -335,7 +335,7 @@ void DialogArc::EvalRadius() void DialogArc::EvalF1() { labelEditFormula = ui->labelEditF1; - Eval(ui->plainTextEditF1->toPlainText(), flagF1, timerF1, ui->labelResultF1); + Eval(ui->plainTextEditF1->toPlainText(), flagF1, timerF1, ui->labelResultF1, false); } //--------------------------------------------------------------------------------------------------------------------- @@ -345,7 +345,7 @@ void DialogArc::EvalF1() void DialogArc::EvalF2() { labelEditFormula = ui->labelEditF2; - Eval(ui->plainTextEditF2->toPlainText(), flagF2, timerF2, ui->labelResultF2); + Eval(ui->plainTextEditF2->toPlainText(), flagF2, timerF2, ui->labelResultF2, false); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/dialogs/tools/dialogtool.cpp b/src/app/dialogs/tools/dialogtool.cpp index f8a613c4f..3db788c89 100644 --- a/src/app/dialogs/tools/dialogtool.cpp +++ b/src/app/dialogs/tools/dialogtool.cpp @@ -425,8 +425,9 @@ void DialogTool::ValFormulaChanged(bool &flag, QPlainTextEdit *edit, QTimer *tim * @param flag flag state of formula * @param timer timer of formula * @param label label for signal error + * @param checkZero true - if formula can't be equal zero */ -void DialogTool::Eval(const QString &text, bool &flag, QTimer *timer, QLabel *label) +void DialogTool::Eval(const QString &text, bool &flag, QTimer *timer, QLabel *label, bool checkZero) { SCASSERT(timer != nullptr); SCASSERT(label != nullptr); @@ -449,7 +450,7 @@ void DialogTool::Eval(const QString &text, bool &flag, QTimer *timer, QLabel *la delete cal; //if result equal 0 - if (qFuzzyCompare(1 + result, 1 + 0)) + if (checkZero && qFuzzyCompare(1 + result, 1 + 0)) { flag = false; ChangeColor(labelEditFormula, Qt::red); diff --git a/src/app/dialogs/tools/dialogtool.h b/src/app/dialogs/tools/dialogtool.h index 2735a9039..eec6bb8fb 100644 --- a/src/app/dialogs/tools/dialogtool.h +++ b/src/app/dialogs/tools/dialogtool.h @@ -213,7 +213,7 @@ protected: void PutValHere(QPlainTextEdit *plainTextEdit, QListWidget *listWidget); void ValFormulaChanged(bool &flag, QLineEdit *edit, QTimer * timer); void ValFormulaChanged(bool &flag, QPlainTextEdit *edit, QTimer * timer); - void Eval(const QString &text, bool &flag, QTimer *timer, QLabel *label); + void Eval(const QString &text, bool &flag, QTimer *timer, QLabel *label, bool checkZero = true); void setCurrentPointId(QComboBox *box, quint32 &pointId, const quint32 &value) const; void setCurrentSplineId(QComboBox *box, quint32 &splineId, const quint32 &value, ComboBoxCutSpline cut = ComboBoxCutSpline::NoCutSpline) const; diff --git a/src/app/tools/drawTools/vdrawtool.cpp b/src/app/tools/drawTools/vdrawtool.cpp index 3d3ee74b3..2eda94d91 100644 --- a/src/app/tools/drawTools/vdrawtool.cpp +++ b/src/app/tools/drawTools/vdrawtool.cpp @@ -214,8 +214,7 @@ qreal VDrawTool::CheckFormula(const quint32 &toolId, QString &formula, VContaine { formula = dialog->getFormula(); /* Need delete dialog here because parser in dialog don't allow use correct separator for parsing - * here. - * Don't know why. */ + * here. */ delete dialog; Calculator *cal1 = new Calculator(data); result = cal1->EvalFormula(formula);