Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYProjetWidget.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 
26 #include <qmenu.h>
27 // Added by qt3to4:
28 #include <QGridLayout>
29 #include <QDateEdit>
30 #include <QTextEdit>
31 #include <QLabel>
32 #include <QTreeWidget>
33 #include <QTreeWidgetItem>
34 #include <QContextMenuEvent>
35 #include <QHeaderView>
36 #include <QtWidgets>
37 #include <QRadioButton>
38 
39 #include "TYProjetWidget.h"
40 #include "TYElementWidget.h"
41 
42 #define TR(id) OLocalizator::getString("TYProjetWidget", (id))
43 
44 TYProjetWidget::TYProjetWidget(TYProjet* pElement, QWidget* _pParent /*=NULL*/) : TYWidget(pElement, _pParent)
45 {
46 
47  _elmW = new TYElementWidget(pElement, this);
48 
49  resize(300, 460);
50  setWindowTitle(TR("id_caption"));
51  _projetLayout = new QGridLayout();
52  setLayout(_projetLayout);
53  _projetLayout->addWidget(_elmW, 0, 0);
54 
55  // Tab organization
56  _tabWidget = new QTabWidget(this);
57 
58  // Groupe identification (Auteur, Date creation/modification, commentaire)
59  _groupBox = new QGroupBox(this);
60  _groupBox->setTitle(TR(""));
61  QGridLayout* _groupBoxLayout = new QGridLayout();
62  _groupBox->setLayout(_groupBoxLayout);
63 
64  _lineEditAuteur = new QLineEdit(_groupBox);
65  _groupBoxLayout->addWidget(_lineEditAuteur, 0, 1);
66 
67  _labelAuteur = new QLabel(_groupBox);
68  _labelAuteur->setText(TR("id_auteur_label"));
69  _groupBoxLayout->addWidget(_labelAuteur, 0, 0);
70 
71  QDate date;
72 
73  _editDateCreation = new QDateEdit(_groupBox);
74  if (getElement()->getDateCreation() == "2001-10-01")
75  {
76  getElement()->setDateCreation(date.currentDate().toString(Qt::ISODate));
77  }
78  _editDateCreation->setDate(date.fromString(getElement()->getDateCreation(), Qt::ISODate));
79  _groupBoxLayout->addWidget(_editDateCreation, 2, 1);
80 
81  _labelDateCreation = new QLabel(_groupBox);
82  _labelDateCreation->setText(TR("id_datecreation_label"));
83  _groupBoxLayout->addWidget(_labelDateCreation, 2, 0);
84 
85  _labelDateModif = new QLabel(_groupBox);
86  _labelDateModif->setText(TR("id_datemodif_label"));
87  _groupBoxLayout->addWidget(_labelDateModif, 3, 0);
88 
89  _editDateModif = new QDateEdit(_groupBox);
90  if (getElement()->getDateModif() == "2001-10-01")
91  {
92  getElement()->setDateModif(date.currentDate().toString(Qt::ISODate));
93  }
94  _editDateModif->setDate(date.fromString(getElement()->getDateModif(), Qt::ISODate));
95  _groupBoxLayout->addWidget(_editDateModif, 3, 1);
96 
97  _lineEditComment = new QTextEdit(_groupBox);
98  _groupBoxLayout->addWidget(_lineEditComment, 5, 0, 1, 2);
99 
100  _labelComment = new QLabel(_groupBox);
101  _labelComment->setText(TR("id_comment_label"));
102  _groupBoxLayout->addWidget(_labelComment, 4, 0);
103 
104  _tabWidget->addTab(_groupBox, TR("id_tab_info"));
105 
106  // Onglet Acoustique ---
107  _groupBoxAcoustique = new QGroupBox(this);
108  _groupBoxAcoustique->setTitle(QString()); // pas de titre pour l’onglet lui-même
109 
110  QGridLayout* acoustiqueLayout = new QGridLayout();
111  acoustiqueLayout->setAlignment(Qt::AlignTop);
112  _groupBoxAcoustique->setLayout(acoustiqueLayout);
113 
114  // Section forme du spectre
116  _groupBoxAcoustiqueForm->setTitle(TR("id_acoustique_form_title"));
117  QGridLayout* acoustiqueFormLayout = new QGridLayout();
118  acoustiqueFormLayout->setAlignment(Qt::AlignTop);
119  _groupBoxAcoustiqueForm->setLayout(acoustiqueFormLayout);
120 
121  // Ligne radios forme du spectre
122  QWidget* spectreFormRow = new QWidget(_groupBoxAcoustiqueForm);
123  QHBoxLayout* spectreFormLayout = new QHBoxLayout(spectreFormRow);
124  spectreFormLayout->setContentsMargins(0, 0, 0, 0);
125 
126  _radioSpectreTiers = new QRadioButton(spectreFormRow);
127  _radioSpectreOctave = new QRadioButton(spectreFormRow);
128  _radioSpectreTiers->setText(TR("id_radiobutton_tiers"));
129  _radioSpectreOctave->setText(TR("id_radiobutton_octave"));
130 
131  // Par défaut: tiers d’octave
132  _radioSpectreTiers->setChecked(true);
133 
134  spectreFormLayout->addWidget(_radioSpectreTiers);
135  spectreFormLayout->addWidget(_radioSpectreOctave);
136  spectreFormLayout->addStretch(1);
137 
138  acoustiqueFormLayout->addWidget(spectreFormRow, 0, 0, 1, 1);
139 
140  // Ajoute la section à l’onglet
141  acoustiqueLayout->addWidget(_groupBoxAcoustiqueForm, 0, 0, 1, 1);
142 
143  // Section pondération du spectre
145  _groupBoxAcoustiquePond->setTitle(TR("id_acoustique_pond_title"));
146  QGridLayout* acoustiquePondLayout = new QGridLayout();
147  acoustiquePondLayout->setAlignment(Qt::AlignTop);
148  _groupBoxAcoustiquePond->setLayout(acoustiquePondLayout);
149 
150  // Ligne radios pondération du spectre
151  QWidget* spectrePondRow = new QWidget(_groupBoxAcoustiquePond);
152  QHBoxLayout* spectrePondLayout = new QHBoxLayout(spectrePondRow);
153  spectrePondLayout->setContentsMargins(0, 0, 0, 0);
154 
155  _radioSpectrePondZ = new QRadioButton(spectrePondRow);
156  _radioSpectrePondA = new QRadioButton(spectrePondRow);
157  _radioSpectrePondZ->setText(TR("id_radiobutton_pond_z"));
158  _radioSpectrePondA->setText(TR("id_radiobutton_pond_a"));
159 
160  // Par défaut: dB(Z)
161  _radioSpectrePondZ->setChecked(true);
162 
163  spectrePondLayout->addWidget(_radioSpectrePondZ);
164  spectrePondLayout->addWidget(_radioSpectrePondA);
165  spectrePondLayout->addStretch(1);
166 
167  acoustiquePondLayout->addWidget(spectrePondRow, 0, 0, 1, 1);
168 
169  // Ajoute la section à l’onglet
170  acoustiqueLayout->addWidget(_groupBoxAcoustiquePond, 1, 0, 1, 1);
171 
172  _tabWidget->addTab(_groupBoxAcoustique, TR("id_tab_acoustique"));
173 
174  // Onglet Site
175  _groupBoxSite = new QGroupBox(this);
176  QGridLayout* groupBoxSiteLayout = new QGridLayout();
177  _groupBoxSite->setLayout(groupBoxSiteLayout);
178 
179  QPushButton* _pushButtonSite = new QPushButton(_groupBoxSite);
180  _pushButtonSite->setText(TR("id_proprietes_button"));
181  groupBoxSiteLayout->addWidget(_pushButtonSite, 0, 1);
182 
183  _lineEditNomSite = new QLineEdit(_groupBoxSite);
184  _lineEditNomSite->setEnabled(false);
185  groupBoxSiteLayout->addWidget(_lineEditNomSite, 0, 0);
186 
187  _labelDistMax = new QLabel(_groupBoxSite);
188  _labelDistMax->setText(TR("id_distMax_label"));
189  groupBoxSiteLayout->addWidget(_labelDistMax, 1, 0);
190 
192  groupBoxSiteLayout->addWidget(_lineEditDistMax, 1, 1);
193 
195  _labelDelaunayTolerence->setText(TR("id_delaunay_label"));
196  groupBoxSiteLayout->addWidget(_labelDelaunayTolerence, 2, 0);
197 
199  groupBoxSiteLayout->addWidget(_lineEditDelaunayTolerence, 2, 1);
200 
201  _labelUseDefault = new QLabel(_groupBoxSite);
202  _labelUseDefault->setText(TR("id_useDefault_label"));
203  groupBoxSiteLayout->addWidget(_labelUseDefault, 3, 0);
204 
205  QPushButton* _pushButtonUseDefault = new QPushButton(_groupBoxSite);
206  _pushButtonUseDefault->setText(TR("id_default_button"));
207  groupBoxSiteLayout->addWidget(_pushButtonUseDefault, 3, 1);
208 
209  _tabWidget->addTab(_groupBoxSite, TR("id_site"));
210 
211  // Onglet calcul
212  QGroupBox* groupBoxCalculs = new QGroupBox(this);
213  QGridLayout* groupBoxCalculsLayout = new QGridLayout();
214  groupBoxCalculs->setLayout(groupBoxCalculsLayout);
215 
216  _groupBoxCurCalcul = new QGroupBox(groupBoxCalculs);
217  _groupBoxCurCalcul->setTitle(TR("id_curcalcul"));
218  QGridLayout* groupBoxCurCalculLayout = new QGridLayout();
219  _groupBoxCurCalcul->setLayout(groupBoxCurCalculLayout);
220 
221  QPushButton* _pushButtonCurCalcul = new QPushButton(_groupBoxCurCalcul);
222  _pushButtonCurCalcul->setText(TR("id_proprietes_button"));
223  groupBoxCurCalculLayout->addWidget(_pushButtonCurCalcul, 0, 1);
224 
225  _lineEditNomCurCalcul = new QLineEdit(_groupBoxCurCalcul);
226  _lineEditNomCurCalcul->setEnabled(false);
227 
228  groupBoxCurCalculLayout->addWidget(_lineEditNomCurCalcul, 0, 0);
229 
230  groupBoxCalculsLayout->addWidget(_groupBoxCurCalcul, 0, 0);
231 
232  // Groupe tableau des calculs
233  _groupBoxTab = new QGroupBox(groupBoxCalculs);
234  _groupBoxTab->setTitle(TR("id_tabCalcul_box"));
235  QGridLayout* groupBoxTabLayout = new QGridLayout();
236  _groupBoxTab->setLayout(groupBoxTabLayout);
237 
238  _listViewTabCalcul = new QTreeWidget(_groupBoxTab);
239  _listViewTabCalcul->setColumnCount(2);
240  QStringList stringList;
241  stringList.append(TR(""));
242  stringList.append(TR("id_calcul"));
243  _listViewTabCalcul->setHeaderLabels(stringList);
244  _listViewTabCalcul->setRootIsDecorated(true);
245  //_listViewTabCalcul->setHeaderHidden(true);
246 
247  groupBoxTabLayout->addWidget(_listViewTabCalcul, 0, 0);
248 
249  groupBoxCalculsLayout->addWidget(_groupBoxTab, 1, 0);
250 
251  _tabWidget->addTab(groupBoxCalculs, TR("id_calcul"));
252 
253  // Onglet des points de controle
254  _tableauPointsControle = new QTableWidget();
255  _tableauPointsControle->setColumnCount(5);
256  _tableauPointsControle->setHorizontalHeaderItem(0, new QTableWidgetItem(TR("id_nom_pc")));
257  _tableauPointsControle->setHorizontalHeaderItem(1, new QTableWidgetItem(TR("id_pos_x")));
258  _tableauPointsControle->setHorizontalHeaderItem(2, new QTableWidgetItem(TR("id_pos_y")));
259  _tableauPointsControle->setHorizontalHeaderItem(3, new QTableWidgetItem(TR("id_pos_h")));
260  _tableauPointsControle->setHorizontalHeaderItem(4, new QTableWidgetItem(TR("id_actif")));
261 
262  _tabWidget->addTab(_tableauPointsControle, TR("id_opt_pc"));
263 
264  // DEFINITION DE L'ONGLET MAILLAGES
265  _tableauMaillages = new QTableWidget();
266  _tableauMaillages->setColumnCount(2);
267  _tableauMaillages->setHorizontalHeaderItem(0, new QTableWidgetItem(TR("id_nom_pc")));
268  _tableauMaillages->setHorizontalHeaderItem(1, new QTableWidgetItem(TR("id_actif")));
269 
270  _tabWidget->addTab(_tableauMaillages, TR("id_opt_maillage"));
271 
272  _projetLayout->addWidget(_tabWidget, 1, 0);
273 
274  updateContent();
275 
276  connect(_pushButtonCurCalcul, &QPushButton::clicked, this, &TYProjetWidget::editCurCalcul);
277  connect(_pushButtonSite, &QPushButton::clicked, this, &TYProjetWidget::editSite);
278  connect(_pushButtonUseDefault, &QPushButton::clicked, this, &TYProjetWidget::updateDefault);
279 }
280 
282 
284 {
285  QDate date;
286 
287  _elmW->updateContent();
288 
289  _lineEditAuteur->setText(getElement()->getAuteur());
290  _lineEditNomSite->setText(QString(getElement()->getSite()->getName()));
291  if (getElement()->getCurrentCalcul() != NULL)
292  {
293  _groupBoxCurCalcul->setEnabled(true);
294  _lineEditNomCurCalcul->setText(QString(getElement()->getCurrentCalcul()->getName()));
295  }
296  else
297  {
298  _groupBoxCurCalcul->setEnabled(false);
299  }
300 
301  _lineEditComment->setPlainText(getElement()->getComment());
302  _editDateModif->setDate(date.currentDate());
303  _editDateCreation->setDate(date.fromString(getElement()->getDateCreation(), Qt::ISODate));
304 
305  _lineEditDistMax->setText(QString().setNum(getElement()->getDMax()));
306  _lineEditDelaunayTolerence->setText(QString().setNum(getElement()->getDelaunayTolerence()));
307 
308  _listViewTabCalcul->clear();
309  for (unsigned int i = 0; i < getElement()->getListCalcul().size(); i++)
310  {
311  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewTabCalcul, 0);
312  item->setText(0, QString().setNum(i));
313  item->setText(1, getElement()->getListCalcul().at(i)->getName());
314  }
315 
316  // Remplissage du tableau des points de controle
317  TYProjet* pProjet = getElement();
318  if (pProjet)
319  {
322  }
323  // --- Synchro des radios forme spectre depuis le projet ---
324  if (getElement()->displaySpectrumInOctaveForm())
325  {
326  _radioSpectreOctave->setChecked(true);
327  _radioSpectreTiers->setChecked(false);
328  }
329  else
330  {
331  _radioSpectreTiers->setChecked(true);
332  _radioSpectreOctave->setChecked(false);
333  }
334  // --- Synchro des radios état spectre depuis le projet ---
335  if (getElement()->getSpectrePond() == "dB(A)")
336  {
337  _radioSpectrePondA->setChecked(true);
338  _radioSpectrePondZ->setChecked(false);
339  }
340  else
341  {
342  _radioSpectrePondZ->setChecked(true);
343  _radioSpectrePondA->setChecked(false);
344  }
345 }
346 
348 {
349  TYTabLPPointControl& tabPoints = getElement()->getPointsControl();
350  unsigned int nbPoints = static_cast<uint32>(tabPoints.size());
351  _tableauPointsControle->setRowCount(nbPoints);
352 
353  QString msg;
354  unsigned int row = 0;
355  for (row = 0; row < nbPoints; row++)
356  {
357  _tableauPointsControle->setItem(row, 0, new QTableWidgetItem(tabPoints[row]->getName()));
358 
359  msg = QString(TR("id_cell_posx")).arg(tabPoints[row]->_x, 7, 'f', 1);
360  _tableauPointsControle->setItem(row, 1, new QTableWidgetItem(msg));
361 
362  msg = QString(TR("id_cell_posy")).arg(tabPoints[row]->_y, 7, 'f', 1);
363  _tableauPointsControle->setItem(row, 2, new QTableWidgetItem(msg));
364 
365  msg = QString(TR("id_cell_posh")).arg(tabPoints[row]->getHauteur(), 7, 'f', 1);
366  _tableauPointsControle->setItem(row, 3, new QTableWidgetItem(msg));
367 
368  QTableWidgetItem* pCheckItemActif = new QTableWidgetItem("");
369 
370  if (tabPoints[row]->etat())
371  {
372  pCheckItemActif->setCheckState(Qt::Checked);
373  }
374  else
375  {
376  pCheckItemActif->setCheckState(Qt::Unchecked);
377  }
378 
379  _tableauPointsControle->setItem(row, 4, pCheckItemActif);
380 
381  _tableauPointsControle->setRowHeight(row, 30);
382  }
383 }
384 
386 {
387  int nbPoints = static_cast<uint32>(getElement()->getMaillages().size());
388  _tableauMaillages->setRowCount(nbPoints);
389 
390  LPTYMaillage pMaillage = nullptr;
391 
392  for (int row = 0; row < nbPoints; row++)
393  {
394  pMaillage = getElement()->getMaillage(row);
395  _tableauMaillages->setItem(row, 0, new QTableWidgetItem(pMaillage->getName()));
396 
397  QTableWidgetItem* pCheckItemActif = new QTableWidgetItem("");
398  if (pMaillage->etat(getElement()->getCurrentCalcul()) == true)
399  {
400  pCheckItemActif->setCheckState(Qt::Checked);
401  }
402  else
403  {
404  pCheckItemActif->setCheckState(Qt::Unchecked);
405  }
406  _tableauMaillages->setItem(row, 1, pCheckItemActif);
407 
408  _tableauMaillages->setRowHeight(row, 30);
409  }
410 }
411 
413 {
414  _elmW->apply();
415 
416  getElement()->setComment(_lineEditComment->toPlainText());
417  getElement()->setAuteur(_lineEditAuteur->text());
418  getElement()->setDateModif(_editDateModif->date().currentDate().toString(Qt::ISODate));
419  getElement()->setDateCreation(_editDateCreation->date().toString(Qt::ISODate));
420 
421  getElement()->setDMax(_lineEditDistMax->text().toDouble());
422  getElement()->setDelaunayTolerence(_lineEditDelaunayTolerence->text().toDouble());
423 
424  getElement()->setIsGeometryModified(true);
425  getElement()->getSite()->setIsGeometryModified(true);
426 
427  // Mise a jour des points de controles
428  TYTabLPPointControl& tabPoints = getElement()->getPointsControl();
429  double x = 0., y = 0., h = 0.;
430  bool need_to_rebuild_result(false), ok(false);
431  for (int row = 0; row < _tableauPointsControle->rowCount(); row++)
432  {
433  // Mise a jur du nom du point
434  tabPoints[row]->setName(_tableauPointsControle->item(row, 0)->text());
435 
436  // Relecture des coordonnées du point
437  x = _tableauPointsControle->item(row, 1)->text().toDouble(&ok);
438  y = _tableauPointsControle->item(row, 2)->text().toDouble(&ok);
439  h = _tableauPointsControle->item(row, 3)->text().toDouble(&ok);
440  tabPoints[row]->setCoords(x, y, 0.);
441  tabPoints[row]->setHauteur(h);
442 
443  // Activation / desactivation du point
444  QTableWidgetItem* pCheck = (QTableWidgetItem*)_tableauPointsControle->item(row, 4);
445  if (pCheck->checkState() == Qt::Checked)
446  {
447  tabPoints[row]->setEtat(getElement()->getCurrentCalcul()->getID(), true);
448  need_to_rebuild_result |= getElement()->getCurrentCalcul()->addPtCtrlToResult(tabPoints[row]);
449  }
450  else
451  {
452  tabPoints[row]->setEtat(getElement()->getCurrentCalcul()->getID(), false);
453  need_to_rebuild_result |= getElement()->getCurrentCalcul()->remPtCtrlFromResult(tabPoints[row]);
454  }
455  }
456 
457  if (need_to_rebuild_result)
458  {
459  getElement()->getCurrentCalcul()->getResultat()->buildMatrix();
460  }
461 
462  // Mise à jour des noise maps
463  for (int row = 0; row < _tableauMaillages->rowCount(); row++)
464  {
465  // Select or deselect
466  QTableWidgetItem* pCheck = (QTableWidgetItem*)_tableauMaillages->item(row, 1);
467  if (pCheck->checkState() == Qt::Checked)
468  {
469  getElement()->getCurrentCalcul()->addMaillage(getElement()->getMaillage(row));
470  }
471  else
472  {
473  getElement()->getCurrentCalcul()->remMaillage(getElement()->getMaillage(row));
474  }
475 
476  // Rename
477  getElement()->getMaillage(row)->setName(_tableauMaillages->item(row, 0)->text());
478  }
479 
480  // --- Appliquer la forme de spectre au projet ---
481  if (_radioSpectreOctave->isChecked())
482  {
483  getElement()->setSpectreForm(SPECTRE_FORM_OCT);
484  }
485  else
486  {
487  // défaut: tiers
488  getElement()->setSpectreForm(SPECTRE_FORM_TIERS);
489  }
490  // --- Appliquer la pondération de spectre au projet ---
491  if (_radioSpectrePondA->isChecked())
492  {
493  QString p{"dB(A)"};
494  getElement()->setSpectrePond(p);
495  }
496  else
497  {
498  QString p{"dB(Z)"};
499  getElement()->setSpectrePond(p);
500  }
501 
502  emit modified();
503 }
504 
506 {
507  int ret = getElement()->getCurrentCalcul()->edit(this);
508 
509  if (ret == QDialog::Accepted)
510  {
511  _lineEditNomCurCalcul->setText(getElement()->getCurrentCalcul()->getName());
512  }
513 }
514 
516 {
517  int ret = getElement()->getSite()->edit(this);
518 
519  if (ret == QDialog::Accepted)
520  {
521  _lineEditNomSite->setText(getElement()->getSite()->getName());
522  }
523 }
524 
525 void TYProjetWidget::editCalcul(QTreeWidgetItem* item)
526 {
527  int ret = getElement()->getListCalcul()[item->text(0).toInt()]->edit(this);
528 
529  if (ret == QDialog::Accepted)
530  {
531  _listViewTabCalcul->clear();
532  for (unsigned int i = 0; i < getElement()->getListCalcul().size(); i++)
533  {
534  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewTabCalcul, 0);
535  item->setText(0, QString().setNum(i));
536  item->setText(1, getElement()->getListCalcul().at(i)->getName());
537  }
538  }
539 }
540 
542 {
543  _lineEditDistMax->setText(QString().setNum(getElement()->getDefaultDMax()));
544  _lineEditDelaunayTolerence->setText(QString().setNum(getElement()->getDefaultDelaunayTolerence()));
545 }
546 
547 void TYProjetWidget::contextMenuEvent(QContextMenuEvent* e)
548 {
549  // si on trouve un item associe
550  QPoint point = _listViewTabCalcul->mapFrom(this, e->pos());
551  QTreeWidgetItem* item =
552  _listViewTabCalcul->itemAt(point.x(), point.y() - _listViewTabCalcul->header()->height());
553 
554  if (item != NULL)
555  {
556  QMenu* pMenu = new QMenu(this);
557 
558  QAction* prop = pMenu->addAction(TR("id_property"));
559  QAction* ret = pMenu->exec(_listViewTabCalcul->mapToGlobal(point));
560 
561  if (ret == prop)
562  {
563  editCalcul(item);
564  }
565  }
566 }
outil IHM pour un element (fichier header)
outil IHM pour une entrée utilisateur (fichier header)
std::vector< LPTYPointControl > TYTabLPPointControl
Collection de Smart Pointer sur TYPointControl.
#define TR(id)
outil IHM pour un projet (fichier header)
classe de l'objet IHM pour un element
virtual void apply()
virtual void updateContent()
TYLineEdit * _lineEditDelaunayTolerence
QLabel * _labelDelaunayTolerence
QGroupBox * _groupBoxCurCalcul
virtual void contextMenuEvent(QContextMenuEvent *e)
QLineEdit * _lineEditAuteur
virtual void apply()
QTreeWidget * _listViewTabCalcul
QGroupBox * _groupBox
QRadioButton * _radioSpectreTiers
QLineEdit * _lineEditNomSite
QLabel * _labelAuteur
QLabel * _labelDistMax
QTabWidget * _tabWidget
QTableWidget * _tableauPointsControle
QRadioButton * _radioSpectrePondA
TYElementWidget * _elmW
QLabel * _labelUseDefault
QGroupBox * _groupBoxAcoustique
QGroupBox * _groupBoxAcoustiqueForm
QLabel * _labelDateModif
QDateEdit * _editDateCreation
QTextEdit * _lineEditComment
QGroupBox * _groupBoxAcoustiquePond
QGroupBox * _groupBoxSite
QLabel * _labelComment
QDateEdit * _editDateModif
QPushButton * _pushButtonSite
QGroupBox * _groupBoxTab
QGridLayout * _projetLayout
QTableWidget * _tableauMaillages
Onglet des points de controle.
QPushButton * _pushButtonUseDefault
void editCalcul(QTreeWidgetItem *item)
QPushButton * _pushButtonCurCalcul
QLineEdit * _lineEditNomCurCalcul
void updateControlPointsTab()
virtual ~TYProjetWidget()
virtual void updateContent()
QRadioButton * _radioSpectrePondZ
TYProjetWidget(TYProjet *pElement, QWidget *_pParent=NULL)
QLabel * _labelDateCreation
TYLineEdit * _lineEditDistMax
QRadioButton * _radioSpectreOctave
classe de definition d'un projet.
Definition: TYProjet.h:45
classe de l'objet IHM pour un objet metier de type TYElement
Definition: TYWidget.h:43
void modified()
unsigned int uint32
Definition: defines.h:75
@ SPECTRE_FORM_TIERS
Definition: spectre.h:37
@ SPECTRE_FORM_OCT
Definition: spectre.h:38