From 66cc34ed64594545cc0cb10ee893ceabb3cd5f70 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Tue, 24 May 2016 13:29:13 +0300 Subject: [PATCH] Fixed issue "Rotation tool - Cannot edit formula after creation". --HG-- branch : develop --- .../vtools/dialogs/tools/dialogrotation.cpp | 29 ++++++++++++------- .../vtools/dialogs/tools/dialogrotation.h | 2 ++ 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/libs/vtools/dialogs/tools/dialogrotation.cpp b/src/libs/vtools/dialogs/tools/dialogrotation.cpp index ec0c93978..1539fcadb 100644 --- a/src/libs/vtools/dialogs/tools/dialogrotation.cpp +++ b/src/libs/vtools/dialogs/tools/dialogrotation.cpp @@ -48,7 +48,8 @@ DialogRotation::DialogRotation(const VContainer *data, const quint32 &toolId, QW formulaAngle(), formulaBaseHeightAngle(0), objects(), - stage1(true) + stage1(true), + m_suffix() { ui->setupUi(this); @@ -126,12 +127,13 @@ void DialogRotation::SetAngle(const QString &value) //--------------------------------------------------------------------------------------------------------------------- QString DialogRotation::GetSuffix() const { - return ui->lineEditSuffix->text(); + return m_suffix; } //--------------------------------------------------------------------------------------------------------------------- void DialogRotation::SetSuffix(const QString &value) { + m_suffix = value; ui->lineEditSuffix->setText(value); } @@ -289,17 +291,20 @@ void DialogRotation::SuffixChanged() } else { - QRegularExpression rx(NameRegExp()); - const QStringList uniqueNames = data->AllUniqueNames(); - for (int i=0; i < uniqueNames.size(); ++i) + if (m_suffix != suffix) { - const QString name = uniqueNames.at(i) + suffix; - if (not rx.match(name).hasMatch() || not data->IsUnique(name)) + QRegularExpression rx(NameRegExp()); + const QStringList uniqueNames = data->AllUniqueNames(); + for (int i=0; i < uniqueNames.size(); ++i) { - flagName = false; - ChangeColor(ui->labelSuffix, Qt::red); - CheckState(); - return; + const QString name = uniqueNames.at(i) + suffix; + if (not rx.match(name).hasMatch() || not data->IsUnique(name)) + { + flagName = false; + ChangeColor(ui->labelSuffix, Qt::red); + CheckState(); + return; + } } } } @@ -328,6 +333,8 @@ void DialogRotation::ShowVisualization() //--------------------------------------------------------------------------------------------------------------------- void DialogRotation::SaveData() { + m_suffix = ui->lineEditSuffix->text(); + formulaAngle = ui->plainTextEditFormula->toPlainText(); formulaAngle.replace("\n", " "); diff --git a/src/libs/vtools/dialogs/tools/dialogrotation.h b/src/libs/vtools/dialogs/tools/dialogrotation.h index 8dce24d2a..f21ba28c8 100644 --- a/src/libs/vtools/dialogs/tools/dialogrotation.h +++ b/src/libs/vtools/dialogs/tools/dialogrotation.h @@ -98,6 +98,8 @@ private: bool stage1; + QString m_suffix; + void EvalAngle(); };