22 #include <qradiobutton.h>
23 #include <qbuttongroup.h>
24 #include <qtabwidget.h>
25 #include <qtablewidget.h>
27 #include <QHBoxLayout>
29 #include <QGridLayout>
30 #include <QVBoxLayout>
31 #include <QTreeWidgetItem>
32 #include <QHeaderView>
42 #define TR(id) OLocalizator::getString("TYEtageWidget", (id))
50 setWindowTitle(
TR(
"id_caption"));
70 _tableFaces->setHorizontalHeaderItem(0,
new QTableWidgetItem(
TR(
"id_nom")));
71 _tableFaces->setHorizontalHeaderItem(1,
new QTableWidgetItem(
TR(
"id_emission")));
129 _tableMachine->setHorizontalHeaderItem(0,
new QTableWidgetItem(
TR(
"id_nom")));
130 _tableMachine->setHorizontalHeaderItem(1,
new QTableWidgetItem(
TR(
"id_emission")));
131 _tableMachine->setHorizontalHeaderItem(2,
new QTableWidgetItem(
TR(
"id_regime")));
137 _tableSource->setHorizontalHeaderItem(0,
new QTableWidgetItem(
TR(
"id_nom")));
138 _tableSource->setHorizontalHeaderItem(1,
new QTableWidgetItem(
TR(
"id_emission")));
139 _tableSource->setHorizontalHeaderItem(2,
new QTableWidgetItem(
TR(
"id_regime")));
163 QGroupBox* pGroupBox2 =
new QGroupBox(
_tabWidget);
164 QGridLayout* pGroupBox2Layout =
new QGridLayout(pGroupBox2);
165 pGroupBox2->setLayout(pGroupBox2Layout);
168 QPushButton* pPushButtonTR =
new QPushButton(pGroupBox2);
169 pPushButtonTR->setText(
TR(
"id_tr_button"));
170 pGroupBox2Layout->addWidget(pPushButtonTR, 0, 0);
172 QPushButton* pPushButtonReverb =
new QPushButton(pGroupBox2);
173 pPushButtonReverb->setText(
TR(
"id_reverb_button"));
174 pGroupBox2Layout->addWidget(pPushButtonReverb, 0, 1);
177 _tabWidget->insertTab(3, pGroupBox2,
TR(
"id_prop_acous"));
202 int currentRegime = getElement()->getCurRegime();
219 int currentRegime = getElement()->getCurRegime();
221 TYMapPtrElementInt::iterator iterRegime;
224 iterRegime = currentMap.begin();
228 if (iterRegime == currentMap.end())
234 while ((iterRegime != currentMap.end()) && (!((*iterRegime).first->isA(
"TYMachine"))))
240 QTableWidgetItem* pCheck = (QTableWidgetItem*)
_tableMachine->item(row, 1);
241 QComboBox* pComboItem = (QComboBox*)
_tableMachine->cellWidget(row, 2);
249 if (pCheck->checkState() == Qt::Checked)
260 (*iterRegime).second = pComboItem->currentIndex();
263 if (pCheck->checkState() == Qt::Checked)
265 currentEtat[pMachine] =
true;
269 currentEtat[pMachine] =
false;
277 iterRegime = currentMap.begin();
280 if (iterRegime == currentMap.end())
286 while ((iterRegime != currentMap.end()) && (!((*iterRegime).first->isA(
"TYUserSourcePonctuelle"))))
292 QTableWidgetItem* pCheck = (QTableWidgetItem*)
_tableSource->item(row, 1);
293 QComboBox* pComboItem = (QComboBox*)
_tableSource->cellWidget(row, 2);
301 if (pCheck->checkState() == Qt::Checked)
312 (*iterRegime).second = pComboItem->currentIndex();
315 if (pCheck->checkState() == Qt::Checked)
317 currentEtat[pSource] =
true;
321 currentEtat[pSource] =
false;
329 getElement()->setHauteur(hauteur);
336 getElement()->getSol()->setIsRayonnant(
_checkBoxSol->isChecked());
337 int ret = getElement()->getSol()->edit(
this);
339 if (ret == QDialog::Accepted)
343 _checkBoxSol->setChecked(getElement()->getSol()->getIsRayonnant());
349 int ret = getElement()->getPlafond()->edit(
this);
351 if (ret == QDialog::Accepted)
361 QTableWidgetItem* pCheck = (QTableWidgetItem*)
_tableFaces->item(item, 1);
362 if (pCheck->checkState() == Qt::Checked)
364 pMur->setIsRayonnant(
true);
368 pMur->setIsRayonnant(
false);
371 QTableWidgetItem* pText = (QTableWidgetItem*)
_tableFaces->item(item, 0);
372 pMur->setName(pText->text());
374 int ret = getElement()->getTabMur()[item]->getElement()->edit(
this);
376 if (ret == QDialog::Accepted)
378 if (pMur->getIsRayonnant())
380 pCheck->setCheckState(Qt::Checked);
384 pCheck->setCheckState(Qt::Unchecked);
386 _tableFaces->item(item, 0)->setText(pMur->getName());
394 QTableWidgetItem* pCheck = (QTableWidgetItem*)
_tableMachine->item(item, 1);
397 if (pCheck->checkState() == Qt::Checked)
406 int ret = getElement()->getTabMachine()[item]->getElement()->edit(
this);
408 if (ret == QDialog::Accepted)
419 QTableWidgetItem* pCheck = (QTableWidgetItem*)
_tableSource->item(item, 1);
422 if (pCheck->checkState() == Qt::Checked)
431 int ret = getElement()->getTabSources()[item]->getElement()->edit(
this);
433 if (ret == QDialog::Accepted)
443 QPoint point =
_tableFaces->mapFrom(
this, e->pos());
445 if ((point.x() >= 0) && (point.y() >= 0) && (point.x() <=
_tableFaces->width()) &&
448 QPoint resPoint = QPoint(point.x(), point.y() -
_tableFaces->horizontalHeader()->height());
449 QTableWidgetItem* item =
_tableFaces->itemAt(resPoint);
452 QMenu* pMenu =
new QMenu(
this);
453 QAction* prop = pMenu->addAction(
TR(
"id_property"));
455 QAction* ret = pMenu->exec(
_tableFaces->mapToGlobal(point));
456 if ((ret) && (ret == prop))
469 if ((point.x() >= 0) && (point.y() >= 0) && (point.x() <=
_tableMachine->width()) &&
472 QPoint resPoint = QPoint(point.x(), point.y() -
_tableMachine->horizontalHeader()->height());
476 QMenu* pMenu =
new QMenu(
this);
477 QAction* prop = pMenu->addAction(
TR(
"id_property"));
479 QAction* ret = pMenu->exec(
_tableMachine->mapToGlobal(point));
480 if ((ret) && (ret == prop))
491 if ((point.x() >= 0) && (point.y() >= 0) && (point.x() <=
_tableSource->width()) &&
494 QPoint resPoint = QPoint(point.x(), point.y() -
_tableSource->horizontalHeader()->height());
495 QTableWidgetItem* item =
_tableSource->itemAt(resPoint);
498 QMenu* pMenu =
new QMenu(
this);
499 QAction* prop = pMenu->addAction(
TR(
"id_property"));
501 QAction* ret = pMenu->exec(
_tableSource->mapToGlobal(point));
502 if ((ret) && (ret == prop))
526 TYMapPtrElementInt::iterator iterRegime;
532 for (iterRegime = currentMap.begin(); iterRegime != currentMap.end(); iterRegime++)
534 TYElement* pEmetteur = (*iterRegime).first;
535 if (strcmp(pEmetteur->
getClassName(),
"TYMachine") == 0)
538 _tableMachine->setItem(row, 0,
new QTableWidgetItem((*iterRegime).first->getName()));
540 QTableWidgetItem* pCheckItemEmit =
new QTableWidgetItem(
"");
541 if (currentEtat[pEmetteur])
543 pCheckItemEmit->setCheckState(Qt::Checked);
547 pCheckItemEmit->setCheckState(Qt::Unchecked);
553 QStringList listRegimes;
560 listRegimes.append(nom);
564 pComboItemRegime->addItems(listRegimes);
566 pComboItemRegime->setCurrentIndex((*iterRegime).second);
574 for (iterRegime = currentMap.begin(); iterRegime != currentMap.end(); iterRegime++)
576 TYElement* pEmetteur = (*iterRegime).first;
577 if (strcmp(pEmetteur->
getClassName(),
"TYUserSourcePonctuelle") == 0)
580 _tableSource->setItem(row, 0,
new QTableWidgetItem((*iterRegime).first->getName()));
582 QTableWidgetItem* pCheckItemSrc =
new QTableWidgetItem(
"");
583 if (currentEtat[pEmetteur])
585 pCheckItemSrc->setCheckState(Qt::Checked);
589 pCheckItemSrc->setCheckState(Qt::Unchecked);
595 QStringList listRegimes;
601 listRegimes.append(nom);
604 QComboBox* pComboItemRegime =
new QComboBox(
_tableSource);
605 pComboItemRegime->addItems(listRegimes);
607 pComboItemRegime->setCurrentIndex((*iterRegime).second);
636 _checkBoxSol->setChecked(getElement()->getSol()->getIsRayonnant());
639 for (
unsigned int i = 0, row = 0; i < getElement()->getTabMur().size(); i++, row++)
643 _tableFaces->setItem(row, 0,
new QTableWidgetItem(pMur->getName()));
644 QTableWidgetItem* pCheckItemEmit =
new QTableWidgetItem(
"");
645 if (pMur->getIsRayonnant())
647 pCheckItemEmit->setCheckState(Qt::Checked);
651 pCheckItemEmit->setCheckState(Qt::Unchecked);
659 getElement()->getSol()->setIsRayonnant(
_checkBoxSol->isChecked());
665 QTableWidgetItem* pCheck =
_tableFaces->item(i, 1);
666 if (pCheck->checkState() == Qt::Checked)
668 pMur->setIsRayonnant(
true);
672 pMur->setIsRayonnant(
false);
674 QTableWidgetItem* pText = (QTableWidgetItem*)
_tableFaces->item(i, 0);
675 pMur->setName(pText->text());
681 static_cast<TYSpectre>(getElement()->getReverb().toDB()).
edit(
this);
687 getElement()->getTR().edit(
this);
std::map< TYElement *, bool > TYMapPtrElementBool
Etat d'utilisation des elements (utilise par les calculs)
std::map< TYElement *, int > TYMapPtrElementInt
Tableau associatif des elements et d'un entier (utilise pour gerer les regimes)
outil IHM pour une entrée utilisateur (fichier header)
virtual const char * getClassName() const
static OPrototype * safeDownCast(OPrototype *pObject)
TYRegime & getRegimeNb(const int &nb, bool &status)
size_t getNbRegimes() const
virtual void setIsRayonnant(bool rayonnant=true, bool recursif=true)
virtual void setCurRegime(int regime)
virtual QString getName() const
static void setXMLPrecision(const int precision=2)
Get/Set de la precision de stockage des resultats (XML)
TYUserSrcRegime & getRegimeNb(const int &nb)
void setCurrentRegime(const int ®imeNumber)
void setIsRayonnant(const bool &rayonnant)