Refactoring. Use QScopedPointer for class Calculator.
--HG-- branch : develop
This commit is contained in:
parent
83243e5af3
commit
9c0f5f2fa4
|
@ -2421,9 +2421,8 @@ bool TMainWindow::EvalFormula(const QString &formula, bool fromUser, VContainer
|
|||
f = formula;
|
||||
}
|
||||
f.replace("\n", " ");
|
||||
Calculator *cal = new Calculator();
|
||||
QScopedPointer<Calculator> cal(new Calculator());
|
||||
qreal result = cal->EvalFormula(data->PlainVariables(), f);
|
||||
delete cal;
|
||||
|
||||
if (qIsInf(result) || qIsNaN(result))
|
||||
{
|
||||
|
|
|
@ -310,9 +310,8 @@ bool DialogIncrements::EvalIncrementFormula(const QString &formula, bool fromUse
|
|||
f = formula;
|
||||
}
|
||||
f.replace("\n", " ");
|
||||
Calculator *cal = new Calculator();
|
||||
QScopedPointer<Calculator> cal(new Calculator());
|
||||
const qreal result = cal->EvalFormula(data->PlainVariables(), f);
|
||||
delete cal;
|
||||
|
||||
if (qIsInf(result) || qIsNaN(result))
|
||||
{
|
||||
|
|
|
@ -2455,9 +2455,8 @@ qreal VPattern::EvalFormula(VContainer *data, const QString &formula, bool *ok)
|
|||
// Replace line return character with spaces for calc if exist
|
||||
QString f = formula;
|
||||
f.replace("\n", " ");
|
||||
Calculator *cal = new Calculator();
|
||||
QScopedPointer<Calculator> cal(new Calculator());
|
||||
const qreal result = cal->EvalFormula(data->PlainVariables(), f);
|
||||
delete cal;
|
||||
|
||||
(qIsInf(result) || qIsNaN(result)) ? *ok = false : *ok = true;
|
||||
return result;
|
||||
|
|
|
@ -879,9 +879,8 @@ qreal VMeasurements::EvalFormula(VContainer *data, const QString &formula, bool
|
|||
// Replace line return character with spaces for calc if exist
|
||||
QString f = formula;
|
||||
f.replace("\n", " ");
|
||||
Calculator *cal = new Calculator();
|
||||
QScopedPointer<Calculator> cal(new Calculator());
|
||||
const qreal result = cal->EvalFormula(data->PlainVariables(), f);
|
||||
delete cal;
|
||||
|
||||
(qIsInf(result) || qIsNaN(result)) ? *ok = false : *ok = true;
|
||||
return result;
|
||||
|
|
|
@ -48,9 +48,8 @@ class VContainer;
|
|||
* //Need delete dialog here because parser in dialog don't allow use correct separator for parsing here.
|
||||
* //Don't know why.
|
||||
* delete dialog;
|
||||
* Calculator *cal = new Calculator();
|
||||
* QScopedPointer<Calculator> cal(new Calculator());
|
||||
* result = cal->EvalFormula(data->PlainVariables(), formula);
|
||||
* delete cal;//Here can be memory leak, but dialog already check this formula and probability very low.
|
||||
* }
|
||||
*/
|
||||
class Calculator:public qmu::QmuFormulaBase
|
||||
|
|
|
@ -234,10 +234,9 @@ void VFormula::Eval()
|
|||
{
|
||||
try
|
||||
{
|
||||
Calculator *cal = new Calculator();
|
||||
QScopedPointer<Calculator> cal(new Calculator());
|
||||
QString expression = qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator());
|
||||
const qreal result = cal->EvalFormula(data->PlainVariables(), expression);
|
||||
delete cal;
|
||||
|
||||
if (qIsInf(result) || qIsNaN(result))
|
||||
{
|
||||
|
|
|
@ -449,9 +449,8 @@ qreal DialogTool::Eval(const QString &text, bool &flag, QLabel *label, const QSt
|
|||
formula.replace("\n", " ");
|
||||
// Translate to internal look.
|
||||
formula = qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator());
|
||||
Calculator *cal = new Calculator();
|
||||
QScopedPointer<Calculator> cal(new Calculator());
|
||||
result = cal->EvalFormula(data->PlainVariables(), formula);
|
||||
delete cal;
|
||||
|
||||
if (qIsInf(result) || qIsNaN(result))
|
||||
{
|
||||
|
|
|
@ -294,9 +294,8 @@ qreal VDrawTool::CheckFormula(const quint32 &toolId, QString &formula, VContaine
|
|||
Calculator *cal = nullptr;
|
||||
try
|
||||
{
|
||||
cal = new Calculator();
|
||||
QScopedPointer<Calculator> cal(new Calculator());
|
||||
result = cal->EvalFormula(data->PlainVariables(), formula);
|
||||
delete cal;
|
||||
|
||||
if (qIsInf(result) || qIsNaN(result))
|
||||
{
|
||||
|
@ -311,11 +310,10 @@ qreal VDrawTool::CheckFormula(const quint32 &toolId, QString &formula, VContaine
|
|||
<< "Message: " << e.GetMsg() << "\n"
|
||||
<< "Expression: " << e.GetExpr() << "\n"
|
||||
<< "--------------------------------------";
|
||||
delete cal;
|
||||
|
||||
if (qApp->IsAppInGUIMode())
|
||||
{
|
||||
DialogUndo *dialogUndo = new DialogUndo(qApp->getMainWindow());
|
||||
QScopedPointer<DialogUndo> dialogUndo(new DialogUndo(qApp->getMainWindow()));
|
||||
forever
|
||||
{
|
||||
if (dialogUndo->exec() == QDialog::Accepted)
|
||||
|
@ -323,8 +321,7 @@ qreal VDrawTool::CheckFormula(const quint32 &toolId, QString &formula, VContaine
|
|||
const UndoButton resultUndo = dialogUndo->Result();
|
||||
if (resultUndo == UndoButton::Fix)
|
||||
{
|
||||
DialogEditWrongFormula *dialog = new DialogEditWrongFormula(data, toolId,
|
||||
qApp->getMainWindow());
|
||||
auto *dialog = new DialogEditWrongFormula(data, toolId, qApp->getMainWindow());
|
||||
dialog->setWindowTitle(tr("Edit wrong formula"));
|
||||
dialog->SetFormula(formula);
|
||||
if (dialog->exec() == QDialog::Accepted)
|
||||
|
@ -333,10 +330,8 @@ qreal VDrawTool::CheckFormula(const quint32 &toolId, QString &formula, VContaine
|
|||
/* Need delete dialog here because parser in dialog don't allow use correct separator for
|
||||
* parsing here. */
|
||||
delete dialog;
|
||||
Calculator *cal1 = new Calculator();
|
||||
QScopedPointer<Calculator> cal1(new Calculator());
|
||||
result = cal1->EvalFormula(data->PlainVariables(), formula);
|
||||
delete cal1; /* Here can be memory leak, but dialog already checked this formula and
|
||||
probability very low. */
|
||||
|
||||
if (qIsInf(result) || qIsNaN(result))
|
||||
{
|
||||
|
@ -358,11 +353,9 @@ qreal VDrawTool::CheckFormula(const quint32 &toolId, QString &formula, VContaine
|
|||
}
|
||||
else
|
||||
{
|
||||
delete dialogUndo;
|
||||
throw;
|
||||
}
|
||||
}
|
||||
delete dialogUndo;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -158,9 +158,8 @@ qreal Visualization::FindVal(const QString &expression, const QHash<QString, qre
|
|||
QString formula = expression;
|
||||
formula.replace("\n", " ");
|
||||
formula = qApp->TrVars()->FormulaFromUser(formula, qApp->Settings()->GetOsSeparator());
|
||||
Calculator *cal = new Calculator();
|
||||
QScopedPointer<Calculator> cal(new Calculator());
|
||||
val = cal->EvalFormula(vars, formula);
|
||||
delete cal;
|
||||
|
||||
if (qIsInf(val) || qIsNaN(val))
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue
Block a user