Fix method DialogIncrements::IncrementUsed.
Checking regular text in expression is not enough to know that an increment was used. --HG-- branch : develop
This commit is contained in:
parent
372ab02bbc
commit
6b29b8c528
|
@ -31,6 +31,7 @@
|
||||||
#include "../vwidgets/vwidgetpopup.h"
|
#include "../vwidgets/vwidgetpopup.h"
|
||||||
#include "../vmisc/vsettings.h"
|
#include "../vmisc/vsettings.h"
|
||||||
#include "../qmuparser/qmudef.h"
|
#include "../qmuparser/qmudef.h"
|
||||||
|
#include "../qmuparser/qmutokenparser.h"
|
||||||
#include "../vpatterndb/vtranslatevars.h"
|
#include "../vpatterndb/vtranslatevars.h"
|
||||||
#include "../vpatterndb/calculator.h"
|
#include "../vpatterndb/calculator.h"
|
||||||
#include "../vtools/dialogs/support/dialogeditwrongformula.h"
|
#include "../vtools/dialogs/support/dialogeditwrongformula.h"
|
||||||
|
@ -491,7 +492,21 @@ bool DialogIncrements::IncrementUsed(const QString &name) const
|
||||||
{
|
{
|
||||||
if (expressions.at(i).indexOf(name) != -1)
|
if (expressions.at(i).indexOf(name) != -1)
|
||||||
{
|
{
|
||||||
return true;
|
// Eval formula
|
||||||
|
try
|
||||||
|
{
|
||||||
|
QScopedPointer<qmu::QmuTokenParser> cal(new qmu::QmuTokenParser(expressions.at(i), false, false));
|
||||||
|
|
||||||
|
// Tokens (variables, measurements)
|
||||||
|
if (cal->GetTokens().values().contains(name))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (const qmu::QmuParserError &)
|
||||||
|
{
|
||||||
|
// Do nothing. Because we not sure if used. A formula is broken.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user