From b586715f49f7944f9288baf3dbe9bc7f78280afe Mon Sep 17 00:00:00 2001
From: Karsten Rink <karsten.rink@ufz.de>
Date: Tue, 22 Jul 2014 16:25:40 +0200
Subject: [PATCH] correct handling of LineEdits and PushButtons in Condition
 Setup Dialogue

---
 Gui/DataView/FEMConditionSetupDialog.cpp | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/Gui/DataView/FEMConditionSetupDialog.cpp b/Gui/DataView/FEMConditionSetupDialog.cpp
index 298129e5d95..0d59c265a94 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);
 	}
 }
-- 
GitLab