Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYInfrastructureWidget.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 
25 #include <qmenu.h>
26 // Added by qt3to4:
27 #include <QGridLayout>
28 #include <QTreeWidget>
29 #include <QTreeWidgetItem>
30 #include <QHeaderView>
31 #include <QtWidgets>
32 
33 #include "TYInfrastructureWidget.h"
34 #include "TYElementWidget.h"
35 
36 #define TR(id) OLocalizator::getString("TYInfrastructureWidget", (id))
37 
39  : TYWidget(pElement, _pParent)
40 {
41 
42  _elmW = new TYElementWidget(pElement, this);
43  resize(300, 620);
44  setWindowTitle(TR("id_caption"));
45  _infrastructureLayout = new QGridLayout();
46  setLayout(_infrastructureLayout);
47 
48  _infrastructureLayout->addWidget(_elmW, 0, 0);
49 
50  _groupBox = new QGroupBox(this);
51  _groupBox->setTitle(TR("id_tabmachinerepere_box"));
52  _groupBoxLayout = new QGridLayout();
53  _groupBox->setLayout(_groupBoxLayout);
54 
55  _listViewList = new QTreeWidget(_groupBox);
56  _listViewList->setColumnCount(2);
57  QStringList stringList;
58  stringList.append(TR(""));
59  stringList.append(TR("id_machine"));
60  _listViewList->setHeaderLabels(stringList);
61  _listViewList->setRootIsDecorated(true);
62 
63  _groupBoxLayout->addWidget(_listViewList, 0, 0);
64 
65  _infrastructureLayout->addWidget(_groupBox, 1, 0);
66 
67  _groupBox_3 = new QGroupBox(this);
68  _groupBox_3->setTitle(TR("id_tabrestransprepere_box"));
69  _groupBox_3Layout = new QGridLayout();
70  _groupBox_3->setLayout(_groupBox_3Layout);
71 
72  _listViewList_6 = new QTreeWidget(_groupBox_3);
73  _listViewList_6->setColumnCount(2);
74  QStringList stringList6;
75  stringList6.append(TR(""));
76  stringList6.append(TR("id_restransp"));
77  _listViewList_6->setHeaderLabels(stringList6);
78  _listViewList_6->setRootIsDecorated(true);
79 
80  _groupBox_3Layout->addWidget(_listViewList_6, 0, 0);
81 
82  _infrastructureLayout->addWidget(_groupBox_3, 3, 0);
83 
84  _groupBox_4 = new QGroupBox(this);
85  _groupBox_4->setTitle(TR("id_tabrouterepere_box"));
86  _groupBox_4Layout = new QGridLayout();
87  _groupBox_4->setLayout(_groupBox_4Layout);
88 
89  _listViewList_7 = new QTreeWidget(_groupBox_4);
90  _listViewList_7->setColumnCount(2);
91  QStringList stringList7;
92  stringList7.append(TR(""));
93  stringList7.append(TR("id_route"));
94  _listViewList_7->setHeaderLabels(stringList7);
95  _listViewList_7->setRootIsDecorated(true);
96 
97  _groupBox_4Layout->addWidget(_listViewList_7, 0, 0);
98 
99  _infrastructureLayout->addWidget(_groupBox_4, 4, 0);
100 
101  _groupBox_2 = new QGroupBox(this);
102  _groupBox_2->setTitle(TR("id_tabbatimentrepere_box"));
103  _groupBox_2Layout = new QGridLayout();
104  _groupBox_2->setLayout(_groupBox_2Layout);
105 
106  _listViewList_5 = new QTreeWidget(_groupBox_2);
107  _listViewList_5->setColumnCount(2);
108  QStringList stringList5;
109  stringList5.append(TR(""));
110  stringList5.append(TR("id_batiment"));
111  _listViewList_5->setHeaderLabels(stringList5);
112  _listViewList_5->setRootIsDecorated(true);
113 
114  _groupBox_2Layout->addWidget(_listViewList_5, 0, 0);
115 
116  _infrastructureLayout->addWidget(_groupBox_2, 2, 0);
117 
118  _groupBox_1 = new QGroupBox(this);
119  _groupBox_1->setTitle(TR("id_tabsource_box"));
120  _groupBox_1Layout = new QGridLayout();
121  _groupBox_1->setLayout(_groupBox_1Layout);
122 
123  _listViewList_4 = new QTreeWidget(_groupBox_1);
124  _listViewList_4->setColumnCount(2);
125  QStringList stringList4;
126  stringList4.append(TR(""));
127  stringList4.append(TR("id_source"));
128  _listViewList_4->setHeaderLabels(stringList4);
129  _listViewList_4->setRootIsDecorated(true);
130 
131  _groupBox_1Layout->addWidget(_listViewList_4, 0, 0);
132 
133  _infrastructureLayout->addWidget(_groupBox_1, 5, 0);
134 
135  updateContent();
136 }
137 
139 
141 {
142  unsigned int i = 0;
143  _elmW->updateContent();
144 
145  _listViewList_5->clear();
146  for (i = 0; i < getElement()->getListBatiment().size(); i++)
147  {
148  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList_5);
149  item->setText(0, QString().setNum(i));
150  item->setText(1, getElement()->getListBatiment()[i]->getElement()->getName());
151  }
152 
153  _listViewList->clear();
154  for (i = 0; i < getElement()->getListMachine().size(); i++)
155  {
156  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList);
157  item->setText(0, QString().setNum(i));
158  item->setText(1, getElement()->getListMachine()[i]->getElement()->getName());
159  }
160 
161  _listViewList_6->clear();
162  for (i = 0; i < getElement()->getListResTrans().size(); i++)
163  {
164  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList_6);
165  item->setText(0, QString().setNum(i));
166  item->setText(1, getElement()->getListResTrans()[i]->getElement()->getName());
167  }
168 #if WITH_NMPB
169  _listViewList_7->clear();
170  for (i = 0; i < getElement()->getListRoute().size(); i++)
171  {
172  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList_7);
173  item->setText(0, QString().setNum(i));
174  item->setText(1, getElement()->getListRoute()[i]->getElement()->getName());
175  }
176 #endif
177 
178  _listViewList_4->clear();
179  for (i = 0; i < getElement()->getSrcs().size(); i++)
180  {
181  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList_4);
182  item->setText(0, QString().setNum(i));
183  item->setText(1, getElement()->getSrcs()[i]->getElement()->getName());
184  }
185 }
186 
188 {
189  _elmW->apply();
190 
191  emit modified();
192 }
193 
194 void TYInfrastructureWidget::editBatiment(QTreeWidgetItem* item)
195 {
196  int ret = getElement()->getListBatiment()[item->text(0).toInt()]->getElement()->edit(this);
197 
198  if (ret == QDialog::Accepted)
199  {
200  _listViewList_5->clear();
201  for (unsigned int i = 0; i < getElement()->getListBatiment().size(); i++)
202  {
203  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList_5);
204  item->setText(0, QString().setNum(i));
205  item->setText(1, getElement()->getListBatiment()[i]->getElement()->getName());
206  }
207  }
208 }
209 
210 void TYInfrastructureWidget::editMachine(QTreeWidgetItem* item)
211 {
212  int ret = getElement()->getListMachine()[item->text(0).toInt()]->getElement()->edit(this);
213 
214  if (ret == QDialog::Accepted)
215  {
216  _listViewList->clear();
217  for (unsigned int i = 0; i < getElement()->getListMachine().size(); i++)
218  {
219  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList);
220  item->setText(0, QString().setNum(i));
221  item->setText(1, getElement()->getListMachine()[i]->getElement()->getName());
222  }
223  }
224 }
225 
226 void TYInfrastructureWidget::editResTransp(QTreeWidgetItem* item)
227 {
228  int ret = getElement()->getListResTrans()[item->text(0).toInt()]->getElement()->edit(this);
229 
230  if (ret == QDialog::Accepted)
231  {
232  _listViewList_6->clear();
233  for (unsigned int i = 0; i < getElement()->getListResTrans().size(); i++)
234  {
235  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList_6);
236  item->setText(0, QString().setNum(i));
237  item->setText(1, getElement()->getListResTrans()[i]->getElement()->getName());
238  }
239  }
240 }
241 
242 #if WITH_NMPB
243 void TYInfrastructureWidget::editRoute(QTreeWidgetItem* item)
244 {
245  int ret = getElement()->getListRoute()[item->text(0).toInt()]->getElement()->edit(this);
246 
247  if (ret == QDialog::Accepted)
248  {
249  _listViewList_7->clear();
250  for (unsigned int i = 0; i < getElement()->getListRoute().size(); i++)
251  {
252  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList_7);
253  item->setText(0, QString().setNum(i));
254  item->setText(1, getElement()->getListRoute()[i]->getElement()->getName());
255  }
256  }
257 }
258 #endif
259 
260 void TYInfrastructureWidget::editSource(QTreeWidgetItem* item)
261 {
262  int ret = getElement()->getSrcs()[item->text(0).toInt()]->getElement()->edit(this);
263 
264  if (ret == QDialog::Accepted)
265  {
266  _listViewList_4->clear();
267  for (unsigned int i = 0; i < getElement()->getSrcs().size(); i++)
268  {
269  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList_4);
270  item->setText(0, QString().setNum(i));
271  item->setText(1, getElement()->getSrcs()[i]->getElement()->getName());
272  }
273  }
274 }
275 
277 {
278  // si on trouve un item associe
279  QPoint point = _listViewList->mapFrom(this, e->pos());
280  QTreeWidgetItem* item = _listViewList->itemAt(point.x(), point.y() - _listViewList->header()->height());
281  QPoint point4 = _listViewList_4->mapFrom(this, e->pos());
282  QTreeWidgetItem* item4 =
283  _listViewList_4->itemAt(point4.x(), point4.y() - _listViewList_4->header()->height());
284  QPoint point5 = _listViewList_5->mapFrom(this, e->pos());
285  QTreeWidgetItem* item5 =
286  _listViewList_5->itemAt(point5.x(), point5.y() - _listViewList_5->header()->height());
287  QPoint point6 = _listViewList_6->mapFrom(this, e->pos());
288  QTreeWidgetItem* item6 =
289  _listViewList_6->itemAt(point6.x(), point6.y() - _listViewList_6->header()->height());
290  QPoint point7 = _listViewList_7->mapFrom(this, e->pos());
291  QTreeWidgetItem* item7 =
292  _listViewList_7->itemAt(point7.x(), point7.y() - _listViewList_7->header()->height());
293  if ((item != NULL) || (item4 != NULL) || (item5 != NULL) || (item6 != NULL) || (item7 != NULL))
294  {
295  QMenu* pMenu = new QMenu(this);
296 
297  QAction* prop = pMenu->addAction(TR("id_property"));
298  if (item != NULL)
299  {
300  QAction* ret = pMenu->exec(_listViewList->mapToGlobal(point));
301  if ((ret) && (ret == prop))
302  {
303  editMachine(item);
304  }
305  }
306  else if (item4 != NULL)
307  {
308  QAction* ret = pMenu->exec(_listViewList_4->mapToGlobal(point4));
309  if ((ret) && (ret == prop))
310  {
311  editSource(item4);
312  }
313  }
314  else if (item5 != NULL)
315  {
316  QAction* ret = pMenu->exec(_listViewList_5->mapToGlobal(point5));
317  if ((ret) && (ret == prop))
318  {
319  editBatiment(item5);
320  }
321  }
322  else if (item6 != NULL)
323  {
324  QAction* ret = pMenu->exec(_listViewList_6->mapToGlobal(point6));
325  if ((ret) && (ret == prop))
326  {
327  editResTransp(item6);
328  }
329  }
330 #if WITH_NMPB
331  else if (item7 != NULL)
332  {
333  QAction* ret = pMenu->exec(_listViewList_7->mapToGlobal(point7));
334  if ((ret) && (ret == prop))
335  {
336  editRoute(item7);
337  }
338  }
339 #endif
340  }
341 }
outil IHM pour un element (fichier header)
#define TR(id)
Outil IHM pour une infrastructure (fichier header)
classe de l'objet IHM pour un element
virtual void apply()
virtual void updateContent()
virtual void contextMenuEvent(QContextMenuEvent *e)
void editMachine(QTreeWidgetItem *item)
TYInfrastructureWidget(TYInfrastructure *pElement, QWidget *_pParent=NULL)
void editResTransp(QTreeWidgetItem *item)
void editBatiment(QTreeWidgetItem *item)
void editSource(QTreeWidgetItem *item)
classe de l'objet IHM pour un objet metier de type TYElement
Definition: TYWidget.h:43
void modified()