From c090325875602abb1b459fa5b5762f94d865e152 Mon Sep 17 00:00:00 2001 From: dismine Date: Mon, 14 Jul 2014 16:33:03 +0300 Subject: [PATCH] DialogLine - check if names of points don't equal. --HG-- branch : develop --- src/app/dialogs/tools/dialogline.cpp | 39 ++++++++++++++++++---------- src/app/dialogs/tools/dialogline.h | 3 ++- src/app/dialogs/tools/dialogline.ui | 4 +-- 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/app/dialogs/tools/dialogline.cpp b/src/app/dialogs/tools/dialogline.cpp index e21037b07..c015a1104 100644 --- a/src/app/dialogs/tools/dialogline.cpp +++ b/src/app/dialogs/tools/dialogline.cpp @@ -49,6 +49,11 @@ DialogLine::DialogLine(const VContainer *data, QWidget *parent) FillComboBoxTypeLine(ui->comboBoxLineType); number = 0; + + connect(ui->comboBoxFirstPoint, static_cast(&QComboBox::currentIndexChanged), + this, &DialogLine::PointNameChanged); + connect(ui->comboBoxSecondPoint, static_cast(&QComboBox::currentIndexChanged), + this, &DialogLine::PointNameChanged); } //--------------------------------------------------------------------------------------------------------------------- @@ -64,13 +69,7 @@ DialogLine::~DialogLine() */ void DialogLine::setSecondPoint(const quint32 &value) { - secondPoint = value; - const VPointF *point = data->GeometricObject(value); - qint32 index = ui->comboBoxSecondPoint->findText(point->name()); - if (index != -1) - { - ui->comboBoxSecondPoint->setCurrentIndex(index); - } + setPointId(ui->comboBoxSecondPoint, secondPoint, value, 0); } //--------------------------------------------------------------------------------------------------------------------- @@ -91,13 +90,7 @@ void DialogLine::setTypeLine(const QString &value) */ void DialogLine::setFirstPoint(const quint32 &value) { - firstPoint = value; - const VPointF *point = data->GeometricObject(value); - qint32 index = ui->comboBoxFirstPoint->findText(point->name()); - if (index != -1) - { - ui->comboBoxFirstPoint->setCurrentIndex(index); - } + setPointId(ui->comboBoxFirstPoint, firstPoint, value, 0); } //--------------------------------------------------------------------------------------------------------------------- @@ -115,6 +108,24 @@ void DialogLine::DialogAccepted() DialogClosed(QDialog::Accepted); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogLine::PointNameChanged() +{ + if (getCurrentObjectId(ui->comboBoxFirstPoint) == getCurrentObjectId(ui->comboBoxSecondPoint)) + { + flagError = false; + ChangeColor(ui->labelFirstPoint, Qt::red); + ChangeColor(ui->labelSecondPoint, Qt::red); + } + else + { + flagError = true; + ChangeColor(ui->labelFirstPoint, QColor(76, 76, 76)); + ChangeColor(ui->labelSecondPoint, QColor(76, 76, 76)); + } + CheckState(); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief ChoosedObject gets id and type of selected object. Save right data and ignore wrong. diff --git a/src/app/dialogs/tools/dialogline.h b/src/app/dialogs/tools/dialogline.h index 4de61cfbb..0588a92f3 100644 --- a/src/app/dialogs/tools/dialogline.h +++ b/src/app/dialogs/tools/dialogline.h @@ -60,7 +60,8 @@ public slots: /** TODO ISSUE 79 : create real function * @brief DialogApply apply data and emit signal about applied dialog. */ - virtual void DialogApply(){} + virtual void DialogApply(){} + virtual void PointNameChanged(); private: Q_DISABLE_COPY(DialogLine) diff --git a/src/app/dialogs/tools/dialogline.ui b/src/app/dialogs/tools/dialogline.ui index 594335056..5860600dc 100644 --- a/src/app/dialogs/tools/dialogline.ui +++ b/src/app/dialogs/tools/dialogline.ui @@ -39,7 +39,7 @@ - + 90 @@ -72,7 +72,7 @@ - + 90