From 4fadf793a7faa44e9a171ce6fd8c3d146ffada1e Mon Sep 17 00:00:00 2001 From: donovaly Date: Sun, 22 Mar 2020 04:29:58 +0100 Subject: [PATCH] [TD] make GeomHatch dialog show changes immediately also change SpineEdit step to better values --- src/Mod/TechDraw/Gui/TaskGeomHatch.cpp | 36 ++++++++++++++++++++++++++ src/Mod/TechDraw/Gui/TaskGeomHatch.h | 6 +++++ 2 files changed, 42 insertions(+) diff --git a/src/Mod/TechDraw/Gui/TaskGeomHatch.cpp b/src/Mod/TechDraw/Gui/TaskGeomHatch.cpp index 2c48a4c968..6447649c24 100644 --- a/src/Mod/TechDraw/Gui/TaskGeomHatch.cpp +++ b/src/Mod/TechDraw/Gui/TaskGeomHatch.cpp @@ -77,6 +77,7 @@ void TaskGeomHatch::initUi() ui->fcFile->setFileName(QString::fromUtf8(m_file.data(), m_file.size())); std::vector names = PATLineSpec::getPatternList(m_file); QStringList qsNames = listToQ(names); + ui->cbName->addItems(qsNames); int nameIndex = ui->cbName->findText(QString::fromUtf8(m_name.data(),m_name.size())); if (nameIndex > -1) { @@ -84,9 +85,16 @@ void TaskGeomHatch::initUi() } else { Base::Console().Warning("Warning - Pattern name *%s* not found in current PAT File\n", m_name.c_str()); } + connect(ui->cbName, SIGNAL(currentIndexChanged(int)), this, SLOT(onNameChanged())); + ui->sbScale->setValue(m_scale); + ui->sbScale->setSingleStep(0.1); + connect(ui->sbScale, SIGNAL(valueChanged(double)), this, SLOT(onScaleChanged())); ui->sbWeight->setValue(m_weight); + ui->sbWeight->setSingleStep(0.1); + connect(ui->sbWeight, SIGNAL(valueChanged(double)), this, SLOT(onLineWeightChanged())); ui->ccColor->setColor(m_color.asValue()); + connect(ui->ccColor, SIGNAL(changed()), this, SLOT(onColorChanged())); } //move values from screen to DocObjs @@ -134,6 +142,34 @@ bool TaskGeomHatch::accept() return true; } +void TaskGeomHatch::onNameChanged() +{ + QString cText = ui->cbName->currentText(); + m_name = cText.toUtf8().constData(); + m_hatch->NamePattern.setValue(m_name); + m_source->getDocument()->recompute(); +} + +void TaskGeomHatch::onScaleChanged() +{ + m_hatch->ScalePattern.setValue(ui->sbScale->value()); + m_source->getDocument()->recompute(); +} + +void TaskGeomHatch::onLineWeightChanged() +{ + m_Vp->WeightPattern.setValue(ui->sbWeight->value()); + m_source->getDocument()->recompute(); +} + +void TaskGeomHatch::onColorChanged() +{ + App::Color ac; + ac.setValue(ui->ccColor->color()); + m_Vp->ColorPattern.setValue(ac); + m_source->getDocument()->recompute(); +} + bool TaskGeomHatch::reject() { if (getCreateMode()) { diff --git a/src/Mod/TechDraw/Gui/TaskGeomHatch.h b/src/Mod/TechDraw/Gui/TaskGeomHatch.h index 6492278bac..6c2b135fe9 100644 --- a/src/Mod/TechDraw/Gui/TaskGeomHatch.h +++ b/src/Mod/TechDraw/Gui/TaskGeomHatch.h @@ -69,6 +69,12 @@ protected: void getParameters(); QStringList listToQ(std::vector in); +private Q_SLOTS: + void onNameChanged(); + void onScaleChanged(); + void onLineWeightChanged(); + void onColorChanged(); + private: Ui_TaskGeomHatch * ui; TechDraw::DrawGeomHatch* m_hatch;