diff --git a/src/app/valentina/mainwindow.cpp b/src/app/valentina/mainwindow.cpp index 03b76c2a2..3de1c204c 100644 --- a/src/app/valentina/mainwindow.cpp +++ b/src/app/valentina/mainwindow.cpp @@ -143,7 +143,10 @@ MainWindow::MainWindow(QWidget *parent) connect(doc, &VPattern::CheckLayout, [this](){ if (pattern->DataDetails()->count() == 0) { - ActionDraw(true); + if(not ui->actionDraw->isChecked()) + { + ActionDraw(true); + } } }); connect(doc, &VPattern::SetCurrentPP, this, &MainWindow::GlobalChangePP); @@ -688,6 +691,7 @@ void MainWindow::ClosedDialogWithApply(int result) vtool->FullUpdateFromGuiApply(); } } + SCASSERT(dialogTool != nullptr); QGraphicsItem *tool = dynamic_cast(dialogTool->GetAssociatedTool()); ui->view->itemClicked(tool); if (dialogTool->GetAssociatedTool() != nullptr) diff --git a/src/libs/vtools/dialogs/tools/dialogdetail.cpp b/src/libs/vtools/dialogs/tools/dialogdetail.cpp index 72513b0c9..11b0e8eea 100644 --- a/src/libs/vtools/dialogs/tools/dialogdetail.cpp +++ b/src/libs/vtools/dialogs/tools/dialogdetail.cpp @@ -85,7 +85,7 @@ DialogDetail::DialogDetail(const VContainer *data, const quint32 &toolId, QWidge connect(ui.checkBoxSeams, &QCheckBox::clicked, this, &DialogDetail::ClickedSeams); connect(ui.checkBoxClosed, &QCheckBox::clicked, this, &DialogDetail::ClickedClosed); connect(ui.checkBoxReverse, &QCheckBox::clicked, this, &DialogDetail::ClickedReverse); - connect(ui.lineEditNameDetail, &QLineEdit::textChanged, this, &DialogDetail::NamePointChanged); + connect(ui.lineEditNameDetail, &QLineEdit::textChanged, this, &DialogDetail::NameDetailChanged); connect(ui.toolButtonDelete, &QToolButton::clicked, this, &DialogDetail::DeleteItem); connect(ui.toolButtonUp, &QToolButton::clicked, this, &DialogDetail::ScrollUp); @@ -245,6 +245,27 @@ void DialogDetail::Remove() SetAddMode(); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogDetail::NameDetailChanged() +{ + SCASSERT(labelEditNamePoint != nullptr); + QLineEdit* edit = qobject_cast(sender()); + if (edit) + { + if (edit->text().isEmpty()) + { + flagName = false; + ChangeColor(labelEditNamePoint, Qt::red); + } + else + { + flagName = true; + ChangeColor(labelEditNamePoint, okColor); + } + } + CheckState(); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief NewItem add new object (point, arc, spline or spline path) to list diff --git a/src/libs/vtools/dialogs/tools/dialogdetail.h b/src/libs/vtools/dialogs/tools/dialogdetail.h index e1333e327..3c70d6e2e 100644 --- a/src/libs/vtools/dialogs/tools/dialogdetail.h +++ b/src/libs/vtools/dialogs/tools/dialogdetail.h @@ -70,6 +70,8 @@ protected slots: void Cancel(); void Remove(); +private slots: + void NameDetailChanged(); private: /** @brief ui keeps information about user interface */ diff --git a/src/libs/vtools/dialogs/tools/dialogtool.cpp b/src/libs/vtools/dialogs/tools/dialogtool.cpp index 809635e4d..af36c41af 100644 --- a/src/libs/vtools/dialogs/tools/dialogtool.cpp +++ b/src/libs/vtools/dialogs/tools/dialogtool.cpp @@ -928,8 +928,16 @@ void DialogTool::Build(const Tool &type) //--------------------------------------------------------------------------------------------------------------------- void DialogTool::SetAssociatedTool(VAbstractTool *tool) { - this->associatedTool=tool; - SetToolId(tool->getId()); + if (tool != nullptr) + { + associatedTool = tool; + SetToolId(tool->getId()); + } + else + { + associatedTool = nullptr; + SetToolId(NULL_ID); + } } //---------------------------------------------------------------------------------------------------------------------