Use native QString method for replacing strings. Fix bug with InitOkCancel
method. Still continue crash. --HG-- branch : DialogTools
This commit is contained in:
parent
d82d6b40c0
commit
98c90ee5fe
|
@ -43,7 +43,7 @@ DialogAlongLine::DialogAlongLine(const VContainer *data, QWidget *parent)
|
||||||
|
|
||||||
flagFormula = false;
|
flagFormula = false;
|
||||||
flagName = false;
|
flagName = false;
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
||||||
FillComboBoxTypeLine(ui->comboBoxLineType);
|
FillComboBoxTypeLine(ui->comboBoxLineType);
|
||||||
|
|
|
@ -48,7 +48,7 @@ DialogArc::DialogArc(const VContainer *data, QWidget *parent)
|
||||||
timerF2 = new QTimer(this);
|
timerF2 = new QTimer(this);
|
||||||
connect(timerF2, &QTimer::timeout, this, &DialogArc::EvalF2);
|
connect(timerF2, &QTimer::timeout, this, &DialogArc::EvalF2);
|
||||||
|
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
|
|
||||||
FillComboBoxPoints(ui->comboBoxBasePoint);
|
FillComboBoxPoints(ui->comboBoxBasePoint);
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ DialogBisector::DialogBisector(const VContainer *data, QWidget *parent)
|
||||||
lineEditFormula = ui->lineEditFormula;
|
lineEditFormula = ui->lineEditFormula;
|
||||||
labelEditFormula = ui->labelEditFormula;
|
labelEditFormula = ui->labelEditFormula;
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
flagFormula = false;
|
flagFormula = false;
|
||||||
flagName = false;
|
flagName = false;
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
|
@ -45,7 +45,7 @@ DialogCutArc::DialogCutArc(const VContainer *data, QWidget *parent) :
|
||||||
labelEditFormula = ui->labelEditFormula;
|
labelEditFormula = ui->labelEditFormula;
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
|
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
flagFormula = false;
|
flagFormula = false;
|
||||||
flagName = false;
|
flagName = false;
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
|
@ -39,7 +39,7 @@ DialogCutSpline::DialogCutSpline(const VContainer *data, QWidget *parent)
|
||||||
lineEditFormula = ui->lineEditFormula;
|
lineEditFormula = ui->lineEditFormula;
|
||||||
labelEditFormula = ui->labelEditFormula;
|
labelEditFormula = ui->labelEditFormula;
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
|
|
||||||
flagFormula = false;
|
flagFormula = false;
|
||||||
flagName = false;
|
flagName = false;
|
||||||
|
|
|
@ -41,7 +41,7 @@ DialogCutSplinePath::DialogCutSplinePath(const VContainer *data, QWidget *parent
|
||||||
labelEditFormula = ui->labelEditFormula;
|
labelEditFormula = ui->labelEditFormula;
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
|
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
flagFormula = false;
|
flagFormula = false;
|
||||||
flagName = false;
|
flagName = false;
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
|
@ -46,7 +46,7 @@ DialogEndLine::DialogEndLine(const VContainer *data, QWidget *parent)
|
||||||
// TODO : auto extend height on first value length.
|
// TODO : auto extend height on first value length.
|
||||||
this->formulaBaseHeight=ui->plainTextEditFormula->height();
|
this->formulaBaseHeight=ui->plainTextEditFormula->height();
|
||||||
|
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
flagFormula = false;
|
flagFormula = false;
|
||||||
flagName = false;
|
flagName = false;
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
|
@ -38,7 +38,7 @@ DialogHeight::DialogHeight(const VContainer *data, QWidget *parent)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
flagName = false;
|
flagName = false;
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ DialogLine::DialogLine(const VContainer *data, QWidget *parent)
|
||||||
:DialogTool(data, parent), ui(new Ui::DialogLine), number(0), firstPoint(0), secondPoint(0), typeLine(QString())
|
:DialogTool(data, parent), ui(new Ui::DialogLine), number(0), firstPoint(0), secondPoint(0), typeLine(QString())
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
|
|
||||||
FillComboBoxPoints(ui->comboBoxFirstPoint);
|
FillComboBoxPoints(ui->comboBoxFirstPoint);
|
||||||
FillComboBoxPoints(ui->comboBoxSecondPoint);
|
FillComboBoxPoints(ui->comboBoxSecondPoint);
|
||||||
|
|
|
@ -38,7 +38,7 @@ DialogLineIntersect::DialogLineIntersect(const VContainer *data, QWidget *parent
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
number = 0;
|
number = 0;
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
flagName = false;
|
flagName = false;
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ DialogNormal::DialogNormal(const VContainer *data, QWidget *parent)
|
||||||
lineEditFormula = ui->lineEditFormula;
|
lineEditFormula = ui->lineEditFormula;
|
||||||
labelEditFormula = ui->labelEditFormula;
|
labelEditFormula = ui->labelEditFormula;
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
|
|
||||||
flagFormula = false;
|
flagFormula = false;
|
||||||
flagName = false;
|
flagName = false;
|
||||||
|
|
|
@ -38,7 +38,7 @@ DialogPointOfIntersection::DialogPointOfIntersection(const VContainer *data, QWi
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
flagName = false;
|
flagName = false;
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ DialogShoulderPoint::DialogShoulderPoint(const VContainer *data, QWidget *parent
|
||||||
lineEditFormula = ui->lineEditFormula;
|
lineEditFormula = ui->lineEditFormula;
|
||||||
labelEditFormula = ui->labelEditFormula;
|
labelEditFormula = ui->labelEditFormula;
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
|
|
||||||
flagFormula = false;
|
flagFormula = false;
|
||||||
flagName = false;
|
flagName = false;
|
||||||
|
|
|
@ -40,7 +40,7 @@ DialogSinglePoint::DialogSinglePoint(const VContainer *data, QWidget *parent)
|
||||||
ui->doubleSpinBoxX->setRange(0, qApp->fromPixel(SceneSize));
|
ui->doubleSpinBoxX->setRange(0, qApp->fromPixel(SceneSize));
|
||||||
ui->doubleSpinBoxY->setRange(0, qApp->fromPixel(SceneSize));
|
ui->doubleSpinBoxY->setRange(0, qApp->fromPixel(SceneSize));
|
||||||
labelEditNamePoint = ui->labelEditName;
|
labelEditNamePoint = ui->labelEditName;
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
|
|
||||||
flagName = false;
|
flagName = false;
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
|
@ -37,7 +37,7 @@ DialogSpline::DialogSpline(const VContainer *data, QWidget *parent)
|
||||||
kAsm1(1), kAsm2(1), kCurve(1)
|
kAsm1(1), kAsm2(1), kCurve(1)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
|
|
||||||
FillComboBoxPoints(ui->comboBoxP1);
|
FillComboBoxPoints(ui->comboBoxP1);
|
||||||
FillComboBoxPoints(ui->comboBoxP4);
|
FillComboBoxPoints(ui->comboBoxP4);
|
||||||
|
|
|
@ -37,7 +37,7 @@ DialogSplinePath::DialogSplinePath(const VContainer *data, QWidget *parent)
|
||||||
:DialogTool(data, parent), ui(new Ui::DialogSplinePath), path(VSplinePath())
|
:DialogTool(data, parent), ui(new Ui::DialogSplinePath), path(VSplinePath())
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
bOk->setEnabled(false);
|
bOk->setEnabled(false);
|
||||||
|
|
||||||
FillComboBoxPoints(ui->comboBoxPoint);
|
FillComboBoxPoints(ui->comboBoxPoint);
|
||||||
|
|
|
@ -435,11 +435,24 @@ void DialogTool::Eval(QPlainTextEdit *edit, bool &flag, QTimer *timer, QLabel *l
|
||||||
QString formula = edit->toPlainText();
|
QString formula = edit->toPlainText();
|
||||||
formula.replace("\n"," ");
|
formula.replace("\n"," ");
|
||||||
formula = qApp->FormulaFromUser(formula);
|
formula = qApp->FormulaFromUser(formula);
|
||||||
Calculator cal(data);
|
Calculator *cal = new Calculator(data);
|
||||||
const qreal result = cal.EvalFormula(formula);
|
const qreal result = cal->EvalFormula(formula);
|
||||||
|
delete cal;
|
||||||
|
|
||||||
|
QSettings settings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(),
|
||||||
|
QApplication::applicationName());
|
||||||
|
bool osSeparatorValue = settings.value("configuration/osSeparator", 1).toBool();
|
||||||
|
|
||||||
|
if (osSeparatorValue)
|
||||||
|
{
|
||||||
QLocale loc = QLocale::system();
|
QLocale loc = QLocale::system();
|
||||||
label->setText(loc.toString(result));
|
label->setText(loc.toString(result));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
QLocale loc = QLocale(QLocale::C);
|
||||||
|
label->setText(loc.toString(result));
|
||||||
|
}
|
||||||
flag = true;
|
flag = true;
|
||||||
palette.setColor(labelEditFormula->foregroundRole(), QColor(76, 76, 76));
|
palette.setColor(labelEditFormula->foregroundRole(), QColor(76, 76, 76));
|
||||||
emit ToolTip("");
|
emit ToolTip("");
|
||||||
|
|
|
@ -475,6 +475,16 @@ protected:
|
||||||
connect(radioButtonLengthCurve, &QRadioButton::clicked, this, &DialogTool::LengthCurves);
|
connect(radioButtonLengthCurve, &QRadioButton::clicked, this, &DialogTool::LengthCurves);
|
||||||
}
|
}
|
||||||
template <typename T>
|
template <typename T>
|
||||||
|
void InitOkCancelApply(T *ui)
|
||||||
|
{
|
||||||
|
InitOkCancel(ui);
|
||||||
|
// TODO issue #79
|
||||||
|
bApply = ui->buttonBox->button(QDialogButtonBox::Apply);
|
||||||
|
Q_CHECK_PTR(bApply);
|
||||||
|
connect(bApply, &QPushButton::clicked, this, &DialogTool::DialogApply);
|
||||||
|
}
|
||||||
|
//Left this method for dialog what do not need apply button
|
||||||
|
template <typename T>
|
||||||
void InitOkCancel(T *ui)
|
void InitOkCancel(T *ui)
|
||||||
{
|
{
|
||||||
bOk = ui->buttonBox->button(QDialogButtonBox::Ok);
|
bOk = ui->buttonBox->button(QDialogButtonBox::Ok);
|
||||||
|
@ -484,10 +494,6 @@ protected:
|
||||||
QPushButton *bCancel = ui->buttonBox->button(QDialogButtonBox::Cancel);
|
QPushButton *bCancel = ui->buttonBox->button(QDialogButtonBox::Cancel);
|
||||||
Q_CHECK_PTR(bCancel);
|
Q_CHECK_PTR(bCancel);
|
||||||
connect(bCancel, &QPushButton::clicked, this, &DialogTool::DialogRejected);
|
connect(bCancel, &QPushButton::clicked, this, &DialogTool::DialogRejected);
|
||||||
// TODO issue #79
|
|
||||||
bApply = ui->buttonBox->button(QDialogButtonBox::Apply);
|
|
||||||
Q_CHECK_PTR(bApply);
|
|
||||||
connect(bApply, &QPushButton::clicked, this, &DialogTool::DialogApply);
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* @brief associatedTool vdrawtool associated with opened dialog.
|
* @brief associatedTool vdrawtool associated with opened dialog.
|
||||||
|
|
|
@ -38,7 +38,7 @@ DialogTriangle::DialogTriangle(const VContainer *data, QWidget *parent)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
labelEditNamePoint = ui->labelEditNamePoint;
|
labelEditNamePoint = ui->labelEditNamePoint;
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
flagName = false;
|
flagName = false;
|
||||||
CheckState();
|
CheckState();
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ DialogUnionDetails::DialogUnionDetails(const VContainer *data, QWidget *parent)
|
||||||
numberP(0), p1(0), p2(0)
|
numberP(0), p1(0), p2(0)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
InitOkCancel(ui);
|
InitOkCancelApply(ui);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -190,9 +190,9 @@ qreal VDrawTool::CheckFormula(QString &formula, VContainer *data)
|
||||||
//Need delete dialog here because parser in dialog don't allow use correct separator for parsing here.
|
//Need delete dialog here because parser in dialog don't allow use correct separator for parsing here.
|
||||||
//Don't know why.
|
//Don't know why.
|
||||||
delete dialog;
|
delete dialog;
|
||||||
Calculator *cal = new Calculator(data);
|
Calculator *cal1 = new Calculator(data);
|
||||||
result = cal->EvalFormula(formula);
|
result = cal1->EvalFormula(formula);
|
||||||
delete cal;//Here can be memory leak, but dialog already check this formula and probability very low.
|
delete cal1;//Here can be memory leak, but dialog already check this formula and probability very low.
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -111,8 +111,8 @@ QmuParserError::QmuParserError ( EErrorCodes a_iErrc )
|
||||||
m_ErrMsg ( QmuParserErrorMsg::Instance() )
|
m_ErrMsg ( QmuParserErrorMsg::Instance() )
|
||||||
{
|
{
|
||||||
m_sMsg = m_ErrMsg[m_iErrc];
|
m_sMsg = m_ErrMsg[m_iErrc];
|
||||||
ReplaceSubString ( m_sMsg, "$POS$", QString().setNum ( m_iPos ) );
|
m_sMsg.replace("$POS$", QString().setNum ( m_iPos ));
|
||||||
ReplaceSubString ( m_sMsg, "$TOK$", m_sTok );
|
m_sMsg.replace("$TOK$", m_sTok );
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -137,8 +137,8 @@ QmuParserError::QmuParserError ( EErrorCodes iErrc, const QString &sTok, const Q
|
||||||
m_ErrMsg ( QmuParserErrorMsg::Instance() )
|
m_ErrMsg ( QmuParserErrorMsg::Instance() )
|
||||||
{
|
{
|
||||||
m_sMsg = m_ErrMsg[m_iErrc];
|
m_sMsg = m_ErrMsg[m_iErrc];
|
||||||
ReplaceSubString ( m_sMsg, "$POS$", QString().setNum ( m_iPos ) );
|
m_sMsg.replace("$POS$", QString().setNum ( m_iPos ));
|
||||||
ReplaceSubString ( m_sMsg, "$TOK$", m_sTok );
|
m_sMsg.replace("$TOK$", m_sTok );
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -153,8 +153,8 @@ QmuParserError::QmuParserError ( EErrorCodes a_iErrc, int a_iPos, const QString
|
||||||
m_ErrMsg ( QmuParserErrorMsg::Instance() )
|
m_ErrMsg ( QmuParserErrorMsg::Instance() )
|
||||||
{
|
{
|
||||||
m_sMsg = m_ErrMsg[m_iErrc];
|
m_sMsg = m_ErrMsg[m_iErrc];
|
||||||
ReplaceSubString ( m_sMsg, "$POS$", QString().setNum ( m_iPos ) );
|
m_sMsg.replace("$POS$", QString().setNum ( m_iPos ));
|
||||||
ReplaceSubString ( m_sMsg, "$TOK$", m_sTok );
|
m_sMsg.replace("$TOK$", m_sTok );
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -167,8 +167,8 @@ QmuParserError::QmuParserError ( const QString &szMsg, int iPos, const QString &
|
||||||
: QException(), m_sMsg ( szMsg ), m_sExpr(), m_sTok ( sTok ), m_iPos ( iPos ), m_iErrc ( ecGENERIC ),
|
: QException(), m_sMsg ( szMsg ), m_sExpr(), m_sTok ( sTok ), m_iPos ( iPos ), m_iErrc ( ecGENERIC ),
|
||||||
m_ErrMsg ( QmuParserErrorMsg::Instance() )
|
m_ErrMsg ( QmuParserErrorMsg::Instance() )
|
||||||
{
|
{
|
||||||
ReplaceSubString ( m_sMsg, "$POS$", QString().setNum ( m_iPos ) );
|
m_sMsg.replace("$POS$", QString().setNum ( m_iPos ));
|
||||||
ReplaceSubString ( m_sMsg, "$TOK$", m_sTok );
|
m_sMsg.replace("$TOK$", m_sTok );
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -197,34 +197,6 @@ QmuParserError& QmuParserError::operator= ( const QmuParserError &a_Obj )
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
* @brief Replace all ocuurences of a substring with another string.
|
|
||||||
* @param strFind The string that shall be replaced.
|
|
||||||
* @param strReplaceWith The string that should be inserted instead of strFind
|
|
||||||
*/
|
|
||||||
void QmuParserError::ReplaceSubString ( QString &strSource, const QString &strFind, const QString &strReplaceWith )
|
|
||||||
{
|
|
||||||
QString strResult;
|
|
||||||
int iPos ( 0 );
|
|
||||||
|
|
||||||
for ( ;; )
|
|
||||||
{
|
|
||||||
int iNext = strSource.indexOf ( strFind, iPos );
|
|
||||||
strResult.append ( strSource.mid ( iPos, iNext - iPos ) );
|
|
||||||
|
|
||||||
if ( iNext == -1 )
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
strResult.append ( strReplaceWith );
|
|
||||||
iPos = iNext + strFind.length();
|
|
||||||
}
|
|
||||||
|
|
||||||
strSource.swap ( strResult );
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief Reset the erro object.
|
* @brief Reset the erro object.
|
||||||
|
|
|
@ -156,10 +156,6 @@ private:
|
||||||
int m_iPos; ///< Formula position related to the error
|
int m_iPos; ///< Formula position related to the error
|
||||||
EErrorCodes m_iErrc; ///< Error code
|
EErrorCodes m_iErrc; ///< Error code
|
||||||
const QmuParserErrorMsg &m_ErrMsg;
|
const QmuParserErrorMsg &m_ErrMsg;
|
||||||
/**
|
|
||||||
* @brief Replace all ocuurences of a substring with another string.
|
|
||||||
*/
|
|
||||||
static void ReplaceSubString ( QString &strSource, const QString &strFind, const QString &strReplaceWith );
|
|
||||||
void Reset();
|
void Reset();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user