Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYPlanEauWidget.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) <2012> <EDF-R&D> <FRANCE>
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation; either version 2 of the License, or
6  * (at your option) any later version.
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10  * See the GNU General Public License for more details.
11  * You should have received a copy of the GNU General Public License along
12  * with this program; if not, write to the Free Software Foundation, Inc.,
13  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
14  */
15 
21 #include <QGridLayout>
22 #include <QLabel>
23 
28 #include "TYPlanEauWidget.h"
29 
30 #define TR(id) OLocalizator::getString("TYPlanEauWidget", (id))
31 
32 TYPlanEauWidget::TYPlanEauWidget(TYPlanEau* pElement, QWidget* _pParent /*=NULL*/)
33  : TYWidget(pElement, _pParent)
34 {
35  _terrainW = new TYTerrainWidget(pElement, this);
37 
38  resize(300, 330);
39  setWindowTitle(TR("id_caption"));
40 
41  _planEauLayout = new QGridLayout();
42  setLayout(_planEauLayout);
43  _planEauLayout->addWidget(_terrainW, 0, 0);
44 
45  _groupBoxAlt = new QGroupBox(this);
46  _groupBoxAlt->setTitle(TR(""));
47  _groupBoxAltLayout = new QGridLayout();
48  _groupBoxAlt->setLayout(_groupBoxAltLayout);
49 
50  _labelAltitude = new QLabel(_groupBoxAlt);
51  _labelAltitude->setText(TR("id_altitude_label"));
52  _groupBoxAltLayout->addWidget(_labelAltitude, 0, 0);
53 
55  _lineEditAltitude->setText(QString().setNum(getElement()->getAltitude(), 'f', 2));
56  _groupBoxAltLayout->addWidget(_lineEditAltitude, 0, 1);
57  QLabel* pUnitAlt = new QLabel(_groupBoxAlt);
58  pUnitAlt->setText(TR("id_unite_altitude"));
59  _groupBoxAltLayout->addWidget(pUnitAlt, 0, 2);
60 
61  _planEauLayout->addWidget(_groupBoxAlt, 1, 0);
62 
63  // Gestion de la distance max entre deux points de la courbe de niveau
64  _groupBoxDistMax = new QGroupBox(this);
65  _groupBoxDistMax->setTitle(TR(""));
66  _groupBoxDistLayout = new QGridLayout();
68 
69  _labelDistMax = new QLabel(_groupBoxDistMax);
70  _labelDistMax->setText(TR("id_distmax_label"));
71  _groupBoxDistLayout->addWidget(_labelDistMax, 0, 0);
72 
74  _groupBoxDistLayout->addWidget(_lineEditDistMax, 0, 1);
75  QLabel* pUnitDist = new QLabel(_groupBoxDistMax);
76  pUnitDist->setText(TR("id_unite_altitude"));
77  _groupBoxDistLayout->addWidget(pUnitDist, 0, 2);
78 
79  _labelUseDefault = new QLabel(_groupBoxDistMax);
80  _labelUseDefault->setText(TR("id_use_default_label"));
81  QPushButton* _pushButtonUseDefault = new QPushButton(_groupBoxDistMax);
82  _pushButtonUseDefault->setText(TR("id_default_button"));
83 
84  _groupBoxDistLayout->addWidget(_labelUseDefault, 1, 0);
86 
87  _planEauLayout->addWidget(_groupBoxDistMax, 2, 0);
88 
89  connect(_pushButtonUseDefault, &QPushButton::clicked, this, &TYPlanEauWidget::setDefaultValue);
90  connect(_lineEditDistMax, &QLineEdit::textChanged, this, &TYPlanEauWidget::updateUseDefault);
91 
92  updateContent();
93 }
94 
96 
98 {
102 
103  _lineEditAltitude->setText(QString().setNum(getElement()->getAltitude(), 'f', 2));
104 
105  // On deconnecte la detection de modification du texte
106  disconnect(_lineEditDistMax, &QLineEdit::textChanged, this, &TYPlanEauWidget::updateUseDefault);
107 
108  _lineEditDistMax->setText(QString().setNum(getElement()->getDistMax()));
109 
110  // On reconnecte apres modification
111  connect(_lineEditDistMax, &QLineEdit::textChanged, this, &TYPlanEauWidget::updateUseDefault);
112 }
113 
115 {
116  _terrainW->apply();
117 
118  getElement()->setAltitude(_lineEditAltitude->text().toDouble());
119 
120  double valeur = _lineEditDistMax->text().toDouble();
121 
122  if (valeur > 0) // Pas de valeur negative ou nulle
123  {
124  getElement()->setDistMax(valeur);
125  }
126 
127  getElement()->setIsGeometryModified(true);
128 
129  emit modified();
130 }
131 
133 {
134  // On deconnecte la detection de modification du texte
135  disconnect(_lineEditDistMax, &QLineEdit::textChanged, this, &TYPlanEauWidget::updateUseDefault);
136  // Recuperation de la valeur par defaut
137  _lineEditDistMax->setText(
138  QString().setNum(TYCourbeNiveau::getDefaultDistMax())); // getElement()->getDistMax()) );
139  getElement()->setIsDMaxDefault(false);
141  // On reconnecte apres modification
142  connect(_lineEditDistMax, &QLineEdit::textChanged, this, &TYPlanEauWidget::updateUseDefault);
143 }
144 
146 {
147  // Recuperation de la valeur par defaut
148  getElement()->setIsDMaxDefault(true);
150 }
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()