diff --git a/src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp b/src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp index d2045b6b57..298efb6c76 100644 --- a/src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp @@ -91,6 +91,10 @@ void TaskTransformedParameters::setupUI() ui->setupUi(proxy); QMetaObject::connectSlotsByName(this); + connect(ui->comboMode, + qOverload(&QComboBox::activated), + this, + &TaskTransformedParameters::onModeChanged); connect(ui->buttonAddFeature, &QToolButton::toggled, this, @@ -120,8 +124,13 @@ void TaskTransformedParameters::setupUI() // Get the feature data auto pcTransformed = static_cast(getObject()); - std::vector originals = pcTransformed->Originals.getValues(); + using Mode = PartDesign::Transformed::Mode; + auto const mode = static_cast(pcTransformed->TransformMode.getValue()); + ui->groupFeatureList->setEnabled(mode == Mode::TransformToolShapes); + ui->comboMode->setCurrentIndex(static_cast(mode)); + + std::vector originals = pcTransformed->Originals.getValues(); // Fill data into dialog elements for (auto obj : originals) { if (obj) { @@ -272,6 +281,22 @@ bool TaskTransformedParameters::isEnabledTransaction() const return enableTransaction; } +void TaskTransformedParameters::onModeChanged(int mode) +{ + using Mode = PartDesign::Transformed::Mode; + + auto pcTransformed = static_cast(getObject()); + pcTransformed->TransformMode.setValue(mode); + + auto const tmode = static_cast(mode); + ui->groupFeatureList->setEnabled(tmode == Mode::TransformToolShapes); + if (tmode == Mode::TransformBody) { + ui->listWidgetFeatures->clear(); + } + setupTransaction(); + recomputeFeature(); +} + void TaskTransformedParameters::onButtonAddFeature(bool checked) { if (checked) { diff --git a/src/Mod/PartDesign/Gui/TaskTransformedParameters.h b/src/Mod/PartDesign/Gui/TaskTransformedParameters.h index a94c30add5..c0fc9826b1 100644 --- a/src/Mod/PartDesign/Gui/TaskTransformedParameters.h +++ b/src/Mod/PartDesign/Gui/TaskTransformedParameters.h @@ -228,6 +228,7 @@ private Q_SLOTS: void onButtonRemoveFeature(bool checked); void onFeatureDeleted(); void indexesMoved(); + void onModeChanged(int mode); private: /** Setup the parameter UI. diff --git a/src/Mod/PartDesign/Gui/TaskTransformedParameters.ui b/src/Mod/PartDesign/Gui/TaskTransformedParameters.ui index 14bfe88d8a..1e30aa45d4 100644 --- a/src/Mod/PartDesign/Gui/TaskTransformedParameters.ui +++ b/src/Mod/PartDesign/Gui/TaskTransformedParameters.ui @@ -6,8 +6,8 @@ 0 0 - 262 - 207 + 297 + 248 @@ -15,43 +15,95 @@ - + + + 0 + - + - Add feature - - - true + Mode: - - - Remove feature - - - true + + + + 0 + 0 + + + + Transform tool shapes + + + + + Transform body + + - - - - 16777215 - 120 - - - - List can be reordered by dragging - - - QAbstractItemView::InternalMove - + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + Add feature + + + true + + + + + + + Remove feature + + + true + + + + + + + + + + 16777215 + 120 + + + + List can be reordered by dragging + + + QAbstractItemView::InternalMove + + + + @@ -70,6 +122,7 @@ + comboMode buttonAddFeature buttonRemoveFeature listWidgetFeatures