Replace combobox with radio buttons

This commit is contained in:
André Althaus
2024-05-28 09:32:34 +02:00
parent 099e33a77f
commit b42d56bb3b
3 changed files with 69 additions and 42 deletions

View File

@@ -91,10 +91,6 @@ void TaskTransformedParameters::setupUI()
ui->setupUi(proxy);
QMetaObject::connectSlotsByName(this);
connect(ui->comboMode,
qOverload<int>(&QComboBox::activated),
this,
&TaskTransformedParameters::onModeChanged);
connect(ui->buttonAddFeature,
&QToolButton::toggled,
this,
@@ -126,9 +122,25 @@ void TaskTransformedParameters::setupUI()
auto pcTransformed = static_cast<PartDesign::Transformed*>(getObject());
using Mode = PartDesign::Transformed::Mode;
ui->buttonGroupMode->setId(ui->radioTransformBody, static_cast<int>(Mode::TransformBody));
ui->buttonGroupMode->setId(ui->radioTransformToolShapes, static_cast<int>(Mode::TransformToolShapes));
connect(ui->buttonGroupMode,
qOverload<int>(&QButtonGroup::idClicked),
this,
&TaskTransformedParameters::onModeChanged);
auto const mode = static_cast<Mode>(pcTransformed->TransformMode.getValue());
ui->groupFeatureList->setEnabled(mode == Mode::TransformToolShapes);
ui->comboMode->setCurrentIndex(static_cast<int>(mode));
switch (mode) {
case Mode::TransformBody:
ui->radioTransformBody->setChecked(true);
break;
case Mode::TransformToolShapes:
ui->radioTransformToolShapes->setChecked(true);
break;
}
std::vector<App::DocumentObject*> originals = pcTransformed->Originals.getValues();
// Fill data into dialog elements
@@ -281,16 +293,20 @@ bool TaskTransformedParameters::isEnabledTransaction() const
return enableTransaction;
}
void TaskTransformedParameters::onModeChanged(int mode)
void TaskTransformedParameters::onModeChanged(int mode_id)
{
using Mode = PartDesign::Transformed::Mode;
if (mode_id < 0) {
return;
}
auto pcTransformed = static_cast<PartDesign::Transformed*>(getObject());
pcTransformed->TransformMode.setValue(mode);
pcTransformed->TransformMode.setValue(mode_id);
auto const tmode = static_cast<Mode>(mode);
ui->groupFeatureList->setEnabled(tmode == Mode::TransformToolShapes);
if (tmode == Mode::TransformBody) {
using Mode = PartDesign::Transformed::Mode;
Mode const mode = static_cast<Mode>(mode_id);
ui->groupFeatureList->setEnabled(mode == Mode::TransformToolShapes);
if (mode == Mode::TransformBody) {
ui->listWidgetFeatures->clear();
}
setupTransaction();

View File

@@ -228,7 +228,7 @@ private Q_SLOTS:
void onButtonRemoveFeature(bool checked);
void onFeatureDeleted();
void indexesMoved();
void onModeChanged(int mode);
void onModeChanged(int mode_id);
private:
/** Setup the parameter UI.

View File

@@ -15,38 +15,45 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Mode:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboMode">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>Transform tool shapes</string>
</property>
</item>
<item>
<widget class="QWidget" name="widget" native="true">
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QRadioButton" name="radioTransformBody">
<property name="text">
<string>Transform body</string>
</property>
</item>
</widget>
</item>
</layout>
<property name="checked">
<bool>true</bool>
</property>
<attribute name="buttonGroup">
<string notr="true">buttonGroupMode</string>
</attribute>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioTransformToolShapes">
<property name="text">
<string>Transform tool shapes</string>
</property>
<attribute name="buttonGroup">
<string notr="true">buttonGroupMode</string>
</attribute>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="groupFeatureList" native="true">
@@ -122,7 +129,8 @@
</layout>
</widget>
<tabstops>
<tabstop>comboMode</tabstop>
<tabstop>radioTransformBody</tabstop>
<tabstop>radioTransformToolShapes</tabstop>
<tabstop>buttonAddFeature</tabstop>
<tabstop>buttonRemoveFeature</tabstop>
<tabstop>listWidgetFeatures</tabstop>
@@ -130,4 +138,7 @@
</tabstops>
<resources/>
<connections/>
<buttongroups>
<buttongroup name="buttonGroupMode"/>
</buttongroups>
</ui>