Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYPlanEauWidget.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) <2012-2024> <EDF-DTG> <FRANCE>
3  * This file is part of Code_TYMPAN (R).
4  * Code_TYMPAN (R) is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  * Code_TYMPAN (R) is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11  * See the GNU General Public License for more details.
12  * You should have received a copy of the GNU General Public License along
13  * with Code_TYMPAN (R). If not, see <https://www.gnu.org/licenses/>.
14  */
15 
21 #include <QGridLayout>
22 #include <QLabel>
23 #include <QtWidgets>
24 
29 #include "TYPlanEauWidget.h"
30 
31 #define TR(id) OLocalizator::getString("TYPlanEauWidget", (id))
32 
33 TYPlanEauWidget::TYPlanEauWidget(TYPlanEau* pElement, QWidget* _pParent /*=NULL*/)
34  : TYWidget(pElement, _pParent)
35 {
36  _terrainW = new TYTerrainWidget(pElement, this);
38 
39  resize(300, 330);
40  setWindowTitle(TR("id_caption"));
41 
42  _planEauLayout = new QGridLayout();
43  setLayout(_planEauLayout);
44  _planEauLayout->addWidget(_terrainW, 0, 0);
45 
46  _groupBoxAlt = new QGroupBox(this);
47  _groupBoxAlt->setTitle(TR(""));
48  _groupBoxAltLayout = new QGridLayout();
49  _groupBoxAlt->setLayout(_groupBoxAltLayout);
50 
51  _labelAltitude = new QLabel(_groupBoxAlt);
52  _labelAltitude->setText(TR("id_altitude_label"));
53  _groupBoxAltLayout->addWidget(_labelAltitude, 0, 0);
54 
56  _lineEditAltitude->setText(QString().setNum(getElement()->getAltitude(), 'f', 2));
57  _groupBoxAltLayout->addWidget(_lineEditAltitude, 0, 1);
58  QLabel* pUnitAlt = new QLabel(_groupBoxAlt);
59  pUnitAlt->setText(TR("id_unite_altitude"));
60  _groupBoxAltLayout->addWidget(pUnitAlt, 0, 2);
61 
62  _planEauLayout->addWidget(_groupBoxAlt, 1, 0);
63 
64  // Gestion de la distance max entre deux points de la courbe de niveau
65  _groupBoxDistMax = new QGroupBox(this);
66  _groupBoxDistMax->setTitle(TR(""));
67  _groupBoxDistLayout = new QGridLayout();
69 
70  _labelDistMax = new QLabel(_groupBoxDistMax);
71  _labelDistMax->setText(TR("id_distmax_label"));
72  _groupBoxDistLayout->addWidget(_labelDistMax, 0, 0);
73 
75  _groupBoxDistLayout->addWidget(_lineEditDistMax, 0, 1);
76  QLabel* pUnitDist = new QLabel(_groupBoxDistMax);
77  pUnitDist->setText(TR("id_unite_altitude"));
78  _groupBoxDistLayout->addWidget(pUnitDist, 0, 2);
79 
80  _labelUseDefault = new QLabel(_groupBoxDistMax);
81  _labelUseDefault->setText(TR("id_use_default_label"));
82  QPushButton* _pushButtonUseDefault = new QPushButton(_groupBoxDistMax);
83  _pushButtonUseDefault->setText(TR("id_default_button"));
84 
85  _groupBoxDistLayout->addWidget(_labelUseDefault, 1, 0);
87 
88  _planEauLayout->addWidget(_groupBoxDistMax, 2, 0);
89 
90  connect(_pushButtonUseDefault, &QPushButton::clicked, this, &TYPlanEauWidget::setDefaultValue);
91  connect(_lineEditDistMax, &QLineEdit::textChanged, this, &TYPlanEauWidget::updateUseDefault);
92 
93  updateContent();
94 }
95 
97 
99 {
103 
104  _lineEditAltitude->setText(QString().setNum(getElement()->getAltitude(), 'f', 2));
105 
106  // On deconnecte la detection de modification du texte
107  disconnect(_lineEditDistMax, &QLineEdit::textChanged, this, &TYPlanEauWidget::updateUseDefault);
108 
109  _lineEditDistMax->setText(QString().setNum(getElement()->getDistMax()));
110 
111  // On reconnecte apres modification
112  connect(_lineEditDistMax, &QLineEdit::textChanged, this, &TYPlanEauWidget::updateUseDefault);
113 }
114 
116 {
117  _terrainW->apply();
118 
119  getElement()->setAltitude(_lineEditAltitude->text().toDouble());
120 
121  double valeur = _lineEditDistMax->text().toDouble();
122 
123  if (valeur > 0) // Pas de valeur negative ou nulle
124  {
125  getElement()->setDistMax(valeur);
126  }
127 
128  getElement()->setIsGeometryModified(true);
129 
130  emit modified();
131 }
132 
134 {
135  // On deconnecte la detection de modification du texte
136  disconnect(_lineEditDistMax, &QLineEdit::textChanged, this, &TYPlanEauWidget::updateUseDefault);
137  // Recuperation de la valeur par defaut
138  _lineEditDistMax->setText(
139  QString().setNum(TYCourbeNiveau::getDefaultDistMax())); // getElement()->getDistMax()) );
140  getElement()->setIsDMaxDefault(false);
142  // On reconnecte apres modification
143  connect(_lineEditDistMax, &QLineEdit::textChanged, this, &TYPlanEauWidget::updateUseDefault);
144 }
145 
147 {
148  // Recuperation de la valeur par defaut
149  getElement()->setIsDMaxDefault(true);
151 }
outil IHM pour une entrée utilisateur (fichier header)
#define TR(id)
outil IHM pour un plan d'eau (fichier header)
outil IHM pour un terrain (fichier header)
static double getDefaultDistMax()
virtual void setIsGeometryModified(bool isModified)
Definition: TYElement.cpp:253
QGridLayout * _groupBoxDistLayout
TYLineEdit * _lineEditAltitude
QPushButton * _pushButtonUseDefault
virtual ~TYPlanEauWidget()
virtual void updateUseDefault()
virtual void apply()
TYLineEdit * _lineEditDistMax
QLabel * _labelUseDefault
QLabel * _labelDistMax
TYTerrainWidget * _terrainW
QGroupBox * _groupBoxAlt
virtual void updateContent()
virtual void setDefaultValue()
QGroupBox * _groupBoxDistMax
QLabel * _labelAltitude
TYPlanEauWidget(TYPlanEau *pElement, QWidget *_pParent=NULL)
QGridLayout * _planEauLayout
QGridLayout * _groupBoxAltLayout
classe de l'objet IHM pour un terrain
void setLayoutSpacing(int margin, int spacing)
virtual void apply()
virtual void updateContent()
void disableVegetationWidget()
classe de l'objet IHM pour un objet metier de type TYElement
Definition: TYWidget.h:43
TYElement * _pElement
Definition: TYWidget.h:114
void modified()