Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYBoucheSurfaceWidget.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 // Added by qt3to4:
22 #include <QMessageBox>
23 #include <QGridLayout>
24 #include <QtWidgets>
25 
31 #include "TYBoucheSurfaceWidget.h"
32 
33 #include <math.h>
34 
35 #define TR(id) OLocalizator::getString("TYBoucheSurfaceWidget", (id))
36 
37 TYBoucheSurfaceWidget::TYBoucheSurfaceWidget(TYBoucheSurface* pElement, QWidget* _pParent /*=NULL*/)
38  : TYWidget(pElement, _pParent)
39 {
40 
41  resize(300, 640);
42  setWindowTitle(TR("id_caption"));
43  _pBoucheSurfaceLayout = new QGridLayout();
44  setLayout(_pBoucheSurfaceLayout);
45 
46  _elmW = new TYAcousticRectangleWidget(pElement, this);
47  _elmW->setLayoutSpacing(0, 0);
48  // _elmW->getSurfaceWidget()->getGroupBoxSrcSurf()->hide();
49 
50  _pBoucheSurfaceLayout->addWidget(_elmW, 0, 0);
51  /*
52  QGroupBox * pGroupBoxSrc = new QGroupBox( this );
53  pGroupBoxSrc->setTitle( TR( "id_source_bafflee" ) );
54  pGroupBoxSrc->setColumnLayout(0, Qt::Vertical );
55  pGroupBoxSrc->layout()->setSpacing( 6 );
56  pGroupBoxSrc->layout()->setContentsMargins(11, 11, 11, 11);
57  QGridLayout * pGroupBoxSrcLayout = new QGridLayout( pGroupBoxSrc->layout() );
58  pGroupBoxSrcLayout->setAlignment( Qt::AlignTop );
59 
60  _pLineEditSrc = new QLineEdit( pGroupBoxSrc );
61  _pLineEditSrc->setEnabled( false );
62  pGroupBoxSrcLayout->addWidget( _pLineEditSrc, 0, 0 );
63 
64  QPushButton * pPushButtonSrc = new QPushButton( pGroupBoxSrc );
65  pPushButtonSrc->setText( TR( "id_proprietes_button" ) );
66  pGroupBoxSrcLayout->addWidget( pPushButtonSrc, 0, 1 );
67 
68  _pBoucheSurfaceLayout->addWidget(pGroupBoxSrc, 1, 0);
69  */
70 
71  // Dimensions
72  _groupBoxDimensions = new QGroupBox(this);
73  _groupBoxDimensions->setTitle(TR("id_title_dimensions"));
74  _groupBoxDimensionsLayout = new QGridLayout();
76 
77  _dimensionsXLabel = new QLabel("labelName");
78  _dimensionsXLabel->setText("X :");
80 
81  _dimensionsYLabel = new QLabel("labelName");
82  _dimensionsYLabel->setText("Y :");
84 
89 
91 
92  updateContent();
93 
94  // connect(pPushButtonSrc, &QPushButton::clicked, this, &TYBoucheSurfaceWidget::editSource);
95 }
96 
98 
100 {
101  _elmW->updateContent();
102 
103  float sizeX = NAN, sizeY = NAN;
104  ((TYRectangle*)_elmW->getElement()->getShape())->getSize(sizeX, sizeY);
105 
106  _dimensionsXLineEdit->setText(QString().setNum(sizeX, 'f', 2));
107  _dimensionsYLineEdit->setText(QString().setNum(sizeY, 'f', 2));
108 
109  // _pLineEditSrc->setText( getElement()->getSourceBafflee()->getName());
110 }
111 
113 {
114  _elmW->apply();
115 
116  double sizeX = _dimensionsXLineEdit->text().toDouble();
117  double sizeY = _dimensionsYLineEdit->text().toDouble();
118 
119  if (sizeX <= 1E-4 || sizeY <= 1.E-4) // Eviter les surfaces nulles
120  {
121  QMessageBox::warning(this, "Tympan", TR("id_warning_size_not_ok"),
122  QMessageBox::Yes); //, QMessageBox::No);
123  return;
124  }
125 
126  ((TYRectangle*)_elmW->getElement()->getShape())->setSize(sizeX, sizeY);
127 
128  TYAcousticRectangleNode* pRectNode = TYAcousticRectangleNode::safeDownCast(getElement()->getParent());
129  if (pRectNode)
130  {
131  pRectNode->updateGrid();
132  }
133 
135 
136  emit modified();
137 }
138 /*
139 void TYBoucheSurfaceWidget::editSource()
140 {
141  int ret = getElement()->getSourceBafflee()->edit(this);
142 
143  if ((ret == QDialog::Accepted) && ( getElement()->getSourceBafflee() != NULL ) ) {
144  _pLineEditSrc->setText( getElement()->getSourceBafflee()->getName() );
145  }
146 }
147 */
outil IHM pour un rectangle acoustique (fichier header)
#define TR(id)
outil IHM pour une bouche de ventilation (fichier header)
outil IHM pour une entrée utilisateur (fichier header)
static OPrototype * safeDownCast(OPrototype *pObject)
Definition: TYElement.cpp:71
classe d'un objet IHM pour un rectangle acoustique
void setLayoutSpacing(int margin, int spacing)
TYBoucheSurfaceWidget(TYBoucheSurface *pElement, QWidget *_pParent=NULL)
QGridLayout * _groupBoxDimensionsLayout
QGridLayout * _pBoucheSurfaceLayout
TYAcousticRectangleWidget * _elmW
virtual void setIsAcousticModified(bool isModified)
Definition: TYElement.cpp:248
classe de l'objet IHM pour un objet metier de type TYElement
Definition: TYWidget.h:43
TYElement * _pElement
Definition: TYWidget.h:114
void modified()