diff --git a/Gui/DataView/FEMConditionSetupDialog.cpp b/Gui/DataView/FEMConditionSetupDialog.cpp index 298129e5d95cde9817dda2df59e19e093e0a9436..0d59c265a94c769e326835d8e94e4dfbf61d0cd5 100644 --- a/Gui/DataView/FEMConditionSetupDialog.cpp +++ b/Gui/DataView/FEMConditionSetupDialog.cpp @@ -99,10 +99,8 @@ void FEMConditionSetupDialog::setupDialog() else // direct on mesh { this->disTypeBox->addItem("Direct"); - //static_cast<QGridLayout*>(this->layout())->removeWidget(this->firstValueEdit); - directButton = new QPushButton("Calculate Values"); - static_cast<QGridLayout*>(this->layout())->addWidget(directButton,5,1); - connect(this->directButton, SIGNAL(pressed()), this, SLOT(directButton_pressed())); + this->setValueInputWidget(true); + this->condTypeBox->setCurrentIndex(2); } const std::list<std::string> process_names = FiniteElement::getAllProcessNames(); @@ -263,9 +261,11 @@ void FEMConditionSetupDialog::on_disTypeBox_currentIndexChanged(int index) void FEMConditionSetupDialog::setValueInputWidget(bool is_button) { - if (is_button) // linear or direct + if (is_button || _cond.getGeomType() == GeoLib::GEOTYPE::INVALID) // linear or direct { static_cast<QGridLayout*>(this->layout())->removeWidget(this->firstValueEdit); + delete firstValueEdit; + firstValueEdit = nullptr; directButton = new QPushButton("Calculate Values"); connect(this->directButton, SIGNAL(pressed()), this, SLOT(directButton_pressed())); static_cast<QGridLayout*>(this->layout())->addWidget(directButton,5,1); @@ -275,7 +275,8 @@ void FEMConditionSetupDialog::setValueInputWidget(bool is_button) static_cast<QGridLayout*>(this->layout())->removeWidget(this->directButton); delete directButton; directButton = nullptr; - this->firstValueEdit->setText("0"); + firstValueEdit = new QLineEdit("0"); + this->firstValueEdit->setValidator (_first_value_validator); static_cast<QGridLayout*>(this->layout())->addWidget(this->firstValueEdit,5,1); } }