[FEM] fixes for displacement dialog

- add missing global dialog layout (reported by Qt Designer)
- get rid of arbitrary spinbox limits
- uniform UI element names
- simplify code
This commit is contained in:
Uwe
2022-03-16 01:29:46 +01:00
parent 200e4be033
commit 122e137939
3 changed files with 341 additions and 424 deletions

View File

@@ -82,47 +82,19 @@ TaskFemConstraintDisplacement::TaskFemConstraintDisplacement(ViewProviderFemCons
this->groupLayout()->addWidget(proxy);
// Connect decimal value inputs
connect(ui->spinxDisplacement, SIGNAL(valueChanged(double)), this, SLOT(x_changed(double)));
connect(ui->spinyDisplacement, SIGNAL(valueChanged(double)), this, SLOT(y_changed(double)));
connect(ui->spinzDisplacement, SIGNAL(valueChanged(double)), this, SLOT(z_changed(double)));
connect(ui->rotxv, SIGNAL(valueChanged(double)), this, SLOT(x_rot(double)));
connect(ui->rotyv, SIGNAL(valueChanged(double)), this, SLOT(y_rot(double)));
connect(ui->rotzv, SIGNAL(valueChanged(double)), this, SLOT(z_rot(double)));
// Connect check box values displacements
connect(ui->dispxfix, SIGNAL(stateChanged(int)), this, SLOT(fixx(int)));
connect(ui->dispxfree, SIGNAL(stateChanged(int)), this, SLOT(freex(int)));
connect(ui->dispyfix, SIGNAL(stateChanged(int)), this, SLOT(fixy(int)));
connect(ui->dispyfree, SIGNAL(stateChanged(int)), this, SLOT(freey(int)));
connect(ui->dispzfix, SIGNAL(stateChanged(int)), this, SLOT(fixz(int)));
connect(ui->dispzfree, SIGNAL(stateChanged(int)), this, SLOT(freez(int)));
// Connect to check box values for rotations
connect(ui->rotxfix, SIGNAL(stateChanged(int)), this, SLOT(rotfixx(int)));
connect(ui->rotxfree, SIGNAL(stateChanged(int)), this, SLOT(rotfreex(int)));
connect(ui->rotyfix, SIGNAL(stateChanged(int)), this, SLOT(rotfixy(int)));
connect(ui->rotyfree, SIGNAL(stateChanged(int)), this, SLOT(rotfreey(int)));
connect(ui->rotzfix, SIGNAL(stateChanged(int)), this, SLOT(rotfixz(int)));
connect(ui->rotzfree, SIGNAL(stateChanged(int)), this, SLOT(rotfreez(int)));
// Temporarily prevent unnecessary feature recomputes
ui->spinxDisplacement->blockSignals(true);
ui->spinyDisplacement->blockSignals(true);
ui->spinzDisplacement->blockSignals(true);
ui->rotxv->blockSignals(true);
ui->rotyv->blockSignals(true);
ui->rotzv->blockSignals(true);
ui->dispxfix->blockSignals(true);
ui->dispxfree->blockSignals(true);
ui->dispyfix->blockSignals(true);
ui->dispyfree->blockSignals(true);
ui->dispzfix->blockSignals(true);
ui->dispzfree->blockSignals(true);
ui->rotxfix->blockSignals(true);
ui->rotxfree->blockSignals(true);
ui->rotyfix->blockSignals(true);
ui->rotyfree->blockSignals(true);
ui->rotzfix->blockSignals(true);
ui->rotzfree->blockSignals(true);
// setup ranges
ui->spinxDisplacement->setMinimum(-FLOAT_MAX);
ui->spinxDisplacement->setMaximum(FLOAT_MAX);
ui->spinyDisplacement->setMinimum(-FLOAT_MAX);
ui->spinyDisplacement->setMaximum(FLOAT_MAX);
ui->spinzDisplacement->setMinimum(-FLOAT_MAX);
ui->spinzDisplacement->setMaximum(FLOAT_MAX);
ui->spinxRotation->setMinimum(-FLOAT_MAX);
ui->spinxRotation->setMaximum(FLOAT_MAX);
ui->spinyRotation->setMinimum(-FLOAT_MAX);
ui->spinyRotation->setMaximum(FLOAT_MAX);
ui->spinzRotation->setMinimum(-FLOAT_MAX);
ui->spinzRotation->setMaximum(FLOAT_MAX);
// Get the feature data
Fem::ConstraintDisplacement* pcConstraint = static_cast<Fem::ConstraintDisplacement*>(ConstraintView->getObject());
@@ -154,9 +126,9 @@ TaskFemConstraintDisplacement::TaskFemConstraintDisplacement(ViewProviderFemCons
ui->spinxDisplacement->setValue(fStates[0]);
ui->spinyDisplacement->setValue(fStates[1]);
ui->spinzDisplacement->setValue(fStates[2]);
ui->rotxv->setValue(fStates[3]);
ui->rotyv->setValue(fStates[4]);
ui->rotzv->setValue(fStates[5]);
ui->spinxRotation->setValue(fStates[3]);
ui->spinyRotation->setValue(fStates[4]);
ui->spinzRotation->setValue(fStates[5]);
ui->dispxfix->setChecked(bStates[0]);
ui->dispxfree->setChecked(bStates[1]);
ui->dispyfix->setChecked(bStates[2]);
@@ -178,25 +150,27 @@ TaskFemConstraintDisplacement::TaskFemConstraintDisplacement(ViewProviderFemCons
ui->lw_references->setCurrentRow(0, QItemSelectionModel::ClearAndSelect);
}
//Allow signals again
ui->spinxDisplacement->blockSignals(false);
ui->spinyDisplacement->blockSignals(false);
ui->spinzDisplacement->blockSignals(false);
ui->rotxv->blockSignals(false);
ui->rotyv->blockSignals(false);
ui->rotzv->blockSignals(false);
ui->dispxfix->blockSignals(false);
ui->dispxfree->blockSignals(false);
ui->dispyfix->blockSignals(false);
ui->dispyfree->blockSignals(false);
ui->dispzfix->blockSignals(false);
ui->dispzfree->blockSignals(false);
ui->rotxfix->blockSignals(false);
ui->rotxfree->blockSignals(false);
ui->rotyfix->blockSignals(false);
ui->rotyfree->blockSignals(false);
ui->rotzfix->blockSignals(false);
ui->rotzfree->blockSignals(false);
// Connect decimal value inputs
connect(ui->spinxDisplacement, SIGNAL(valueChanged(double)), this, SLOT(x_changed(double)));
connect(ui->spinyDisplacement, SIGNAL(valueChanged(double)), this, SLOT(y_changed(double)));
connect(ui->spinzDisplacement, SIGNAL(valueChanged(double)), this, SLOT(z_changed(double)));
connect(ui->spinxRotation, SIGNAL(valueChanged(double)), this, SLOT(x_rot(double)));
connect(ui->spinyRotation, SIGNAL(valueChanged(double)), this, SLOT(y_rot(double)));
connect(ui->spinzRotation, SIGNAL(valueChanged(double)), this, SLOT(z_rot(double)));
// Connect check box values displacements
connect(ui->dispxfix, SIGNAL(stateChanged(int)), this, SLOT(fixx(int)));
connect(ui->dispxfree, SIGNAL(stateChanged(int)), this, SLOT(freex(int)));
connect(ui->dispyfix, SIGNAL(stateChanged(int)), this, SLOT(fixy(int)));
connect(ui->dispyfree, SIGNAL(stateChanged(int)), this, SLOT(freey(int)));
connect(ui->dispzfix, SIGNAL(stateChanged(int)), this, SLOT(fixz(int)));
connect(ui->dispzfree, SIGNAL(stateChanged(int)), this, SLOT(freez(int)));
// Connect to check box values for rotations
connect(ui->rotxfix, SIGNAL(stateChanged(int)), this, SLOT(rotfixx(int)));
connect(ui->rotxfree, SIGNAL(stateChanged(int)), this, SLOT(rotfreex(int)));
connect(ui->rotyfix, SIGNAL(stateChanged(int)), this, SLOT(rotfixy(int)));
connect(ui->rotyfree, SIGNAL(stateChanged(int)), this, SLOT(rotfreey(int)));
connect(ui->rotzfix, SIGNAL(stateChanged(int)), this, SLOT(rotfixz(int)));
connect(ui->rotzfree, SIGNAL(stateChanged(int)), this, SLOT(rotfreez(int)));
//Selection buttons
connect(ui->btnAdd, SIGNAL(toggled(bool)),
@@ -345,9 +319,9 @@ void TaskFemConstraintDisplacement::rotfixx(int val){
if (val==2)
{
ui->rotxfree->setChecked(false);
ui->rotxv->setValue(0);
ui->spinxRotation->setValue(0);
}
else if (ui->rotxv->value()==0)
else if (ui->spinxRotation->value()==0)
{
ui->rotxfree->setChecked(true);
}
@@ -357,9 +331,9 @@ void TaskFemConstraintDisplacement::rotfreex(int val){
if (val==2)
{
ui->rotxfix->setChecked(false);
ui->rotxv->setValue(0);
ui->spinxRotation->setValue(0);
}
else if (ui->rotxv->value()==0)
else if (ui->spinxRotation->value()==0)
{
ui->rotxfix->setChecked(true);
}
@@ -369,9 +343,9 @@ void TaskFemConstraintDisplacement::rotfixy(int val){
if (val==2)
{
ui->rotyfree->setChecked(false);
ui->rotyv->setValue(0);
ui->spinyRotation->setValue(0);
}
else if (ui->rotyv->value()==0)
else if (ui->spinyRotation->value()==0)
{
ui->rotyfree->setChecked(true);
}
@@ -381,9 +355,9 @@ void TaskFemConstraintDisplacement::rotfreey(int val){
if (val==2)
{
ui->rotyfix->setChecked(false);
ui->rotyv->setValue(0);
ui->spinyRotation->setValue(0);
}
else if (ui->rotyv->value()==0)
else if (ui->spinyRotation->value()==0)
{
ui->rotyfix->setChecked(true);
}
@@ -393,9 +367,9 @@ void TaskFemConstraintDisplacement::rotfixz(int val){
if (val==2)
{
ui->rotzfree->setChecked(false);
ui->rotzv->setValue(0);
ui->spinzRotation->setValue(0);
}
else if (ui->rotzv->value()==0)
else if (ui->spinzRotation->value()==0)
{
ui->rotzfree->setChecked(true);
}
@@ -405,9 +379,9 @@ void TaskFemConstraintDisplacement::rotfreez(int val){
if (val==2)
{
ui->rotzfix->setChecked(false);
ui->rotzv->setValue(0);
ui->spinzRotation->setValue(0);
}
else if (ui->rotzv->value()==0)
else if (ui->spinzRotation->value()==0)
{
ui->rotzfix->setChecked(true);
}
@@ -535,9 +509,9 @@ const std::string TaskFemConstraintDisplacement::getReferences() const
double TaskFemConstraintDisplacement::get_spinxDisplacement() const{return ui->spinxDisplacement->value();}
double TaskFemConstraintDisplacement::get_spinyDisplacement() const{return ui->spinyDisplacement->value();}
double TaskFemConstraintDisplacement::get_spinzDisplacement() const{return ui->spinzDisplacement->value();}
double TaskFemConstraintDisplacement::get_rotxv() const{return ui->rotxv->value();}
double TaskFemConstraintDisplacement::get_rotyv() const{return ui->rotyv->value();}
double TaskFemConstraintDisplacement::get_rotzv() const{return ui->rotzv->value();}
double TaskFemConstraintDisplacement::get_spinxRotation() const{return ui->spinxRotation->value();}
double TaskFemConstraintDisplacement::get_spinyRotation() const{return ui->spinyRotation->value();}
double TaskFemConstraintDisplacement::get_spinzRotation() const{return ui->spinzRotation->value();}
bool TaskFemConstraintDisplacement::get_dispxfix() const{return ui->dispxfix->isChecked();}
bool TaskFemConstraintDisplacement::get_dispxfree() const{return ui->dispxfree->isChecked();}
@@ -614,11 +588,11 @@ bool TaskDlgFemConstraintDisplacement::accept()
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.zDisplacement = %f",
name.c_str(), parameterDisplacement->get_spinzDisplacement());
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.xRotation = %f",
name.c_str(), parameterDisplacement->get_rotxv());
name.c_str(), parameterDisplacement->get_spinxRotation());
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.yRotation = %f",
name.c_str(), parameterDisplacement->get_rotyv());
name.c_str(), parameterDisplacement->get_spinyRotation());
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.zRotation = %f",
name.c_str(), parameterDisplacement->get_rotzv());
name.c_str(), parameterDisplacement->get_spinzRotation());
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.xFree = %s",
name.c_str(), parameterDisplacement->get_dispxfree() ? "True" : "False");
Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.xFix = %s",

View File

@@ -55,9 +55,9 @@ public:
double get_spinxDisplacement()const;
double get_spinyDisplacement()const;
double get_spinzDisplacement()const;
double get_rotxv()const;
double get_rotyv()const;
double get_rotzv()const;
double get_spinxRotation()const;
double get_spinyRotation()const;
double get_spinzRotation()const;
bool get_dispxfix()const;
bool get_dispxfree()const;
bool get_dispyfix()const;

View File

@@ -10,19 +10,19 @@
<x>0</x>
<y>0</y>
<width>330</width>
<height>800</height>
<height>717</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>3</horstretch>
<verstretch>80</verstretch>
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>330</width>
<height>800</height>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="baseSize">
@@ -34,340 +34,283 @@
<property name="windowTitle">
<string>Prescribed Displacement</string>
</property>
<widget class="QWidget" name="verticalLayoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>0</y>
<width>311</width>
<height>743</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="lbl_info">
<property name="text">
<string>Select multiple face(s), click Add or Remove</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="hLayout1">
<item>
<widget class="QToolButton" name="btnAdd">
<property name="text">
<string>Add</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="btnRemove">
<property name="text">
<string>Remove</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QListWidget" name="lw_references">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<widget class="QLabel" name="dispx">
<property name="text">
<string>Displacement x</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_8">
<item>
<widget class="QCheckBox" name="dispxfree">
<property name="text">
<string>Free</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="dispxfix">
<property name="text">
<string>Fixed</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="spinxDisplacement">
<property name="minimum">
<double>-99999.000000000000000</double>
</property>
<property name="maximum">
<double>99999.000000000000000</double>
</property>
<property name="value">
<double>0.000000000000000</double>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QLabel" name="dispy">
<property name="text">
<string>Displacement y</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_7">
<item>
<widget class="QCheckBox" name="dispyfree">
<property name="text">
<string>Free</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="dispyfix">
<property name="text">
<string>Fixed</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="spinyDisplacement">
<property name="minimum">
<double>-99999.000000000000000</double>
</property>
<property name="maximum">
<double>99999.000000000000000</double>
</property>
<property name="value">
<double>0.000000000000000</double>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="dispz">
<property name="text">
<string>Displacement z</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<widget class="QCheckBox" name="dispzfree">
<property name="text">
<string>Free</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="dispzfix">
<property name="text">
<string>Fixed</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="spinzDisplacement">
<property name="minimum">
<double>-99999.000000000000000</double>
</property>
<property name="maximum">
<double>99999.000000000000000</double>
</property>
<property name="value">
<double>0.000000000000000</double>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="label">
<property name="maximumSize">
<size>
<width>400</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>Rotations are only valid for Beam and Shell elements.</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="rotx">
<property name="text">
<string>Rotation x</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QCheckBox" name="rotxfree">
<property name="text">
<string>Free</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="rotxfix">
<property name="text">
<string>Fixed</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="rotxv">
<property name="minimum">
<double>-99999.000000000000000</double>
</property>
<property name="maximum">
<double>99999.000000000000000</double>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="roty">
<property name="text">
<string>Rotation y</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QCheckBox" name="rotyfree">
<property name="text">
<string>Free</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="rotyfix">
<property name="text">
<string>Fixed</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="rotyv">
<property name="minimum">
<double>-99999.000000000000000</double>
</property>
<property name="maximum">
<double>99999.000000000000000</double>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="rotz">
<property name="text">
<string>Rotation z</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QCheckBox" name="rotzfree">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Free</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="rotzfix">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Fixed</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="rotzv">
<property name="enabled">
<bool>true</bool>
</property>
<property name="minimum">
<double>-99999.000000000000000</double>
</property>
<property name="maximum">
<double>99999.000000000000000</double>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="lbl_info">
<property name="text">
<string>Select multiple face(s), click Add or Remove</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="hLayout1">
<item>
<widget class="QToolButton" name="btnAdd">
<property name="text">
<string>Add</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="btnRemove">
<property name="text">
<string>Remove</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QListWidget" name="lw_references">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::ExtendedSelection</enum>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<widget class="QLabel" name="dispx">
<property name="text">
<string>Displacement x</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_8">
<item>
<widget class="QCheckBox" name="dispxfree">
<property name="text">
<string>Free</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="dispxfix">
<property name="text">
<string>Fixed</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="spinxDisplacement"/>
</item>
</layout>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QLabel" name="dispy">
<property name="text">
<string>Displacement y</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_7">
<item>
<widget class="QCheckBox" name="dispyfree">
<property name="text">
<string>Free</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="dispyfix">
<property name="text">
<string>Fixed</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="spinyDisplacement"/>
</item>
</layout>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="dispz">
<property name="text">
<string>Displacement z</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<widget class="QCheckBox" name="dispzfree">
<property name="text">
<string>Free</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="dispzfix">
<property name="text">
<string>Fixed</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="spinzDisplacement"/>
</item>
</layout>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="label">
<property name="maximumSize">
<size>
<width>400</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>Rotations are only valid for Beam and Shell elements.</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="rotx">
<property name="text">
<string>Rotation x</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QCheckBox" name="rotxfree">
<property name="text">
<string>Free</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="rotxfix">
<property name="text">
<string>Fixed</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="spinxRotation"/>
</item>
</layout>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="roty">
<property name="text">
<string>Rotation y</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QCheckBox" name="rotyfree">
<property name="text">
<string>Free</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="rotyfix">
<property name="text">
<string>Fixed</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="spinyRotation"/>
</item>
</layout>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="rotz">
<property name="text">
<string>Rotation z</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QCheckBox" name="rotzfree">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Free</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="rotzfix">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Fixed</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="spinzRotation">
<property name="enabled">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>