diff --git a/DataView/FEMConditionSetup.ui b/DataView/FEMConditionSetup.ui index 59b4ac41cd1a7aedb05d3e48ab9a1abff4f03855..fbc20c328bdcf93c318c05da85cd7129c829d6ad 100644 --- a/DataView/FEMConditionSetup.ui +++ b/DataView/FEMConditionSetup.ui @@ -54,11 +54,6 @@ <string>Constant (Direchlet)</string> </property> </item> - <item> - <property name="text"> - <string>Constant (Neumann)</string> - </property> - </item> </widget> </item> <item row="3" column="0"> diff --git a/DataView/FEMConditionSetupDialog.cpp b/DataView/FEMConditionSetupDialog.cpp index 6da5e2b4ca423db7d441cf4906ea8f1fa4fb4b58..7bcb2b35988f5cd0998dbd78ee4a95bfd2741830 100644 --- a/DataView/FEMConditionSetupDialog.cpp +++ b/DataView/FEMConditionSetupDialog.cpp @@ -51,7 +51,7 @@ void FEMConditionSetupDialog::setupDialog() if (_cond.getGeoType() == GEOLIB::POLYLINE) { this->disTypeBox->addItem("Linear (Direchlet)"); - this->disTypeBox->addItem("Linear (Neumann)"); + //this->disTypeBox->addItem("Linear (Neumann)"); } _first_value_validator = new StrictDoubleValidator(-1e+10, 1e+10, 5); _second_value_validator = new StrictDoubleValidator(-1e+10, 1e+10, 5); @@ -77,22 +77,20 @@ void FEMConditionSetupDialog::accept() _cond.setProcessType(static_cast<FiniteElement::ProcessType>(this->processTypeBox->currentIndex() + 1)); _cond.setProcessPrimaryVariable(static_cast<FiniteElement::PrimaryVariable>(this->pvTypeBox->currentIndex() + 1)); - switch(this->disTypeBox->currentIndex()) + QString dis_type_text = this->disTypeBox->currentText(); + if (condTypeBox->currentIndex()>1) { - case 0: - _cond.setProcessDistributionType(FiniteElement::CONSTANT); - break; - case 1: + if (this->disTypeBox->currentIndex()>0) + _cond.setProcessDistributionType(FiniteElement::LINEAR_NEUMANN); + else _cond.setProcessDistributionType(FiniteElement::CONSTANT_NEUMANN); - break; - case 2: + } + else + { + if (this->disTypeBox->currentIndex()>0) _cond.setProcessDistributionType(FiniteElement::LINEAR); - break; - case 3: - _cond.setProcessDistributionType(FiniteElement::LINEAR_NEUMANN); - break; - default: - _cond.setProcessDistributionType(FiniteElement::INVALID_DIS_TYPE); + else + _cond.setProcessDistributionType(FiniteElement::CONSTANT); } std::vector<double> dis_values; @@ -123,18 +121,34 @@ void FEMConditionSetupDialog::reject() this->done(QDialog::Rejected); } -/* + void FEMConditionSetupDialog::on_condTypeBox_currentIndexChanged(int index) { - if (index==1) - this->geoNameBox->addItem("Domain"); + //if (index==1) + // this->geoNameBox->addItem("Domain"); // remove "Domain" if IC is unselected + if (index>1) // source terms selected + { + while (this->disTypeBox->count()>0) + this->disTypeBox->removeItem(0); + this->disTypeBox->addItem("Constant (Neumann)"); + if (_cond.getGeoType() == GEOLIB::POLYLINE) + this->disTypeBox->addItem("Linear (Neumann)"); + } + else + { + while (this->disTypeBox->count()>0) + this->disTypeBox->removeItem(0); + this->disTypeBox->addItem("Constant (Direchlet)"); + if (_cond.getGeoType() == GEOLIB::POLYLINE) + this->disTypeBox->addItem("Linear (Direchlet)"); + } } -*/ + void FEMConditionSetupDialog::on_disTypeBox_currentIndexChanged(int index) { - if (index>1) // linear + if (index>0) // linear { if (!_secondValueEdit) { diff --git a/DataView/FEMConditionSetupDialog.h b/DataView/FEMConditionSetupDialog.h index 921fd2f5559c0226349fd3a3e1d0039142317be3..ea9c66c58b10d906bd46677a0b851ed1dc345a22 100644 --- a/DataView/FEMConditionSetupDialog.h +++ b/DataView/FEMConditionSetupDialog.h @@ -53,7 +53,7 @@ private slots: /// Instructions if the Cancel-Button has been pressed. void reject(); - //void on_condTypeBox_currentIndexChanged(int index); + void on_condTypeBox_currentIndexChanged(int index); void on_disTypeBox_currentIndexChanged(int index);