diff --git a/src/app/dialogs/tools/dialogarc.cpp b/src/app/dialogs/tools/dialogarc.cpp index f6deed1fa..e58e11a9b 100644 --- a/src/app/dialogs/tools/dialogarc.cpp +++ b/src/app/dialogs/tools/dialogarc.cpp @@ -36,6 +36,7 @@ #include "../../container/vcontainer.h" #include "../../libs/ifc/xml/vdomdocument.h" #include "../../visualization/vistoolarc.h" +#include "dialogeditwrongformula.h" //--------------------------------------------------------------------------------------------------------------------- /** @@ -51,8 +52,6 @@ DialogArc::DialogArc(const VContainer *data, const quint32 &toolId, QWidget *par { ui->setupUi(this); - InitVariables(ui); - plainTextEditFormula = ui->plainTextEditFormula; this->formulaBaseHeight = ui->plainTextEditFormula->height(); this->formulaBaseHeightF1 = ui->plainTextEditF1->height(); @@ -78,9 +77,9 @@ DialogArc::DialogArc(const VContainer *data, const quint32 &toolId, QWidget *par CheckState(); - connect(ui->toolButtonPutHereRadius, &QPushButton::clicked, this, &DialogArc::PutRadius); - connect(ui->toolButtonPutHereF1, &QPushButton::clicked, this, &DialogArc::PutF1); - connect(ui->toolButtonPutHereF2, &QPushButton::clicked, this, &DialogArc::PutF2); + connect(ui->toolButtonExprRadius, &QPushButton::clicked, this, &DialogArc::FXRadius); + connect(ui->toolButtonExprF1, &QPushButton::clicked, this, &DialogArc::FXF1); + connect(ui->toolButtonExprF2, &QPushButton::clicked, this, &DialogArc::FXF2); connect(ui->plainTextEditFormula, &QPlainTextEdit::textChanged, this, &DialogArc::RadiusChanged); connect(ui->plainTextEditF1, &QPlainTextEdit::textChanged, this, &DialogArc::F1Changed); @@ -259,43 +258,6 @@ void DialogArc::closeEvent(QCloseEvent *event) DialogTool::closeEvent(event); } -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief PutRadius put variable into formula of radius - */ -void DialogArc::PutRadius() -{ - PutValHere(ui->plainTextEditFormula, ui->listWidget); -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief PutF1 put variable into formula of first angle - */ -void DialogArc::PutF1() -{ - PutValHere(ui->plainTextEditF1, ui->listWidget); -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief PutF2 put variable into formula of second angle - */ -void DialogArc::PutF2() -{ - PutValHere(ui->plainTextEditF2, ui->listWidget); -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief LineAngles show variable angles of lines - */ -// cppcheck-suppress unusedFunction -void DialogArc::LineAngles() -{ - ShowLineAngles(); -} - //--------------------------------------------------------------------------------------------------------------------- /** * @brief RadiusChanged after change formula of radius calculate value and show result @@ -329,6 +291,45 @@ void DialogArc::F2Changed() ValFormulaChanged(flagF2, ui->plainTextEditF2, timerF2); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogArc::FXRadius() +{ + DialogEditWrongFormula *dialog = new DialogEditWrongFormula(data, toolId, this); + dialog->setWindowTitle(tr("Edit radius")); + dialog->SetFormula(GetRadius()); + if (dialog->exec() == QDialog::Accepted) + { + SetRadius(dialog->GetFormula()); + } + delete dialog; +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogArc::FXF1() +{ + DialogEditWrongFormula *dialog = new DialogEditWrongFormula(data, toolId, this); + dialog->setWindowTitle(tr("Edit first angle")); + dialog->SetFormula(GetF1()); + if (dialog->exec() == QDialog::Accepted) + { + SetF1(dialog->GetFormula()); + } + delete dialog; +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogArc::FXF2() +{ + DialogEditWrongFormula *dialog = new DialogEditWrongFormula(data, toolId, this); + dialog->setWindowTitle(tr("Edit second angle")); + dialog->SetFormula(GetF2()); + if (dialog->exec() == QDialog::Accepted) + { + SetF2(dialog->GetFormula()); + } + delete dialog; +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief CheckState if all is right enable button ok @@ -377,27 +378,6 @@ void DialogArc::EvalF() CheckAngles(); } -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief ShowLineAngles show varibles angles of lines - */ -void DialogArc::ShowLineAngles() -{ - ui->listWidget->blockSignals(true); - ui->listWidget->clear(); - ui->listWidget->blockSignals(false); - const QMap > lineAnglesTable = data->DataAngleLines(); - QMap >::const_iterator i; - for (i = lineAnglesTable.constBegin(); i != lineAnglesTable.constEnd(); ++i) - { - QListWidgetItem *item = new QListWidgetItem(i.key()); - - item->setFont(QFont("Times", 12, QFont::Bold)); - ui->listWidget->addItem(item); - } - ui->listWidget->setCurrentRow (0); -} - //--------------------------------------------------------------------------------------------------------------------- void DialogArc::CheckAngles() { diff --git a/src/app/dialogs/tools/dialogarc.h b/src/app/dialogs/tools/dialogarc.h index 25143bcfd..d361e1579 100644 --- a/src/app/dialogs/tools/dialogarc.h +++ b/src/app/dialogs/tools/dialogarc.h @@ -70,14 +70,13 @@ public slots: void DeployFormulaTextEdit(); void DeployF1TextEdit(); void DeployF2TextEdit(); - void PutRadius(); - void PutF1(); - void PutF2(); - // cppcheck-suppress unusedFunction - void LineAngles(); void RadiusChanged(); void F1Changed(); void F2Changed(); + + void FXRadius(); + void FXF1(); + void FXF2(); protected: virtual void CheckState(); virtual void ShowVisualization(); @@ -131,7 +130,6 @@ private: void EvalRadius(); void EvalF(); - void ShowLineAngles(); void CheckAngles(); }; diff --git a/src/app/dialogs/tools/dialogarc.ui b/src/app/dialogs/tools/dialogarc.ui index 74bb663a3..f74c2598c 100644 --- a/src/app/dialogs/tools/dialogarc.ui +++ b/src/app/dialogs/tools/dialogarc.ui @@ -7,7 +7,7 @@ 0 0 425 - 577 + 329 @@ -87,16 +87,13 @@ - - - Insert variable into the formula - + ... - :/icon/24x24/putHere.png:/icon/24x24/putHere.png + :/icon/24x24/fx.png:/icon/24x24/fx.png @@ -265,16 +262,13 @@ - - - Insert variable into formula - + ... - :/icon/24x24/putHere.png:/icon/24x24/putHere.png + :/icon/24x24/fx.png:/icon/24x24/fx.png @@ -443,16 +437,13 @@ - - - Insert marked variable into formula - + - ... + ... - :/icon/24x24/putHere.png:/icon/24x24/putHere.png + :/icon/24x24/fx.png:/icon/24x24/fx.png @@ -556,195 +547,39 @@ - - - - - - - - - - - - 0 - 0 - - - - Center point - - - - - - - Select point of center of arc - - - - - - - - - - Color - - - - - - - - - Input data - - - - - - - - 0 - 0 - - - - Size and height - - - true - - - - - - - - 0 - 0 - - - - Measurements - - - - - - - - 0 - 0 - - - - Increments - - - - - - - true - - - - 0 - 0 - - - - Length of lines - - - - - - - true - - - - 0 - 0 - - - - Length of arcs - - - - - - - true - - - - 0 - 0 - - - - Length of curves - - - - - - - true - - - - 0 - 0 - - - - Angle of lines - - - - - - + + + + + + 0 + 0 + + + + Center point + + - - - - - - Hide empty measurements - - - true - - - - - - - Variables - - - - + + + + Select point of center of arc + + + + + + + + + + Color + + - - - - - - - true - - - @@ -759,23 +594,11 @@ plainTextEditFormula - toolButtonPutHereRadius pushButtonGrowLength plainTextEditF1 - toolButtonPutHereF1 pushButtonGrowLengthF1 plainTextEditF2 - toolButtonPutHereF2 pushButtonGrowLengthF2 - radioButtonSizeGrowth - radioButtonStandardTable - radioButtonIncrements - radioButtonLengthLine - radioButtonLengthArc - radioButtonLengthSpline - radioButtonAngleLine - checkBoxHideEmpty - listWidget comboBoxBasePoint comboBoxColor