Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYPreferenceDialog.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 #include <math.h>
22 #include <qscrollarea.h>
23 #include <qslider.h>
24 #include <qlineedit.h>
25 #include <qlabel.h>
26 #include <qlayout.h>
27 #include <qbuttongroup.h>
28 #include <qradiobutton.h>
29 #include <qgridlayout.h>
30 #include <qcombobox.h>
31 #include <qcheckbox.h>
32 #include <qgroupbox.h>
33 #include <qpushbutton.h>
34 #include <qvalidator.h>
35 #include <qfiledialog.h>
36 #include <QHideEvent>
37 #include <QMdiSubWindow>
38 #include <QMdiArea>
39 #include <qwidget.h>
40 
51 #include "TYPreferenceDialog.h"
52 
53 #define TR(id) OLocalizator::getString("TYPreferenceDialog", (id))
54 
58 static QLayout* wrapLayoutIntoScrollArea(QLayout* layout)
59 {
60  QScrollArea* scrollArea = new QScrollArea();
61 
62  QWidget* rootWidget = new QWidget();
63  rootWidget->setLayout(layout);
64  scrollArea->setWidget(rootWidget);
65  scrollArea->setWidgetResizable(true);
66 
67  QLayout* parentLayout = new QVBoxLayout();
68  parentLayout->addWidget(scrollArea);
69  return parentLayout;
70 }
71 
72 TYPreferenceDialog::TYPreferenceDialog(QWidget* parent, const char* name, Qt::WindowFlags f)
73  : TYFormDialog(parent, f)
74 {
75  setWindowTitle(TR("id_caption"));
76 
77  setMinimumSize(700, 400);
78 
79  tabWidget = new QTabWidget;
80  tabWidget->addTab(new GeometrieTab(), TR("id_tab_geometry")); // 0
81  tabWidget->addTab(new pref3DTab(), TR("id_tab_3d")); // 1
82  tabWidget->addTab(new ColorsTab(), TR("id_tab_colors")); // 2
83  tabWidget->addTab(new AcoustiqueTab(), TR("id_tab_acoustic")); // 3
84  tabWidget->addTab(new GeneralTab(), TR("id_tab_general")); // 4
85 
86  _buttonOK = new QPushButton(TR("id_ok_btn"), this);
87  _buttonOK->setDefault(true);
88  connect(_buttonOK, &QPushButton::clicked, this, &TYPreferenceDialog::accept);
89  connect(_buttonOK, &QPushButton::clicked, this, &TYPreferenceDialog::clickOkApply);
90 
91  _buttonCancel = new QPushButton(TR("id_cancel_btn"), this);
92  _buttonCancel->setShortcut(Qt::Key_Escape);
93  connect(_buttonCancel, &QPushButton::clicked, this, &TYPreferenceDialog::reject);
94 
95  _buttonApply = new QPushButton(TR("id_apply_btn"), this);
96  connect(_buttonApply, &QPushButton::clicked, this, &TYPreferenceDialog::clickOkApply);
97 
98  QGridLayout* buttonLayout = new QGridLayout();
99  buttonLayout->addWidget(_buttonOK, 0, 1);
100  buttonLayout->addWidget(_buttonCancel, 0, 2);
101  buttonLayout->addWidget(_buttonApply, 0, 3);
102 
103  QVBoxLayout* mainLayout = new QVBoxLayout;
104  mainLayout->addWidget(tabWidget);
105  mainLayout->addLayout(buttonLayout);
106  // mainLayout->addStretch(1);
107  setLayout(mainLayout);
108  TYPreferenceManager::completePreferences();
109 }
110 
112 {
113  TYPreferenceManager::loadGeometryFromPreferences(metaObject()->className(), this);
114 
115  loadPreferences();
116 
117  return QDialog::exec();
118 }
119 
120 GeneralTab::GeneralTab(QWidget* parent) : QWidget(parent)
121 {
122  // historique
123  QLabel* pHistoSizeLabel = new QLabel(TR("id_label_histo_size"));
125 
126  QGridLayout* groupBoxLayout = new QGridLayout();
127  groupBoxLayout->addWidget(pHistoSizeLabel, 0, 0);
128  groupBoxLayout->addWidget(_pHistoSizeEdit, 0, 1);
129 
130  QGroupBox* groupBox = new QGroupBox();
131  groupBox->setTitle(TR("id_histo"));
132  groupBox->setLayout(groupBoxLayout);
133 
134  // bibliotheque
135  QLabel* pLibraryPathLabel = new QLabel(TR("id_label_biblio_path"));
136  _pLibraryPathEdit = new QLineEdit();
137  QPushButton* buttonBiblioDirChoice = new QPushButton(TR("id_choose_btn"), this);
138  connect(buttonBiblioDirChoice, &QPushButton::clicked, this, &GeneralTab::changeBibDir);
139 
140  QGridLayout* groupBoxLibraryLayout = new QGridLayout();
141  groupBoxLibraryLayout->addWidget(pLibraryPathLabel, 0, 0);
142  groupBoxLibraryLayout->addWidget(_pLibraryPathEdit, 0, 1);
143  groupBoxLibraryLayout->addWidget(buttonBiblioDirChoice, 0, 2);
144 
145  QGroupBox* groupBoxLibrary = new QGroupBox();
146  groupBoxLibrary->setTitle(TR("id_biblio"));
147  groupBoxLibrary->setLayout(groupBoxLibraryLayout);
148 
149  // repertoire de travail
150  QLabel* pWorkDirPathLabel = new QLabel(TR("id_label_workdir_path"));
151  _pWorkDirPathEdit = new QLineEdit();
152  QPushButton* buttonWorkDirChoice = new QPushButton(TR("id_choose_btn"), this);
153  connect(buttonWorkDirChoice, &QPushButton::clicked, this, &GeneralTab::changeWorkDir);
154 
155  QGridLayout* groupBoxWorkDirLayout = new QGridLayout();
156  groupBoxWorkDirLayout->addWidget(pWorkDirPathLabel, 0, 0);
157  groupBoxWorkDirLayout->addWidget(_pWorkDirPathEdit, 0, 1);
158  groupBoxWorkDirLayout->addWidget(buttonWorkDirChoice, 0, 2);
159 
160  QGroupBox* groupBoxWorkDir = new QGroupBox();
161  groupBoxWorkDir->setTitle(TR("id_workdir"));
162  groupBoxWorkDir->setLayout(groupBoxWorkDirLayout);
163 
164  QVBoxLayout* pTabLayout = new QVBoxLayout();
165  pTabLayout->addWidget(groupBoxWorkDir);
166  pTabLayout->addWidget(groupBoxLibrary);
167  pTabLayout->addWidget(groupBox);
168  pTabLayout->addStretch(1);
169 
170  auto newLayout = wrapLayoutIntoScrollArea(pTabLayout);
171  setLayout(newLayout);
172 }
173 
175 {
176  QString selectedDir = selectDirectory(_pLibraryPathEdit->text());
177  if (!selectedDir.isEmpty())
178  {
179  _pLibraryPathEdit->setText(selectedDir);
180  }
181 }
182 
184 {
185  QString selectedDir = selectDirectory(_pWorkDirPathEdit->text());
186  if (!selectedDir.isEmpty())
187  {
188  _pWorkDirPathEdit->setText(selectedDir);
189  }
190 }
191 
192 QString GeneralTab::selectDirectory(const QString& currentPath)
193 {
194  QString ret = currentPath;
195  QFileDialog dialog(this, "Choose a directory", currentPath);
196  dialog.setFileMode(QFileDialog::Directory);
197  dialog.setOption(QFileDialog::ShowDirsOnly, true);
198 
199  if (dialog.exec() == QDialog::Accepted)
200  {
201  QStringList selected = dialog.selectedFiles();
202  if (!selected.isEmpty())
203  {
204  ret = selected[0];
205  }
206  }
207  return ret;
208 }
209 
210 // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
211 
212 GeometrieTab::GeometrieTab(QWidget* parent) : QWidget(parent)
213 {
214  // propriete de grilles
215  QLabel* pSiteLabel = new QLabel(TR("id_site"));
216  QLabel* pBatLabel = new QLabel(TR("id_batiment"));
217  QLabel* pMacLabel = new QLabel(TR("id_machine"));
218  QLabel* pFaceLabel = new QLabel(TR("id_face"));
219  QLabel* pMailLabel = new QLabel(TR("id_maillage"));
220 
221  QLabel* pGridDimXLabel = new QLabel(TR("id_label_dimx_grid"));
227 
228  QLabel* pGridDimYLabel = new QLabel(TR("id_label_dimy_grid"));
234 
235  QLabel* pGridStepLabel = new QLabel(TR("id_label_step_grid"));
241 
242  QLabel* pGridMagnStepLabel = new QLabel(TR("id_label_step_grid_magn"));
248 
249  QGridLayout* groupBoxLayout = new QGridLayout();
250  groupBoxLayout->addWidget(pSiteLabel, 0, 1);
251  groupBoxLayout->addWidget(pBatLabel, 0, 2);
252  groupBoxLayout->addWidget(pMacLabel, 0, 3);
253  groupBoxLayout->addWidget(pFaceLabel, 0, 4);
254  groupBoxLayout->addWidget(pMailLabel, 0, 5);
255 
256  groupBoxLayout->addWidget(pGridDimXLabel, 1, 0);
257  groupBoxLayout->addWidget(_pGridDimXSiteEdit, 1, 1);
258  groupBoxLayout->addWidget(_pGridDimXBatEdit, 1, 2);
259  groupBoxLayout->addWidget(_pGridDimXMacEdit, 1, 3);
260  groupBoxLayout->addWidget(_pGridDimXFaceEdit, 1, 4);
261  groupBoxLayout->addWidget(_pGridDimXMailEdit, 1, 5);
262 
263  groupBoxLayout->addWidget(pGridDimYLabel, 2, 0);
264  groupBoxLayout->addWidget(_pGridDimYSiteEdit, 2, 1);
265  groupBoxLayout->addWidget(_pGridDimYBatEdit, 2, 2);
266  groupBoxLayout->addWidget(_pGridDimYMacEdit, 2, 3);
267  groupBoxLayout->addWidget(_pGridDimYFaceEdit, 2, 4);
268  groupBoxLayout->addWidget(_pGridDimYMailEdit, 2, 5);
269 
270  groupBoxLayout->addWidget(pGridStepLabel, 3, 0);
271  groupBoxLayout->addWidget(_pGridStepSiteEdit, 3, 1);
272  groupBoxLayout->addWidget(_pGridStepBatEdit, 3, 2);
273  groupBoxLayout->addWidget(_pGridStepMacEdit, 3, 3);
274  groupBoxLayout->addWidget(_pGridStepFaceEdit, 3, 4);
275  groupBoxLayout->addWidget(_pGridStepMailEdit, 3, 5);
276 
277  groupBoxLayout->addWidget(pGridMagnStepLabel, 4, 0);
278  groupBoxLayout->addWidget(_pGridMagnStepSiteEdit, 4, 1);
279  groupBoxLayout->addWidget(_pGridMagnStepBatEdit, 4, 2);
280  groupBoxLayout->addWidget(_pGridMagnStepMacEdit, 4, 3);
281  groupBoxLayout->addWidget(_pGridMagnStepFaceEdit, 4, 4);
282  groupBoxLayout->addWidget(_pGridMagnStepMailEdit, 4, 5);
283 
284  QGroupBox* groupBox = new QGroupBox();
285  groupBox->setTitle(TR("id_grid"));
286  groupBox->setLayout(groupBoxLayout);
287 
288  // Angles
289  _p15RadioButton = new QRadioButton("15");
290  _p30RadioButton = new QRadioButton("30");
291  _p45RadioButton = new QRadioButton("45");
292  _p90RadioButton = new QRadioButton("90");
293 
294  _pAnglesButtonGroup = new QButtonGroup();
295  _pAnglesButtonGroup->setExclusive(true);
296  _pAnglesButtonGroup->addButton(_p15RadioButton, 0);
297  _pAnglesButtonGroup->addButton(_p30RadioButton, 1);
298  _pAnglesButtonGroup->addButton(_p45RadioButton, 2);
299  _pAnglesButtonGroup->addButton(_p90RadioButton, 3);
300 
301  QGridLayout* groupBoxAnglesLayout = new QGridLayout();
302  groupBoxAnglesLayout->addWidget(_p15RadioButton, 0, 0);
303  groupBoxAnglesLayout->addWidget(_p30RadioButton, 0, 1);
304  groupBoxAnglesLayout->addWidget(_p45RadioButton, 0, 2);
305  groupBoxAnglesLayout->addWidget(_p90RadioButton, 0, 3);
306 
307  QGroupBox* groupBoxAngles = new QGroupBox();
308  groupBoxAngles->setTitle("Angle");
309  groupBoxAngles->setLayout(groupBoxAnglesLayout);
310 
311  // Geometrie
312  QLabel* pSourceSize = new QLabel(TR("id_label_source_size"));
314  QLabel* pPointControlSize = new QLabel(TR("id_label_pointcontrol_size"));
316  QLabel* pResoCylLabel = new QLabel(TR("id_label_nb_face_cylinder"));
317  _pResoCylEdit = new TYLineEdit();
318  QLabel* pSeuilDistNulLabel = new QLabel(TR("id_label_seuil_dist_nulle"));
320 
321  QGridLayout* groupBox1Layout = new QGridLayout();
322  groupBox1Layout->addWidget(pSourceSize, 0, 0);
323  groupBox1Layout->addWidget(_pSourceSizeEdit, 0, 1);
324  groupBox1Layout->addWidget(pPointControlSize, 1, 0);
325  groupBox1Layout->addWidget(_pPointControlSizeEdit, 1, 1);
326  groupBox1Layout->addWidget(pResoCylLabel, 2, 0);
327  groupBox1Layout->addWidget(_pResoCylEdit, 2, 1);
328  groupBox1Layout->addWidget(pSeuilDistNulLabel, 3, 0);
329  groupBox1Layout->addWidget(_pSeuilDistNulEdit, 3, 1);
330 
331  QGroupBox* groupBox1 = new QGroupBox();
332  groupBox1->setTitle(TR("id_geometry"));
333  groupBox1->setLayout(groupBox1Layout);
334 
335  // Topographie
336  QLabel* pDelaunayToleranceLabel = new QLabel(TR("id_label_delaunay_tolerance"));
338  QLabel* pDistMinPtCrbNivLabel = new QLabel(TR("id_label_dist_min_pts_crbniv"));
340  QLabel* pDefaultDimXLabel = new QLabel(TR("id_label_def_dimx"));
342  QLabel* pDefaultDimYLabel = new QLabel(TR("id_label_def_dimy"));
344 
345  QGridLayout* groupBox2Layout = new QGridLayout();
346  groupBox2Layout->addWidget(pDelaunayToleranceLabel, 0, 0);
347  groupBox2Layout->addWidget(_pDelaunayToleranceEdit, 0, 1);
348  groupBox2Layout->addWidget(pDistMinPtCrbNivLabel, 1, 0);
349  groupBox2Layout->addWidget(_pDistMinPtCrbNivEdit, 1, 1);
350  groupBox2Layout->addWidget(pDefaultDimXLabel, 2, 0);
351  groupBox2Layout->addWidget(_pDefaultDimXEdit, 2, 1);
352  groupBox2Layout->addWidget(pDefaultDimYLabel, 3, 0);
353  groupBox2Layout->addWidget(_pDefaultDimYEdit, 3, 1);
354 
355  QGroupBox* groupBox2 = new QGroupBox();
356  groupBox2->setTitle(TR("id_topography"));
357  groupBox2->setLayout(groupBox2Layout);
358 
359  // Constructions
360  QLabel* pDefaultHMurLabel = new QLabel(TR("id_label_def_h_mur"));
362  QLabel* pDefaultWEcranLabel = new QLabel(TR("id_label_def_w_ecran"));
364 
365  QGridLayout* groupBox3Layout = new QGridLayout();
366  groupBox3Layout->addWidget(pDefaultHMurLabel, 0, 0);
367  groupBox3Layout->addWidget(_pDefaultHMurEdit, 0, 1);
368  groupBox3Layout->addWidget(pDefaultWEcranLabel, 1, 0);
369  groupBox3Layout->addWidget(_pDefaultWEcranEdit, 1, 1);
370 
371  QGroupBox* groupBox3 = new QGroupBox();
372  groupBox3->setTitle(TR("id_Ecran"));
373  groupBox3->setLayout(groupBox3Layout);
374 
375  QVBoxLayout* pTabLayout = new QVBoxLayout;
376  pTabLayout->addWidget(groupBox);
377  pTabLayout->addWidget(groupBoxAngles);
378  pTabLayout->addWidget(groupBox1);
379  pTabLayout->addWidget(groupBox2);
380  pTabLayout->addWidget(groupBox3);
381  pTabLayout->addStretch(1);
382 
383  // Useless fields must be disabled
384  _pGridDimXMailEdit->setEnabled(false);
385  _pGridDimYMailEdit->setEnabled(false);
386  _pGridStepMailEdit->setEnabled(false);
387  _pGridMagnStepMailEdit->setEnabled(false);
388 
389  _pSeuilDistNulEdit->setEnabled(false);
390 
391  auto newLayout = wrapLayoutIntoScrollArea(pTabLayout);
392  setLayout(newLayout);
393 }
394 
395 pref3DTab::pref3DTab(QWidget* parent) : QWidget(parent)
396 {
397  // luminosite
398  QLabel* pClairLabel = new QLabel(TR("id_clair"));
399  _pLightSlider = new QSlider(Qt::Horizontal);
400  _pLightSlider->setRange(10, 100);
401  QLabel* pSombreLabel = new QLabel(TR("id_sombre"));
402 
403  QGridLayout* groupBox1Layout = new QGridLayout();
404  groupBox1Layout->addWidget(pSombreLabel, 0, 0);
405  groupBox1Layout->addWidget(_pLightSlider, 0, 1);
406  groupBox1Layout->addWidget(pClairLabel, 0, 2);
407 
408  QGroupBox* groupBox1 = new QGroupBox();
409  groupBox1->setTitle(TR("id_luminosite"));
410  groupBox1->setLayout(groupBox1Layout);
411 
412  // Selection des objets
413  QLabel* pPrecisLabel = new QLabel(TR("id_precision"));
415  QGridLayout* groupPrecisLayout = new QGridLayout();
416  groupPrecisLayout->addWidget(pPrecisLabel, 0, 0);
417  groupPrecisLayout->addWidget(_pPrecisPickEdit, 0, 1);
418 
419  _pViewOnlyHighlightCheckBox = new QCheckBox();
420  _pViewOnlyHighlightCheckBox->setText(TR("id_label_view_only_highlight"));
421 
422  _pCenterOnLocateCheckBox = new QCheckBox();
423  _pCenterOnLocateCheckBox->setText(TR("id_label_center_on_locate"));
424 
425  QGridLayout* groupBox2Layout = new QGridLayout();
426  groupBox2Layout->addLayout(groupPrecisLayout, 0, 0);
427  groupBox2Layout->addWidget(_pViewOnlyHighlightCheckBox, 1, 0);
428  groupBox2Layout->addWidget(_pCenterOnLocateCheckBox, 2, 0);
429 
430  QGroupBox* groupBox2 = new QGroupBox();
431  groupBox2->setTitle(TR("id_picking"));
432  groupBox2->setLayout(groupBox2Layout);
433 
434  // Deplacement de la camera
435  _pWireframeOnMovingCameraCheckBox = new QCheckBox();
436  _pWireframeOnMovingCameraCheckBox->setText(TR("id_label_wireframe_on_moving_camera"));
437 
438  QGridLayout* groupBox2bLayout = new QGridLayout();
439  groupBox2bLayout->addWidget(_pWireframeOnMovingCameraCheckBox, 1, 0);
440 
441  QGroupBox* groupBox2b = new QGroupBox();
442  groupBox2b->setTitle(TR("id_wireframe"));
443  groupBox2b->setLayout(groupBox2bLayout);
444 
445  // Zoom
446  QLabel* pZoomStepLabel = new QLabel(TR("id_step"));
447  _pZoomStepEdit = new TYLineEdit();
448 
449  QGridLayout* groupBox3Layout = new QGridLayout();
450  groupBox3Layout->addWidget(pZoomStepLabel, 0, 0);
451  groupBox3Layout->addWidget(_pZoomStepEdit, 0, 1);
452 
453  QGroupBox* groupBox3 = new QGroupBox();
454  groupBox3->setTitle(TR("id_zoom"));
455  groupBox3->setLayout(groupBox3Layout);
456 
457  // Fonctions attachees a la souris
458  QLabel* p2DLabel = new QLabel(TR("id_2D"));
459  QLabel* p3DLabel = new QLabel(TR("id_3D"));
460  QLabel* pLeftLabel2D = new QLabel(TR("id_left_button"));
461  _pLeftButton2DComboBox = new QComboBox();
462  _pLeftButton2DComboBox->insertItem(0, TR("id_zoom"));
463  _pLeftButton2DComboBox->insertItem(1, TR("id_translate"));
464  QLabel* pMiddleLabel2D = new QLabel(TR("id_middle_button"));
465  _pMiddleButton2DComboBox = new QComboBox();
466  _pMiddleButton2DComboBox->insertItem(0, TR("id_zoom"));
467  _pMiddleButton2DComboBox->insertItem(1, TR("id_translate"));
468  QLabel* pRightLabel2D = new QLabel(TR("id_right_button"));
469  _pRightButton2DComboBox = new QComboBox();
470  _pRightButton2DComboBox->insertItem(0, TR("id_zoom"));
471  _pRightButton2DComboBox->insertItem(1, TR("id_translate"));
472  _pLeftButton3DComboBox = new QComboBox();
473  _pLeftButton3DComboBox->insertItem(0, TR("id_zoom"));
474  _pLeftButton3DComboBox->insertItem(1, TR("id_translate"));
475  _pLeftButton3DComboBox->insertItem(2, TR("id_roll"));
476  _pLeftButton3DComboBox->insertItem(3, TR("id_rotate"));
477  QLabel* pMiddleLabel3D = new QLabel(TR("id_middle_button"));
478  _pMiddleButton3DComboBox = new QComboBox();
479  _pMiddleButton3DComboBox->insertItem(0, TR("id_zoom"));
480  _pMiddleButton3DComboBox->insertItem(1, TR("id_translate"));
481  _pMiddleButton3DComboBox->insertItem(2, TR("id_roll"));
482  _pMiddleButton3DComboBox->insertItem(3, TR("id_rotate"));
483  _pRightButton3DComboBox = new QComboBox();
484  _pRightButton3DComboBox->insertItem(0, TR("id_zoom"));
485  _pRightButton3DComboBox->insertItem(1, TR("id_translate"));
486  _pRightButton3DComboBox->insertItem(2, TR("id_roll"));
487  _pRightButton3DComboBox->insertItem(3, TR("id_rotate"));
488 
489  QGridLayout* groupBoxLayout = new QGridLayout();
490  groupBoxLayout->addWidget(p2DLabel, 0, 1);
491  groupBoxLayout->addWidget(p3DLabel, 0, 2);
492  groupBoxLayout->addWidget(pLeftLabel2D, 1, 0);
493  groupBoxLayout->addWidget(_pLeftButton2DComboBox, 1, 1);
494  groupBoxLayout->addWidget(pMiddleLabel2D, 2, 0);
495  groupBoxLayout->addWidget(_pMiddleButton2DComboBox, 2, 1);
496  groupBoxLayout->addWidget(pRightLabel2D, 3, 0);
497  groupBoxLayout->addWidget(_pRightButton2DComboBox, 3, 1);
498  groupBoxLayout->addWidget(_pLeftButton3DComboBox, 1, 2);
499  groupBoxLayout->addWidget(pMiddleLabel3D, 2, 2);
500  groupBoxLayout->addWidget(_pMiddleButton3DComboBox, 2, 2);
501  groupBoxLayout->addWidget(_pRightButton3DComboBox, 3, 2);
502 
503  QGroupBox* groupBox = new QGroupBox();
504  groupBox->setTitle(TR("id_mouse_button_functions"));
505  groupBox->setLayout(groupBoxLayout);
506 
507  // Fonctions souris "shift"
508  QLabel* p2DLabelSht = new QLabel(TR("id_2D"));
509  QLabel* p3DLabelSht = new QLabel(TR("id_3D"));
510  QLabel* pLeftLabel2DSht = new QLabel(TR("id_left_button"));
511  _pLeftButton2DShtComboBox = new QComboBox();
512  _pLeftButton2DShtComboBox->insertItem(0, TR("id_zoom"));
513  _pLeftButton2DShtComboBox->insertItem(1, TR("id_translate"));
514  QLabel* pRightLabel2DSht = new QLabel(TR("id_right_button"));
515  _pRightButton2DShtComboBox = new QComboBox();
516  _pRightButton2DShtComboBox->insertItem(0, TR("id_zoom"));
517  _pRightButton2DShtComboBox->insertItem(1, TR("id_translate"));
518  _pLeftButton3DShtComboBox = new QComboBox();
519  _pLeftButton3DShtComboBox->insertItem(0, TR("id_zoom"));
520  _pLeftButton3DShtComboBox->insertItem(1, TR("id_translate"));
521  _pLeftButton3DShtComboBox->insertItem(2, TR("id_roll"));
522  _pLeftButton3DShtComboBox->insertItem(3, TR("id_rotate"));
523  _pRightButton3DShtComboBox = new QComboBox();
524  _pRightButton3DShtComboBox->insertItem(0, TR("id_zoom"));
525  _pRightButton3DShtComboBox->insertItem(1, TR("id_translate"));
526  _pRightButton3DShtComboBox->insertItem(2, TR("id_roll"));
527  _pRightButton3DShtComboBox->insertItem(3, TR("id_rotate"));
528 
529  QGridLayout* groupBox4Layout = new QGridLayout();
530  groupBox4Layout->addWidget(p2DLabelSht, 0, 1);
531  groupBox4Layout->addWidget(p3DLabelSht, 0, 2);
532  groupBox4Layout->addWidget(pLeftLabel2DSht, 1, 0);
533  groupBox4Layout->addWidget(_pLeftButton2DShtComboBox, 1, 1);
534  groupBox4Layout->addWidget(pRightLabel2DSht, 2, 0);
535  groupBox4Layout->addWidget(_pRightButton2DShtComboBox, 2, 1);
536  groupBox4Layout->addWidget(_pLeftButton3DShtComboBox, 1, 2);
537  groupBox4Layout->addWidget(_pRightButton3DShtComboBox, 2, 2);
538 
539  QGroupBox* groupBox4 = new QGroupBox();
540  groupBox4->setTitle(TR("id_mouse_button_functions_sht"));
541  groupBox4->setLayout(groupBox4Layout);
542 
543  // Camera pas a pas
544  QLabel* pStepLabelSht = new QLabel(TR("id_camera_step"));
545  QLabel* pTranslateLabelSht = new QLabel(TR("id_translate"));
546  QLabel* pRotateLabelSht = new QLabel(TR("id_rotate"));
547  QLabel* pZoomLabelSht = new QLabel(TR("id_zoom"));
551 
552  QGridLayout* groupBox5Layout = new QGridLayout();
553  groupBox5Layout->addWidget(pStepLabelSht, 1, 0);
554  groupBox5Layout->addWidget(pTranslateLabelSht, 0, 1);
555  groupBox5Layout->addWidget(pRotateLabelSht, 0, 2);
556  groupBox5Layout->addWidget(pZoomLabelSht, 0, 3);
557  groupBox5Layout->addWidget(_pCameraStepTranslateEdit, 1, 1);
558  groupBox5Layout->addWidget(_pCameraStepRotateEdit, 1, 2);
559  groupBox5Layout->addWidget(_pCameraStepZoomEdit, 1, 3);
560 
561  QGroupBox* groupBox5 = new QGroupBox();
562  groupBox5->setTitle(TR("id_camera_step_title"));
563  groupBox5->setLayout(groupBox5Layout);
564 
565  QVBoxLayout* pTabLayout = new QVBoxLayout();
566  pTabLayout->addWidget(groupBox1);
567  pTabLayout->addWidget(groupBox2);
568  pTabLayout->addWidget(groupBox2b);
569  pTabLayout->addWidget(groupBox3);
570  pTabLayout->addWidget(groupBox);
571  pTabLayout->addWidget(groupBox4);
572  pTabLayout->addWidget(groupBox5);
573  pTabLayout->addStretch(1);
574 
575  auto newLayout = wrapLayoutIntoScrollArea(pTabLayout);
576  setLayout(newLayout);
577 }
578 
579 ColorsTab::ColorsTab(QWidget* parent) : QWidget(parent)
580 {
581  // RENDERER
582  QLabel* pBackgroundLabel = new QLabel(TR("id_background_color"));
584  _pBackgroundColorToolButton->setFixedSize(60, 30);
585  QLabel* pGridLabel = new QLabel(TR("id_grid_color"));
587  _pGridColorToolButton->setFixedSize(60, 30);
588  QLabel* pPoliceColorLabel = new QLabel(TR("id_police_color"));
590  _pPoliceColorToolButton->setFixedSize(60, 30);
591 
592  QGridLayout* groupBoxLayout = new QGridLayout();
593  groupBoxLayout->addWidget(pBackgroundLabel, 0, 0);
594  groupBoxLayout->addWidget(_pBackgroundColorToolButton, 0, 1);
595  groupBoxLayout->addWidget(pGridLabel, 1, 0);
596  groupBoxLayout->addWidget(_pGridColorToolButton, 1, 1);
597  groupBoxLayout->addWidget(pPoliceColorLabel, 2, 0);
598  groupBoxLayout->addWidget(_pPoliceColorToolButton, 2, 1);
599 
600  QGroupBox* groupBox = new QGroupBox();
601  groupBox->setTitle(TR("id_renderer"));
602  groupBox->setLayout(groupBoxLayout);
603 
604  // TOPOGRAPHIE
605  QLabel* pTerrainColorLabel = new QLabel(TR("id_terrain_color"));
607  _pTerrainColorToolButton->setFixedSize(60, 30);
608  QLabel* pPlanEauColorLabel = new QLabel(TR("id_planeau_color"));
610  _pPlanEauColorToolButton->setFixedSize(60, 30);
611  QLabel* pCrsEauColorLabel = new QLabel(TR("id_crseau_color"));
613  _pCrsEauColorToolButton->setFixedSize(60, 30);
614  QLabel* pCrbNivColorLabel = new QLabel(TR("id_crbniv_color"));
616  _pCrbNivColorToolButton->setFixedSize(60, 30);
617  QLabel* pVegColorLabel = new QLabel(TR("id_veg_color"));
619  _pVegColorToolButton->setFixedSize(60, 30);
620 
621  QGridLayout* groupBox1Layout = new QGridLayout();
622  groupBox1Layout->addWidget(pTerrainColorLabel, 0, 0);
623  groupBox1Layout->addWidget(_pTerrainColorToolButton, 0, 1);
624  groupBox1Layout->addWidget(pPlanEauColorLabel, 1, 0);
625  groupBox1Layout->addWidget(_pPlanEauColorToolButton, 1, 1);
626  groupBox1Layout->addWidget(pCrsEauColorLabel, 2, 0);
627  groupBox1Layout->addWidget(_pCrsEauColorToolButton, 2, 1);
628  groupBox1Layout->addWidget(pCrbNivColorLabel, 3, 0);
629  groupBox1Layout->addWidget(_pCrbNivColorToolButton, 3, 1);
630  groupBox1Layout->addWidget(pVegColorLabel, 4, 0);
631  groupBox1Layout->addWidget(_pVegColorToolButton, 4, 1);
632 
633  QGroupBox* groupBox1 = new QGroupBox();
634  groupBox1->setTitle(TR("id_topography"));
635  groupBox1->setLayout(groupBox1Layout);
636 
637  // MACHINES
638  QLabel* pCylindreColorLabel = new QLabel(TR("id_cylindre_color"));
640  _pCylindreColorToolButton->setFixedSize(60, 30);
641  QLabel* pBoxColorLabel = new QLabel(TR("id_box_color"));
643  _pBoxColorToolButton->setFixedSize(60, 30);
644  QLabel* pSubRectColorLabel = new QLabel(TR("id_bouche_color"));
646  _pSubRectColorToolButton->setFixedSize(60, 30);
647 
648  QGridLayout* groupBox2Layout = new QGridLayout();
649  groupBox2Layout->addWidget(pCylindreColorLabel, 0, 0);
650  groupBox2Layout->addWidget(_pCylindreColorToolButton, 0, 1);
651  groupBox2Layout->addWidget(pBoxColorLabel, 1, 0);
652  groupBox2Layout->addWidget(_pBoxColorToolButton, 1, 1);
653  groupBox2Layout->addWidget(pSubRectColorLabel, 2, 0);
654  groupBox2Layout->addWidget(_pSubRectColorToolButton, 2, 1);
655 
656  QGroupBox* groupBox2 = new QGroupBox();
657  groupBox2->setTitle(TR("id_machine"));
658  groupBox2->setLayout(groupBox2Layout);
659 
660  // BATIMENTS
661  QLabel* pMurColorLabel = new QLabel(TR("id_mur_color"));
663  _pMurColorToolButton->setFixedSize(60, 30);
664  QLabel* pDalleColorLabel = new QLabel(TR("id_dalle_color"));
666  _pDalleColorToolButton->setFixedSize(60, 30);
667  QLabel* pEcranColorLabel = new QLabel(TR("id_ecran_color"));
669  _pEcranColorToolButton->setFixedSize(60, 30);
670 
671  QGridLayout* groupBox3Layout = new QGridLayout();
672  groupBox3Layout->addWidget(pMurColorLabel, 0, 0);
673  groupBox3Layout->addWidget(_pMurColorToolButton, 0, 1);
674  groupBox3Layout->addWidget(pDalleColorLabel, 1, 0);
675  groupBox3Layout->addWidget(_pDalleColorToolButton, 1, 1);
676  groupBox3Layout->addWidget(pEcranColorLabel, 2, 0);
677  groupBox3Layout->addWidget(_pEcranColorToolButton, 2, 1);
678 
679  QGroupBox* groupBox3 = new QGroupBox();
680  groupBox3->setTitle(TR("id_batiment"));
681  groupBox3->setLayout(groupBox3Layout);
682 
683  // INFRASTRUCTURE
684  QLabel* pRouteColorLabel = new QLabel(TR("id_route_color"));
686  _pRouteColorToolButton->setFixedSize(60, 30);
687  QLabel* pResTranspColorLabel = new QLabel(TR("id_restransp_color"));
689  _pResTranspColorToolButton->setFixedSize(60, 30);
690 
691  QGridLayout* groupBox5Layout = new QGridLayout();
692  groupBox5Layout->addWidget(pRouteColorLabel, 0, 0);
693  groupBox5Layout->addWidget(_pRouteColorToolButton, 0, 1);
694  groupBox5Layout->addWidget(pResTranspColorLabel, 1, 0);
695  groupBox5Layout->addWidget(_pResTranspColorToolButton, 1, 1);
696 
697  QGroupBox* groupBox5 = new QGroupBox();
698  groupBox5->setTitle(TR("id_infrastructure"));
699  groupBox5->setLayout(groupBox5Layout);
700 
701  // CALCUL
702  QLabel* pPointControlColorLabel = new QLabel(TR("id_pointcontrol_color"));
704  _pPointControlColorToolButton->setFixedSize(60, 30);
705 
706  QGridLayout* groupBox7Layout = new QGridLayout();
707  groupBox7Layout->addWidget(pPointControlColorLabel, 0, 0);
708  groupBox7Layout->addWidget(_pPointControlColorToolButton, 0, 1);
709 
710  QGroupBox* groupBox7 = new QGroupBox();
711  groupBox7->setTitle(TR("id_group_calcul_name"));
712  groupBox7->setLayout(groupBox7Layout);
713 
714  // SOURCE
715  QLabel* pSourcePonctColorLabel = new QLabel(TR("id_sourceponct_color"));
717  _pSourcePonctColorToolButton->setFixedSize(60, 30);
718 
719  QGridLayout* groupBox8Layout = new QGridLayout();
720  groupBox8Layout->addWidget(pSourcePonctColorLabel, 0, 0);
721  groupBox8Layout->addWidget(_pSourcePonctColorToolButton, 0, 1);
722 
723  QGroupBox* groupBox8 = new QGroupBox();
724  groupBox8->setTitle(TR("id_group_source_name"));
725  groupBox8->setLayout(groupBox8Layout);
726 
727  // ALTIMETRIE
729  _pAltiColorMinToolButton->setFixedSize(60, 30);
730  QFrame* pLine = new QFrame();
731  pLine->setProperty("frameShape", (int)QFrame::HLine);
732  pLine->setFrameShadow(QFrame::Sunken);
733  pLine->setFrameShape(QFrame::HLine);
735  _pAltiColorMaxToolButton->setFixedSize(60, 30);
736 
737  QGridLayout* groupBox6Layout = new QGridLayout();
738  groupBox6Layout->addWidget(_pAltiColorMinToolButton, 0, 0);
739  groupBox6Layout->addWidget(pLine, 0, 1, 1, 2);
740  groupBox6Layout->addWidget(_pAltiColorMaxToolButton, 0, 3);
741 
742  QGroupBox* groupBox6 = new QGroupBox();
743  groupBox6->setTitle(TR("id_alti_color_map"));
744  groupBox6->setLayout(groupBox6Layout);
745 
746  // RECEPTEURS SURFACIQUES
747  QLabel* pMailOpacityLabel = new QLabel(TR("id_maillage_opacity"));
748  _pMailOpacitySlider = new QSlider(Qt::Horizontal);
749  _pMailOpacitySlider->setMinimum(0);
750  _pMailOpacitySlider->setMaximum(100);
751  _pMailOpacitySlider->setPageStep(1);
752  _pMailOpacitySlider->setValue(50);
753  _pMailAntiAliasingCheckBox = new QCheckBox(TR("id_antialiasing"));
754  _pMailAntiAliasingCheckBox->setChecked(true);
755 
756  QGridLayout* groupBox4Layout = new QGridLayout();
757  groupBox4Layout->addWidget(pMailOpacityLabel, 0, 0);
758  groupBox4Layout->addWidget(_pMailOpacitySlider, 1, 0);
759  groupBox4Layout->addWidget(_pMailAntiAliasingCheckBox, 2, 0);
760 
761  QGroupBox* groupBox4 = new QGroupBox();
762  groupBox4->setTitle(TR("id_maillage"));
763  groupBox4->setLayout(groupBox4Layout);
764 
765  // OPACITE
766  QLabel* pWinOpacityLabel = new QLabel(TR("id_win_opacity"));
767  _pWinOpacitySlider = new QSlider(Qt::Horizontal);
768  _pWinOpacitySlider->setMinimum(0);
769  _pWinOpacitySlider->setMaximum(100);
770  _pWinOpacitySlider->setPageStep(1);
771  _pWinOpacitySlider->setValue(50);
772  QLabel* pAltOpacityLabel = new QLabel(TR("id_atm_opacity"));
773  _pAltOpacitySlider = new QSlider(Qt::Horizontal);
774  _pAltOpacitySlider->setMinimum(0);
775  _pAltOpacitySlider->setMaximum(100);
776  _pAltOpacitySlider->setPageStep(1);
777  _pAltOpacitySlider->setValue(50);
778 
779  QGridLayout* groupBox9Layout = new QGridLayout();
780  groupBox9Layout->addWidget(pWinOpacityLabel, 0, 0);
781  groupBox9Layout->addWidget(_pWinOpacitySlider, 1, 0);
782  groupBox9Layout->addWidget(pAltOpacityLabel, 2, 0);
783  groupBox9Layout->addWidget(_pAltOpacitySlider, 3, 0);
784 
785  QGroupBox* groupBox9 = new QGroupBox();
786  groupBox9->setTitle(TR("id_opacity"));
787  groupBox9->setLayout(groupBox9Layout);
788 
789  QGridLayout* pTabLayout = new QGridLayout();
790  pTabLayout->addWidget(groupBox, 0, 0);
791  pTabLayout->addWidget(groupBox1, 1, 0, 2, 1);
792  pTabLayout->addWidget(groupBox2, 0, 1);
793  pTabLayout->addWidget(groupBox3, 1, 1);
794  pTabLayout->addWidget(groupBox5, 2, 1);
795  pTabLayout->addWidget(groupBox7, 3, 0);
796  pTabLayout->addWidget(groupBox8, 3, 1);
797  pTabLayout->addWidget(groupBox6, 4, 0, 1, 2);
798  pTabLayout->addWidget(groupBox4, 5, 0, 1, 1);
799  pTabLayout->addWidget(groupBox9, 5, 1, 1, 1);
800 
801  auto newLayout = wrapLayoutIntoScrollArea(pTabLayout);
802  setLayout(newLayout);
803 }
804 
805 AcoustiqueTab::AcoustiqueTab(QWidget* parent) : QWidget(parent)
806 {
811 
812  _pMaillage = new TYMaillage();
813 
814  // Sol
815  QLabel* pLabelResistivite = new QLabel(TR("id_resistivite_label"));
817  QLabel* pUnitResis = new QLabel(TR("id_unite_resistivite"));
818  QLabel* pLabelFacteurSol = new QLabel(TR("id_facteur_sol_label"));
819  pLabelFacteurSol->setToolTip(TR("id_facteur_sol_tooltip"));
821  QLabel* pUnitFacteurSol = new QLabel("-");
822  QLabel* pLabelEpaisseur = new QLabel(TR("id_epaisseur_label"));
824  QLabel* pUnitEpais = new QLabel(TR("id_unite_epaisseur"));
825  QLabel* pLabelEcartType = new QLabel(TR("id_ecarttype_label"));
827  QLabel* pUnitET = new QLabel(TR("id_unite_ecarttype"));
828  QLabel* pLabelLongueur = new QLabel(TR("id_longueur_label"));
830  QLabel* pUnitLong = new QLabel(TR("id_unite_longueur"));
831  QGridLayout* groupBoxResistEpaiLayout = new QGridLayout();
832  groupBoxResistEpaiLayout->addWidget(pLabelResistivite, 0, 0);
833  groupBoxResistEpaiLayout->addWidget(_pLineEditResistivite, 0, 1);
834  groupBoxResistEpaiLayout->addWidget(pUnitResis, 0, 2);
835  groupBoxResistEpaiLayout->addWidget(pLabelFacteurSol, 1, 0);
836  groupBoxResistEpaiLayout->addWidget(_pLineEditFacteurSol, 1, 1);
837  groupBoxResistEpaiLayout->addWidget(pUnitFacteurSol, 1, 2);
838  groupBoxResistEpaiLayout->addWidget(pLabelEpaisseur, 2, 0);
839  groupBoxResistEpaiLayout->addWidget(_pLineEditEpaisseur, 2, 1);
840  groupBoxResistEpaiLayout->addWidget(pUnitEpais, 2, 2);
841  groupBoxResistEpaiLayout->addWidget(pLabelEcartType, 3, 0);
842  groupBoxResistEpaiLayout->addWidget(_pLineEditEcartType, 3, 1);
843  groupBoxResistEpaiLayout->addWidget(pUnitET, 3, 2);
844  groupBoxResistEpaiLayout->addWidget(pLabelLongueur, 4, 0);
845  groupBoxResistEpaiLayout->addWidget(_pLineEditLongueur, 4, 1);
846  groupBoxResistEpaiLayout->addWidget(pUnitLong, 4, 2);
847 
848  QPushButton* pPushButtonResistivite = new QPushButton(TR("id_edit_resistivite"));
849  connect(pPushButtonResistivite, &QPushButton::clicked, this, &AcoustiqueTab::editResistivite);
850 
851  QGridLayout* groupBox1Layout = new QGridLayout();
852  groupBox1Layout->addLayout(groupBoxResistEpaiLayout, 0, 0);
853  groupBox1Layout->addWidget(pPushButtonResistivite, 1, 0);
854 
855  QGroupBox* groupBox1 = new QGroupBox();
856  groupBox1->setTitle(TR("id_default_sol"));
857  groupBox1->setLayout(groupBox1Layout);
858 
859  // Materiau de construction
860  QLabel* pLabelMasseVol = new QLabel(TR("id_masse_vol_label"));
862  QLabel* pUnitMasseVol = new QLabel(TR("id_unite_masse_vol"));
863  QGridLayout* groupBoxMasseLayout = new QGridLayout();
864  groupBoxMasseLayout->addWidget(pLabelMasseVol, 0, 0);
865  groupBoxMasseLayout->addWidget(_pLineEditMasseVol, 0, 1);
866  groupBoxMasseLayout->addWidget(pUnitMasseVol, 0, 2);
867 
868  QPushButton* pPushButtonSpectreAbso = new QPushButton(TR("id_edit_spectre_abso"));
869  QPushButton* pPushButtonSpectreAtt = new QPushButton(TR("id_edit_spectre_att"));
870  connect(pPushButtonSpectreAbso, &QPushButton::clicked, this, &AcoustiqueTab::editSpectreAbso);
871  connect(pPushButtonSpectreAtt, &QPushButton::clicked, this, &AcoustiqueTab::editSpectreAtt);
872  QGridLayout* groupBoxSpectreLayout = new QGridLayout();
873  groupBoxSpectreLayout->addWidget(pPushButtonSpectreAbso, 0, 0);
874  groupBoxSpectreLayout->addWidget(pPushButtonSpectreAtt, 0, 1);
875 
876  QGridLayout* groupBox3Layout = new QGridLayout();
877  groupBox3Layout->addLayout(groupBoxMasseLayout, 0, 0);
878  groupBox3Layout->addLayout(groupBoxSpectreLayout, 1, 0);
879 
880  QGroupBox* groupBox3 = new QGroupBox();
881  groupBox3->setTitle(TR("id_default_materiau"));
882  groupBox3->setLayout(groupBox3Layout);
883 
884  // Maillage
885  QPushButton* pPushButtonMaillage = new QPushButton(TR("id_edit_maillage"));
886  QObject::connect(pPushButtonMaillage, &QPushButton::clicked, this, &AcoustiqueTab::editMaillage);
887 
888  QGridLayout* groupBox4Layout = new QGridLayout();
889  groupBox4Layout->addWidget(pPushButtonMaillage, 0, 0);
890 
891  QGroupBox* groupBox4 = new QGroupBox();
892  groupBox4->setTitle(TR("id_default_maillage"));
893  groupBox4->setLayout(groupBox4Layout);
894 
895  // Seuils de contribution
896  QLabel* pLabelContribution = new QLabel(TR("id_label_contribution"));
897 
901 
902  QGridLayout* groupBoxContribLayout = new QGridLayout();
903  groupBoxContribLayout->addWidget(pLabelContribution, 0, 0);
904  groupBoxContribLayout->addWidget(_pContributionLineEditBas, 0, 1, Qt::AlignRight);
905  groupBoxContribLayout->addWidget(new QLabel("dB"), 0, 2, Qt::AlignLeft);
906 
907  groupBoxContribLayout->addWidget(_pContributionLineEditMoy, 0, 3, Qt::AlignRight);
908  groupBoxContribLayout->addWidget(new QLabel("dB"), 0, 4, Qt::AlignLeft);
909 
910  groupBoxContribLayout->addWidget(_pContributionLineEditHaut, 0, 5, Qt::AlignRight);
911  groupBoxContribLayout->addWidget(new QLabel("dB"), 0, 6, Qt::AlignLeft);
912 
913  QGroupBox* groupBox5 = new QGroupBox();
914  groupBox5->setTitle(TR("id_label_contribution"));
915  groupBox5->setLayout(groupBoxContribLayout);
916 
917  QVBoxLayout* pTabLayout = new QVBoxLayout();
918  pTabLayout->addWidget(groupBox1);
919  pTabLayout->addWidget(groupBox3);
920  pTabLayout->addWidget(groupBox4);
921  pTabLayout->addWidget(groupBox5);
922  pTabLayout->addStretch(1);
923 
924  auto newLayout = wrapLayoutIntoScrollArea(pTabLayout);
925  setLayout(newLayout);
926 }
927 
929 {
930  delete _pSpectreAttMatConst;
931  delete _pSpectreAbsoMatConst;
932  delete _pMaillage;
933 }
934 
936 {
937  TYSolResistanceDialog* pDialog =
938  new TYSolResistanceDialog(this, _pLineEditResistivite->text().toDouble());
939 
940  int ret = pDialog->exec();
941 
942  if (ret == QDialog::Accepted)
943  {
944  _pLineEditResistivite->setText(QString().setNum(pDialog->getResistivite()));
945  }
946 }
947 
949 {
950  _pSpectreAttMatConst->edit(this);
951 }
952 
954 {
955  _pSpectreAbsoMatConst->edit(this);
956 }
957 
959 {
960  _pMaillage->edit(this);
961 }
962 
964 {
965  // Directory specifique aux preferences traitees ici
966  QString oldDir = TYPreferenceManager::getCurrentDirectory();
967  TYPreferenceManager::setCurrentDirectory(TYDIRPREFERENCEMANAGER);
968  TYLineEdit* lineEdit = nullptr;
969  TYLineEditInt* lineEditInt = nullptr;
970 
971  // General
972  if (TYPreferenceManager::exists("HistoSize"))
973  {
974  lineEditInt = ((GeneralTab*)tabWidget->widget(4))->_pHistoSizeEdit;
975  ((QIntValidator*)lineEditInt->validator())->setRange(1, 256);
976  lineEditInt->setText(QString().setNum(TYPreferenceManager::getInt("HistoSize")));
977  }
978  else
979  {
980  ((GeneralTab*)tabWidget->widget(4))->_pHistoSizeEdit->setText(QString().setNum(10));
981  }
982 
983  if (TYPreferenceManager::exists("BiblioPath"))
984  {
985  ((GeneralTab*)tabWidget->widget(4))
986  ->_pLibraryPathEdit->setText(TYPreferenceManager::getString("BiblioPath"));
987  }
988  else
989  {
990  // Recuperation du dossier par defaut contenant la bibliotheque
991  QString dirPath = QDir::toNativeSeparators(getTYApp()->tympanUserDir() + "/library/");
992  ((GeneralTab*)tabWidget->widget(4))->_pLibraryPathEdit->setText(dirPath);
993  }
994 
995  if (TYPreferenceManager::exists("WorkDirPath"))
996  {
997  ((GeneralTab*)tabWidget->widget(4))
998  ->_pWorkDirPathEdit->setText(TYPreferenceManager::getString("WorkDirPath"));
999  }
1000  else
1001  {
1002  // Recuperation du dossier par defaut contenant la bibliotheque
1003  QString dirPath = QDir::toNativeSeparators(getTYApp()->getSettingsDir() + "/echange/");
1004  ((GeneralTab*)tabWidget->widget(4))->_pWorkDirPathEdit->setText(dirPath);
1005  }
1006 
1007  // Geometrie
1008  if (TYPreferenceManager::exists("GridDimXSite"))
1009  {
1010  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridDimXSiteEdit;
1011  ((QDoubleValidator*)lineEdit->validator())->setRange(1, 256000, 0);
1012  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridDimXSite")));
1013  }
1014  if (TYPreferenceManager::exists("GridDimYSite"))
1015  {
1016  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridDimYSiteEdit;
1017  ((QDoubleValidator*)lineEdit->validator())->setRange(1, 256000, 0);
1018  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridDimYSite")));
1019  }
1020  if (TYPreferenceManager::exists("GridStepSite"))
1021  {
1022  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridStepSiteEdit;
1023  ((QDoubleValidator*)lineEdit->validator())->setRange(0.1, 256000, 2);
1024  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridStepSite")));
1025  }
1026  if (TYPreferenceManager::exists("GridMagnStepSite"))
1027  {
1028  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridMagnStepSiteEdit;
1029  ((QDoubleValidator*)lineEdit->validator())->setRange(0.1, 256000, 2);
1030  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridMagnStepSite")));
1031  }
1032 
1033  if (TYPreferenceManager::exists("GridDimXBatiment"))
1034  {
1035  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridDimXBatEdit;
1036  ((QDoubleValidator*)lineEdit->validator())->setRange(1, 256000, 0);
1037  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridDimXBatiment")));
1038  }
1039  if (TYPreferenceManager::exists("GridDimYBatiment"))
1040  {
1041  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridDimYBatEdit;
1042  ((QDoubleValidator*)lineEdit->validator())->setRange(1, 256000, 0);
1043  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridDimYBatiment")));
1044  }
1045  if (TYPreferenceManager::exists("GridStepBatiment"))
1046  {
1047  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridStepBatEdit;
1048  ((QDoubleValidator*)lineEdit->validator())->setRange(0.1, 256000, 2);
1049  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridStepBatiment")));
1050  }
1051  if (TYPreferenceManager::exists("GridMagnStepBatiment"))
1052  {
1053  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridMagnStepBatEdit;
1054  ((QDoubleValidator*)lineEdit->validator())->setRange(0.1, 256000, 2);
1055  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridMagnStepBatiment")));
1056  }
1057 
1058  if (TYPreferenceManager::exists("GridDimXMachine"))
1059  {
1060  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridDimXMacEdit;
1061  ((QDoubleValidator*)lineEdit->validator())->setRange(1, 256000, 0);
1062  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridDimXMachine")));
1063  }
1064  if (TYPreferenceManager::exists("GridDimYMachine"))
1065  {
1066  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridDimYMacEdit;
1067  ((QDoubleValidator*)lineEdit->validator())->setRange(1, 256000, 0);
1068  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridDimYMachine")));
1069  }
1070  if (TYPreferenceManager::exists("GridStepMachine"))
1071  {
1072  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridStepMacEdit;
1073  ((QDoubleValidator*)lineEdit->validator())->setRange(0.1, 256000, 2);
1074  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridStepMachine")));
1075  }
1076  if (TYPreferenceManager::exists("GridMagnStepMachine"))
1077  {
1078  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridMagnStepMacEdit;
1079  ((QDoubleValidator*)lineEdit->validator())->setRange(0.1, 256000, 2);
1080  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridMagnStepMachine")));
1081  }
1082 
1083  if (TYPreferenceManager::exists("GridDimXFace"))
1084  {
1085  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridDimXFaceEdit;
1086  ((QDoubleValidator*)lineEdit->validator())->setRange(1, 256000, 0);
1087  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridDimXFace")));
1088  }
1089  if (TYPreferenceManager::exists("GridDimYFace"))
1090  {
1091  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridDimYFaceEdit;
1092  ((QDoubleValidator*)lineEdit->validator())->setRange(1, 256000, 0);
1093  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridDimYFace")));
1094  }
1095  if (TYPreferenceManager::exists("GridStepFace"))
1096  {
1097  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridStepFaceEdit;
1098  ((QDoubleValidator*)lineEdit->validator())->setRange(0.1, 256000, 2);
1099  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridStepFace")));
1100  }
1101  if (TYPreferenceManager::exists("GridMagnStepFace"))
1102  {
1103  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridMagnStepFaceEdit;
1104  ((QDoubleValidator*)lineEdit->validator())->setRange(0.1, 256000, 2);
1105  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridMagnStepFace")));
1106  }
1107 
1108  if (TYPreferenceManager::exists("GridDimXMaillage"))
1109  {
1110  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridDimXMailEdit;
1111  ((QDoubleValidator*)lineEdit->validator())->setRange(1, 256000, 0);
1112  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridDimXMaillage")));
1113  }
1114  if (TYPreferenceManager::exists("GridDimYMaillage"))
1115  {
1116  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridDimYMailEdit;
1117  ((QDoubleValidator*)lineEdit->validator())->setRange(1, 256000, 0);
1118  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridDimYMaillage")));
1119  }
1120  if (TYPreferenceManager::exists("GridStepMaillage"))
1121  {
1122  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridStepMailEdit;
1123  ((QDoubleValidator*)lineEdit->validator())->setRange(0.1, 256000, 2);
1124  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridStepMaillage")));
1125  }
1126  if (TYPreferenceManager::exists("GridMagnStepMaillage"))
1127  {
1128  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pGridMagnStepMailEdit;
1129  ((QDoubleValidator*)lineEdit->validator())->setRange(0.1, 256000, 2);
1130  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("GridMagnStepMaillage")));
1131  }
1132 
1133  if (TYPreferenceManager::exists("Angle"))
1134  {
1135  switch (ROUND(TYPreferenceManager::getFloat("Angle")))
1136  {
1137  default:
1138  case 15:
1139  {
1140  ((GeometrieTab*)tabWidget->widget(0))->_p15RadioButton->setChecked(true);
1141  }
1142  break;
1143  case 30:
1144  {
1145  ((GeometrieTab*)tabWidget->widget(0))->_p30RadioButton->setChecked(true);
1146  }
1147  break;
1148  case 45:
1149  {
1150  ((GeometrieTab*)tabWidget->widget(0))->_p45RadioButton->setChecked(true);
1151  }
1152  break;
1153  case 90:
1154  {
1155  ((GeometrieTab*)tabWidget->widget(0))->_p90RadioButton->setChecked(true);
1156  }
1157  break;
1158  }
1159  }
1160 
1161  // Taille des sources
1162  if (TYPreferenceManager::exists("UserSrcPonctGraphicSize"))
1163  {
1164  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pSourceSizeEdit;
1165  ((QDoubleValidator*)lineEdit->validator())->setRange(0.5, 50.0, 2);
1166  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("UserSrcPonctGraphicSize")));
1167  }
1168  // Taille des points de controles
1169  if (TYPreferenceManager::exists("PointControlGraphicSize"))
1170  {
1171  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pPointControlSizeEdit;
1172  ((QDoubleValidator*)lineEdit->validator())->setRange(0.5, 50.0, 2);
1173  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("PointControlGraphicSize")));
1174  }
1175 
1176  if (TYPreferenceManager::exists("ResolutionCircle"))
1177  {
1178  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pResoCylEdit;
1179  ((QDoubleValidator*)lineEdit->validator())->setRange(3.0, 50.0, 2);
1180  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("ResolutionCircle")));
1181  }
1182  if (TYPreferenceManager::exists("DistMinPtCrbNiv"))
1183  {
1184  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pDistMinPtCrbNivEdit;
1185  ((QDoubleValidator*)lineEdit->validator())->setRange(0.001, 1000.0, 3);
1186  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("DistMinPtCrbNiv")));
1187  }
1188  if (TYPreferenceManager::exists("DelaunayTolerance"))
1189  {
1190  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pDelaunayToleranceEdit;
1191  ((QDoubleValidator*)lineEdit->validator())->setRange(0, 1000.0, 5);
1192  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("DelaunayTolerance")));
1193  }
1194  if (TYPreferenceManager::exists("DefaultDimX"))
1195  {
1196  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pDefaultDimXEdit;
1197  ((QDoubleValidator*)lineEdit->validator())->setRange(1.0, 256000.0, 0);
1198  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("DefaultDimX")));
1199  }
1200  if (TYPreferenceManager::exists("DefaultDimY"))
1201  {
1202  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pDefaultDimYEdit;
1203  ((QDoubleValidator*)lineEdit->validator())->setRange(1.0, 256000.0, 0);
1204  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("DefaultDimY")));
1205  }
1206  if (TYPreferenceManager::exists("DefaultHMur"))
1207  {
1208  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pDefaultHMurEdit;
1209  ((QDoubleValidator*)lineEdit->validator())->setRange(0.1, 256000.0, 2);
1210  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("DefaultHMur")));
1211  }
1212  if (TYPreferenceManager::exists("DefaultWidthEcran"))
1213  {
1214  lineEdit = ((GeometrieTab*)tabWidget->widget(0))->_pDefaultWEcranEdit;
1215  ((QDoubleValidator*)lineEdit->validator())->setRange(0.1, 256000.0, 2);
1216  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("DefaultWidthEcran")));
1217  }
1218 
1219  // 3D
1220  if (TYPreferenceManager::exists("MouseLeftButtonFunct2D"))
1221  {
1222  ((pref3DTab*)tabWidget->widget(1))
1223  ->_pLeftButton2DComboBox->setCurrentIndex(TYPreferenceManager::getInt("MouseLeftButtonFunct2D"));
1224  }
1225  if (TYPreferenceManager::exists("MouseRightButtonFunct2D"))
1226  {
1227  ((pref3DTab*)tabWidget->widget(1))
1228  ->_pRightButton2DComboBox->setCurrentIndex(
1229  TYPreferenceManager::getInt("MouseRightButtonFunct2D"));
1230  }
1231  if (TYPreferenceManager::exists("MouseMiddleButtonFunct2D"))
1232  {
1233  ((pref3DTab*)tabWidget->widget(1))
1234  ->_pMiddleButton2DComboBox->setCurrentIndex(
1235  TYPreferenceManager::getInt("MouseMiddleButtonFunct2D"));
1236  }
1237  if (TYPreferenceManager::exists("MouseLeftButtonFunct3D"))
1238  {
1239  ((pref3DTab*)tabWidget->widget(1))
1240  ->_pLeftButton3DComboBox->setCurrentIndex(TYPreferenceManager::getInt("MouseLeftButtonFunct3D"));
1241  }
1242  if (TYPreferenceManager::exists("MouseRightButtonFunct3D"))
1243  {
1244  ((pref3DTab*)tabWidget->widget(1))
1245  ->_pRightButton3DComboBox->setCurrentIndex(
1246  TYPreferenceManager::getInt("MouseRightButtonFunct3D"));
1247  }
1248  if (TYPreferenceManager::exists("MouseMiddleButtonFunct3D"))
1249  {
1250  ((pref3DTab*)tabWidget->widget(1))
1251  ->_pMiddleButton3DComboBox->setCurrentIndex(
1252  TYPreferenceManager::getInt("MouseMiddleButtonFunct3D"));
1253  }
1254  if (TYPreferenceManager::exists("MouseShiftLeftButtonFunct2D"))
1255  {
1256  ((pref3DTab*)tabWidget->widget(1))
1257  ->_pLeftButton2DShtComboBox->setCurrentIndex(
1258  TYPreferenceManager::getInt("MouseShiftLeftButtonFunct2D"));
1259  }
1260  if (TYPreferenceManager::exists("MouseShiftRightButtonFunct2D"))
1261  {
1262  ((pref3DTab*)tabWidget->widget(1))
1263  ->_pRightButton2DShtComboBox->setCurrentIndex(
1264  TYPreferenceManager::getInt("MouseShiftRightButtonFunct2D"));
1265  }
1266  if (TYPreferenceManager::exists("MouseShiftLeftButtonFunct3D"))
1267  {
1268  ((pref3DTab*)tabWidget->widget(1))
1269  ->_pLeftButton3DShtComboBox->setCurrentIndex(
1270  TYPreferenceManager::getInt("MouseShiftLeftButtonFunct3D"));
1271  }
1272  if (TYPreferenceManager::exists("MouseShiftRightButtonFunct3D"))
1273  {
1274  ((pref3DTab*)tabWidget->widget(1))
1275  ->_pRightButton3DShtComboBox->setCurrentIndex(
1276  TYPreferenceManager::getInt("MouseShiftRightButtonFunct3D"));
1277  }
1278  if (TYPreferenceManager::exists("ZoomStep"))
1279  {
1280  lineEdit = ((pref3DTab*)tabWidget->widget(1))->_pZoomStepEdit;
1281  ((QDoubleValidator*)lineEdit->validator())->setBottom(0.001);
1282  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("ZoomStep")));
1283  }
1284  if (TYPreferenceManager::exists("PrecisPick"))
1285  {
1286  lineEdit = ((pref3DTab*)tabWidget->widget(1))->_pPrecisPickEdit;
1287  ((QDoubleValidator*)lineEdit->validator())->setBottom(0.001);
1288  lineEdit->setText(QString().setNum(TYPreferenceManager::getFloat("PrecisPick")));
1289  }
1290  if (TYPreferenceManager::exists("Luminosite"))
1291  {
1292  ((pref3DTab*)tabWidget->widget(1))
1293  ->_pLightSlider->setValue(ROUND(TYPreferenceManager::getFloat("Luminosite") * 100.0f));
1294  }
1295  if (TYPreferenceManager::exists("ViewOnlyHighlight"))
1296  {
1297  ((pref3DTab*)tabWidget->widget(1))
1298  ->_pViewOnlyHighlightCheckBox->setChecked(TYPreferenceManager::getBool("ViewOnlyHighlight"));
1299  }
1300  if (TYPreferenceManager::exists("CenterOnLocate"))
1301  {
1302  ((pref3DTab*)tabWidget->widget(1))
1303  ->_pCenterOnLocateCheckBox->setChecked(TYPreferenceManager::getBool("CenterOnLocate"));
1304  }
1305  if (TYPreferenceManager::exists("WireframeOnMovingCamera"))
1306  {
1307  ((pref3DTab*)tabWidget->widget(1))
1308  ->_pWireframeOnMovingCameraCheckBox->setChecked(
1309  TYPreferenceManager::getBool("WireframeOnMovingCamera"));
1310  }
1311  if (TYPreferenceManager::exists("CameraTranslateStep"))
1312  {
1313  ((pref3DTab*)tabWidget->widget(1))
1314  ->_pCameraStepTranslateEdit->setText(
1315  QString().setNum(TYPreferenceManager::getFloat("CameraTranslateStep")));
1316  }
1317  if (TYPreferenceManager::exists("CameraRotateStep"))
1318  {
1319  ((pref3DTab*)tabWidget->widget(1))
1320  ->_pCameraStepRotateEdit->setText(
1321  QString().setNum(TYPreferenceManager::getFloat("CameraRotateStep")));
1322  }
1323  if (TYPreferenceManager::exists("CameraZoomStep"))
1324  {
1325  ((pref3DTab*)tabWidget->widget(1))
1326  ->_pCameraStepZoomEdit->setText(
1327  QString().setNum(TYPreferenceManager::getFloat("CameraZoomStep")));
1328  }
1329 
1330  // Colors
1331  float r = NAN, g = NAN, b = NAN;
1332  if (TYPreferenceManager::exists("BackgroundColorR"))
1333  {
1334  TYPreferenceManager::getColor("BackgroundColor", r, g, b);
1335  ((ColorsTab*)tabWidget->widget(2))
1336  ->_pBackgroundColorToolButton->setColor(
1337  QColor(int(r), int(g), int(b))); // TYPreferenceManager::getInt("BackgroundColor_r"),
1338  // TYPreferenceManager::getInt("BackgroundColor_g"),
1339  // TYPreferenceManager::getInt("BackgroundColor_b")));
1340  }
1341  if (TYPreferenceManager::exists("AltiGraphicColorMinR"))
1342  {
1343  TYPreferenceManager::getColor("AltiGraphicColorMin", r, g, b);
1344  QColor color;
1345  color.setHsv(int(r), int(g), int(b));
1346  ((ColorsTab*)tabWidget->widget(2))->_pAltiColorMinToolButton->setColor(color);
1347  }
1348  if (TYPreferenceManager::exists("AltiGraphicColorMaxR"))
1349  {
1350  TYPreferenceManager::getColor("AltiGraphicColorMax", r, g, b);
1351  QColor color;
1352  color.setHsv(int(r), int(g), int(b));
1353  ((ColorsTab*)tabWidget->widget(2))->_pAltiColorMaxToolButton->setColor(color);
1354  }
1355  if (TYPreferenceManager::exists("TYReseauTransportGraphicColorR"))
1356  {
1357  TYPreferenceManager::getColor("TYReseauTransportGraphicColor", r, g, b);
1358  ((ColorsTab*)tabWidget->widget(2))
1359  ->_pResTranspColorToolButton->setColor(QColor(int(r), int(g), int(b)));
1360  }
1361 #if WITH_NMPB
1362  if (TYPreferenceManager::exists("TYRouteGraphicColorR"))
1363  {
1364  TYPreferenceManager::getColor("TYRouteGraphicColor", r, g, b);
1365  ((ColorsTab*)tabWidget->widget(2))->_pRouteColorToolButton->setColor(QColor(int(r), int(g), int(b)));
1366  }
1367 #endif
1368  if (TYPreferenceManager::exists("TYMurGraphicColorR"))
1369  {
1370  TYPreferenceManager::getColor("TYMurGraphicColor", r, g, b);
1371  ((ColorsTab*)tabWidget->widget(2))->_pMurColorToolButton->setColor(QColor(int(r), int(g), int(b)));
1372  }
1373  if (TYPreferenceManager::exists("TYEcranGraphicColorR"))
1374  {
1375  TYPreferenceManager::getColor("TYEcranGraphicColor", r, g, b);
1376  ((ColorsTab*)tabWidget->widget(2))->_pEcranColorToolButton->setColor(QColor(int(r), int(g), int(b)));
1377  }
1378  if (TYPreferenceManager::exists("TYDalleGraphicColorR"))
1379  {
1380  TYPreferenceManager::getColor("TYDalleGraphicColor", r, g, b);
1381  ((ColorsTab*)tabWidget->widget(2))->_pDalleColorToolButton->setColor(QColor(int(r), int(g), int(b)));
1382  }
1383  if (TYPreferenceManager::exists("SubRectColorR"))
1384  {
1385  TYPreferenceManager::getColor("SubRectColor", r, g, b);
1386  ((ColorsTab*)tabWidget->widget(2))
1387  ->_pSubRectColorToolButton->setColor(QColor(int(r), int(g), int(b)));
1388  }
1389  if (TYPreferenceManager::exists("TYAcousticCylinderGraphicColorR"))
1390  {
1391  TYPreferenceManager::getColor("TYAcousticCylinderGraphicColor", r, g, b);
1392  ((ColorsTab*)tabWidget->widget(2))
1393  ->_pCylindreColorToolButton->setColor(QColor(int(r), int(g), int(b)));
1394  }
1395  if (TYPreferenceManager::exists("TYAcousticBoxGraphicColorR"))
1396  {
1397  TYPreferenceManager::getColor("TYAcousticBoxGraphicColor", r, g, b);
1398  ((ColorsTab*)tabWidget->widget(2))->_pBoxColorToolButton->setColor(QColor(int(r), int(g), int(b)));
1399  }
1400  if (TYPreferenceManager::exists("TYVegetationGraphicColorR"))
1401  {
1402  TYPreferenceManager::getColor("TYVegetationGraphicColor", r, g, b);
1403  ((ColorsTab*)tabWidget->widget(2))->_pVegColorToolButton->setColor(QColor(int(r), int(g), int(b)));
1404  }
1405  if (TYPreferenceManager::exists("TYCourbeNiveauGraphicColorR"))
1406  {
1407  TYPreferenceManager::getColor("TYCourbeNiveauGraphicColor", r, g, b);
1408  ((ColorsTab*)tabWidget->widget(2))->_pCrbNivColorToolButton->setColor(QColor(int(r), int(g), int(b)));
1409  }
1410  if (TYPreferenceManager::exists("TYCoursEauGraphicColorR"))
1411  {
1412  TYPreferenceManager::getColor("TYCoursEauGraphicColor", r, g, b);
1413  ((ColorsTab*)tabWidget->widget(2))->_pCrsEauColorToolButton->setColor(QColor(int(r), int(g), int(b)));
1414  }
1415  if (TYPreferenceManager::exists("TYPlanEauGraphicColorR"))
1416  {
1417  TYPreferenceManager::getColor("TYPlanEauGraphicColor", r, g, b);
1418  ((ColorsTab*)tabWidget->widget(2))
1419  ->_pPlanEauColorToolButton->setColor(QColor(int(r), int(g), int(b)));
1420  }
1421  if (TYPreferenceManager::exists("TYTerrainGraphicColorR"))
1422  {
1423  TYPreferenceManager::getColor("TYTerrainGraphicColor", r, g, b);
1424  ((ColorsTab*)tabWidget->widget(2))
1425  ->_pTerrainColorToolButton->setColor(QColor(int(r), int(g), int(b)));
1426  }
1427  if (TYPreferenceManager::exists("FontColorR"))
1428  {
1429  TYPreferenceManager::getColor("FontColor", r, g, b);
1430  ((ColorsTab*)tabWidget->widget(2))->_pPoliceColorToolButton->setColor(QColor(int(r), int(g), int(b)));
1431  }
1432  if (TYPreferenceManager::exists("GridColorR"))
1433  {
1434  TYPreferenceManager::getColor("GridColor", r, g, b);
1435  ((ColorsTab*)tabWidget->widget(2))->_pGridColorToolButton->setColor(QColor(int(r), int(g), int(b)));
1436  }
1437  // Couleur des points de controle
1438  if (TYPreferenceManager::exists("PointControlGraphicColorR"))
1439  {
1440  TYPreferenceManager::getColor("PointControlGraphicColor", r, g, b);
1441  ((ColorsTab*)tabWidget->widget(2))
1442  ->_pPointControlColorToolButton->setColor(QColor(int(r), int(g), int(b)));
1443  }
1444  // Couleur des Sources
1445  if (TYPreferenceManager::exists("SrcPonctGraphicColorR"))
1446  {
1447  TYPreferenceManager::getColor("SrcPonctGraphicColor", r, g, b);
1448  ((ColorsTab*)tabWidget->widget(2))
1449  ->_pSourcePonctColorToolButton->setColor(QColor(int(r), int(g), int(b)));
1450  }
1451 
1452  if (TYPreferenceManager::exists("WinOpacity"))
1453  {
1454  ((ColorsTab*)tabWidget->widget(2))
1455  ->_pWinOpacitySlider->setValue(ROUND(TYPreferenceManager::getFloat("WinOpacity") * 100.0f));
1456  }
1457  if (TYPreferenceManager::exists("AltOpacity"))
1458  {
1459  ((ColorsTab*)tabWidget->widget(2))
1460  ->_pAltOpacitySlider->setValue(ROUND(TYPreferenceManager::getFloat("AltOpacity") * 100.0f));
1461  }
1462  if (TYPreferenceManager::exists("MaillageOpacity"))
1463  {
1464  ((ColorsTab*)tabWidget->widget(2))
1465  ->_pMailOpacitySlider->setValue(ROUND(TYPreferenceManager::getFloat("MaillageOpacity") * 100.0f));
1466  }
1467  if (TYPreferenceManager::exists("Antialiasing"))
1468  {
1469  ((ColorsTab*)tabWidget->widget(2))
1470  ->_pMailAntiAliasingCheckBox->setChecked(TYPreferenceManager::getBool("Antialiasing"));
1471  }
1472 
1473  // Acoustique
1474  if (TYPreferenceManager::exists("ResisSolDefault"))
1475  {
1476  ((AcoustiqueTab*)tabWidget->widget(3))
1477  ->_pLineEditResistivite->setText(
1478  QString().setNum(TYPreferenceManager::getDouble("ResisSolDefault")));
1479  }
1480  if (TYPreferenceManager::exists("FacteurSolDefault"))
1481  {
1482  lineEdit = ((AcoustiqueTab*)tabWidget->widget(3))->_pLineEditFacteurSol;
1483  ((QDoubleValidator*)lineEdit->validator())->setRange(0, 1, 2);
1484  lineEdit->setText(QString().setNum(TYPreferenceManager::getDouble("FacteurSolDefault")));
1485  }
1486  if (TYPreferenceManager::exists("EpaisSolDefault"))
1487  {
1488  lineEdit = ((AcoustiqueTab*)tabWidget->widget(3))->_pLineEditEpaisseur;
1489  ((QDoubleValidator*)lineEdit->validator())->setBottom(0.001);
1490  lineEdit->setText(QString().setNum(TYPreferenceManager::getDouble("EpaisSolDefault")));
1491  }
1492  if (TYPreferenceManager::exists("EcartTypeDefault"))
1493  {
1494  ((AcoustiqueTab*)tabWidget->widget(3))
1495  ->_pLineEditEcartType->setText(
1496  QString().setNum(TYPreferenceManager::getDouble("EcartTypeDefault")));
1497  }
1498  if (TYPreferenceManager::exists("LongueurDefault"))
1499  {
1500  ((AcoustiqueTab*)tabWidget->widget(3))
1501  ->_pLineEditLongueur->setText(
1502  QString().setNum(TYPreferenceManager::getDouble("LongueurDefault")));
1503  }
1504  if (TYPreferenceManager::exists("MasseVolMatDefault"))
1505  {
1506  ((AcoustiqueTab*)tabWidget->widget(3))
1507  ->_pLineEditMasseVol->setText(
1508  QString().setNum(TYPreferenceManager::getDouble("MasseVolMatDefault")));
1509  }
1510  if (TYPreferenceManager::exists("SpectreTransmDefault0"))
1511  {
1512  TYSpectre* pTmpSpectre = TYPreferenceManager::getSpectre("SpectreTransmDefault");
1513 
1514  if (pTmpSpectre)
1515  {
1516  if (((AcoustiqueTab*)tabWidget->widget(3))->_pSpectreAttMatConst)
1517  {
1518  delete ((AcoustiqueTab*)tabWidget->widget(3))->_pSpectreAttMatConst;
1519  }
1520  ((AcoustiqueTab*)tabWidget->widget(3))->_pSpectreAttMatConst = pTmpSpectre;
1521  }
1522  }
1523  if (TYPreferenceManager::exists("SpectreAbsoDefault0"))
1524  {
1525  TYSpectre* pTmpSpectre = TYPreferenceManager::getSpectre("SpectreAbsoDefault");
1526 
1527  if (pTmpSpectre)
1528  {
1529  if (((AcoustiqueTab*)tabWidget->widget(3))->_pSpectreAbsoMatConst)
1530  {
1531  delete ((AcoustiqueTab*)tabWidget->widget(3))->_pSpectreAbsoMatConst;
1532  }
1533  ((AcoustiqueTab*)tabWidget->widget(3))->_pSpectreAbsoMatConst = pTmpSpectre;
1534  }
1535  }
1536 
1537  // Maillage par defaut
1538  QString pref = "MaillageDefault";
1539  if (TYPreferenceManager::exists(pref + "Hauteur"))
1540  {
1541  ((AcoustiqueTab*)tabWidget->widget(3))
1542  ->_pMaillage->setHauteur(TYPreferenceManager::getFloat(pref + "Hauteur"));
1543  ((AcoustiqueTab*)tabWidget->widget(3))
1544  ->_pMaillage->setDataType(TYPreferenceManager::getInt(pref + "DataType"));
1545  ((AcoustiqueTab*)tabWidget->widget(3))
1546  ->_pMaillage->setDataFreq(TYPreferenceManager::getFloat(pref + "DataFreq"));
1547 
1548  pref = "PaletteDefault";
1549  if (TYPreferenceManager::exists(pref + "Min"))
1550  {
1551  OLookupTable legacyTable;
1552  OColor color;
1553 
1554  const size_t nb_colors = TYPreferenceManager::getFloat(pref + "NbColors");
1555  const float valueMin = TYPreferenceManager::getFloat(pref + "Min");
1556  const float valueMax = TYPreferenceManager::getFloat(pref + "Max");
1557 
1558  TYPalette* pPalette = ((AcoustiqueTab*)tabWidget->widget(3))->_pMaillage->getPalette();
1559  legacyTable.resize(nb_colors);
1560  for (size_t i = 0; i < nb_colors; ++i)
1561  {
1562  TYPreferenceManager::getColor(pref + "Color" + QString(uintToStr(i).c_str()), color.r,
1563  color.g, color.b);
1564  legacyTable[i] = OColor(color.r, color.g, color.b);
1565  }
1566  pPalette->resetcolorMapFromColors(valueMin, valueMax, legacyTable);
1567  }
1568  }
1569  pref = "TYAcousticSeuilContrib";
1570  if (TYPreferenceManager::exists(pref + "Bas"))
1571  {
1572  ((AcoustiqueTab*)tabWidget->widget(3))
1573  ->_pContributionLineEditBas->setText(
1574  QString().setNum(TYPreferenceManager::getDouble(pref + "Bas")));
1575  ((AcoustiqueTab*)tabWidget->widget(3))
1576  ->_pContributionLineEditMoy->setText(
1577  QString().setNum(TYPreferenceManager::getDouble(pref + "Moy")));
1578  ((AcoustiqueTab*)tabWidget->widget(3))
1579  ->_pContributionLineEditHaut->setText(
1580  QString().setNum(TYPreferenceManager::getDouble(pref + "Haut")));
1581  }
1582  // On restaure le directory courant precedent
1583  TYPreferenceManager::setCurrentDirectory(oldDir);
1584 }
1585 
1587 {
1588  savePreferences();
1589 }
1590 
1592 {
1593  // Directory specifique aux preferences traitees ici
1594  QString oldDir = TYPreferenceManager::getCurrentDirectory();
1595  TYPreferenceManager::setCurrentDirectory(TYDIRPREFERENCEMANAGER);
1596 
1597  // General
1598  QString aQString;
1599  if (((GeneralTab*)tabWidget->widget(4))->_pHistoSizeEdit->hasAcceptableInput())
1600  {
1601  TYPreferenceManager::setInt("HistoSize",
1602  ((GeneralTab*)tabWidget->widget(4))->_pHistoSizeEdit->text().toInt());
1603  }
1604 
1606  ((GeneralTab*)tabWidget->widget(4))->_pHistoSizeEdit->text().toInt());
1607 
1608  // repertoire de la bibliotheque
1609  QDir libraryPath(((GeneralTab*)tabWidget->widget(4))->_pLibraryPathEdit->text());
1610  if (libraryPath.exists())
1611  {
1612  TYPreferenceManager::setString("BiblioPath",
1613  ((GeneralTab*)tabWidget->widget(4))->_pLibraryPathEdit->text());
1614  }
1615 
1616  // repertoire de travail
1617  QDir workDirPath(((GeneralTab*)tabWidget->widget(4))->_pWorkDirPathEdit->text());
1618  if (workDirPath.exists())
1619  {
1620  TYPreferenceManager::setString("WorkDirPath",
1621  ((GeneralTab*)tabWidget->widget(4))->_pWorkDirPathEdit->text());
1622  }
1623 
1624  // Geometrie
1625  if (((GeometrieTab*)tabWidget->widget(0))->_pGridDimXSiteEdit->hasAcceptableInput())
1626  {
1627  TYPreferenceManager::setFloat(
1628  "GridDimXSite", ((GeometrieTab*)tabWidget->widget(0))->_pGridDimXSiteEdit->text().toFloat());
1629  }
1630  if (((GeometrieTab*)tabWidget->widget(0))->_pGridDimYSiteEdit->hasAcceptableInput())
1631  {
1632  TYPreferenceManager::setFloat(
1633  "GridDimYSite", ((GeometrieTab*)tabWidget->widget(0))->_pGridDimYSiteEdit->text().toFloat());
1634  }
1635  if (((GeometrieTab*)tabWidget->widget(0))->_pGridStepSiteEdit->hasAcceptableInput())
1636  {
1637  TYPreferenceManager::setFloat(
1638  "GridStepSite", ((GeometrieTab*)tabWidget->widget(0))->_pGridStepSiteEdit->text().toFloat());
1639  }
1640  if (((GeometrieTab*)tabWidget->widget(0))->_pGridMagnStepSiteEdit->hasAcceptableInput())
1641  {
1642  TYPreferenceManager::setFloat(
1643  "GridMagnStepSite",
1644  ((GeometrieTab*)tabWidget->widget(0))->_pGridMagnStepSiteEdit->text().toFloat());
1645  }
1646 
1647  if (((GeometrieTab*)tabWidget->widget(0))->_pGridDimXBatEdit->hasAcceptableInput())
1648  {
1649  TYPreferenceManager::setFloat(
1650  "GridDimXBatiment", ((GeometrieTab*)tabWidget->widget(0))->_pGridDimXBatEdit->text().toFloat());
1651  }
1652  if (((GeometrieTab*)tabWidget->widget(0))->_pGridDimYBatEdit->hasAcceptableInput())
1653  {
1654  TYPreferenceManager::setFloat(
1655  "GridDimYBatiment", ((GeometrieTab*)tabWidget->widget(0))->_pGridDimYBatEdit->text().toFloat());
1656  }
1657  if (((GeometrieTab*)tabWidget->widget(0))->_pGridMagnStepBatEdit->hasAcceptableInput())
1658  {
1659  TYPreferenceManager::setFloat(
1660  "GridMagnStepBatiment",
1661  ((GeometrieTab*)tabWidget->widget(0))->_pGridMagnStepBatEdit->text().toFloat());
1662  }
1663  if (((GeometrieTab*)tabWidget->widget(0))->_pGridStepBatEdit->hasAcceptableInput())
1664  {
1665  TYPreferenceManager::setFloat(
1666  "GridStepBatiment", ((GeometrieTab*)tabWidget->widget(0))->_pGridStepBatEdit->text().toFloat());
1667  }
1668 
1669  if (((GeometrieTab*)tabWidget->widget(0))->_pGridDimXMacEdit->hasAcceptableInput())
1670  {
1671  TYPreferenceManager::setFloat(
1672  "GridDimXMachine", ((GeometrieTab*)tabWidget->widget(0))->_pGridDimXMacEdit->text().toFloat());
1673  }
1674  if (((GeometrieTab*)tabWidget->widget(0))->_pGridDimYMacEdit->hasAcceptableInput())
1675  {
1676  TYPreferenceManager::setFloat(
1677  "GridDimYMachine", ((GeometrieTab*)tabWidget->widget(0))->_pGridDimYMacEdit->text().toFloat());
1678  }
1679  if (((GeometrieTab*)tabWidget->widget(0))->_pGridStepMacEdit->hasAcceptableInput())
1680  {
1681  TYPreferenceManager::setFloat(
1682  "GridStepMachine", ((GeometrieTab*)tabWidget->widget(0))->_pGridStepMacEdit->text().toFloat());
1683  }
1684  if (((GeometrieTab*)tabWidget->widget(0))->_pGridMagnStepMacEdit->hasAcceptableInput())
1685  {
1686  TYPreferenceManager::setFloat(
1687  "GridMagnStepMachine",
1688  ((GeometrieTab*)tabWidget->widget(0))->_pGridMagnStepMacEdit->text().toFloat());
1689  }
1690 
1691  if (((GeometrieTab*)tabWidget->widget(0))->_pGridDimXMailEdit->hasAcceptableInput())
1692  {
1693  TYPreferenceManager::setFloat(
1694  "GridDimXMaillage", ((GeometrieTab*)tabWidget->widget(0))->_pGridDimXMailEdit->text().toFloat());
1695  }
1696  if (((GeometrieTab*)tabWidget->widget(0))->_pGridDimYMailEdit->hasAcceptableInput())
1697  {
1698  TYPreferenceManager::setFloat(
1699  "GridDimYMaillage", ((GeometrieTab*)tabWidget->widget(0))->_pGridDimYMailEdit->text().toFloat());
1700  }
1701  if (((GeometrieTab*)tabWidget->widget(0))->_pGridMagnStepMailEdit->hasAcceptableInput())
1702  {
1703  TYPreferenceManager::setFloat(
1704  "GridMagnStepMaillage",
1705  ((GeometrieTab*)tabWidget->widget(0))->_pGridMagnStepMailEdit->text().toFloat());
1706  }
1707  if (((GeometrieTab*)tabWidget->widget(0))->_pGridStepMailEdit->hasAcceptableInput())
1708  {
1709  TYPreferenceManager::setFloat(
1710  "GridStepMaillage", ((GeometrieTab*)tabWidget->widget(0))->_pGridStepMailEdit->text().toFloat());
1711  }
1712 
1713  if (((GeometrieTab*)tabWidget->widget(0))->_pGridDimXFaceEdit->hasAcceptableInput())
1714  {
1715  TYPreferenceManager::setFloat(
1716  "GridDimXFace", ((GeometrieTab*)tabWidget->widget(0))->_pGridDimXFaceEdit->text().toFloat());
1717  }
1718  if (((GeometrieTab*)tabWidget->widget(0))->_pGridDimYFaceEdit->hasAcceptableInput())
1719  {
1720  TYPreferenceManager::setFloat(
1721  "GridDimYFace", ((GeometrieTab*)tabWidget->widget(0))->_pGridDimYFaceEdit->text().toFloat());
1722  }
1723  if (((GeometrieTab*)tabWidget->widget(0))->_pGridStepFaceEdit->hasAcceptableInput())
1724  {
1725  TYPreferenceManager::setFloat(
1726  "GridStepFace", ((GeometrieTab*)tabWidget->widget(0))->_pGridStepFaceEdit->text().toFloat());
1727  }
1728  if (((GeometrieTab*)tabWidget->widget(0))->_pGridMagnStepFaceEdit->hasAcceptableInput())
1729  {
1730  TYPreferenceManager::setFloat(
1731  "GridMagnStepFace",
1732  ((GeometrieTab*)tabWidget->widget(0))->_pGridMagnStepFaceEdit->text().toFloat());
1733  }
1734 
1735  if (((GeometrieTab*)tabWidget->widget(0))->_p15RadioButton->isChecked())
1736  {
1737  TYPreferenceManager::setFloat(
1738  "Angle", ((GeometrieTab*)tabWidget->widget(0))->_p15RadioButton->text().toFloat());
1739  }
1740  else if (((GeometrieTab*)tabWidget->widget(0))->_p30RadioButton->isChecked())
1741  {
1742  TYPreferenceManager::setFloat(
1743  "Angle", ((GeometrieTab*)tabWidget->widget(0))->_p30RadioButton->text().toFloat());
1744  }
1745  else if (((GeometrieTab*)tabWidget->widget(0))->_p45RadioButton->isChecked())
1746  {
1747  TYPreferenceManager::setFloat(
1748  "Angle", ((GeometrieTab*)tabWidget->widget(0))->_p45RadioButton->text().toFloat());
1749  }
1750  else if (((GeometrieTab*)tabWidget->widget(0))->_p90RadioButton->isChecked())
1751  {
1752  TYPreferenceManager::setFloat(
1753  "Angle", ((GeometrieTab*)tabWidget->widget(0))->_p90RadioButton->text().toFloat());
1754  }
1755 
1756  // Taille des sources ponctuelles utilisateur
1757  if (((GeometrieTab*)tabWidget->widget(0))->_pSourceSizeEdit->hasAcceptableInput())
1758  {
1759  TYPreferenceManager::setFloat(
1760  "UserSrcPonctGraphicSize",
1761  ((GeometrieTab*)tabWidget->widget(0))->_pSourceSizeEdit->text().toFloat());
1762  }
1763  // Taille des points de controle
1764  if (((GeometrieTab*)tabWidget->widget(0))->_pPointControlSizeEdit->hasAcceptableInput())
1765  {
1766  TYPreferenceManager::setFloat(
1767  "PointControlGraphicSize",
1768  ((GeometrieTab*)tabWidget->widget(0))->_pPointControlSizeEdit->text().toFloat());
1769  }
1770 
1771  if (((GeometrieTab*)tabWidget->widget(0))->_pResoCylEdit->hasAcceptableInput())
1772  {
1773  TYPreferenceManager::setFloat("ResolutionCircle",
1774  ((GeometrieTab*)tabWidget->widget(0))->_pResoCylEdit->text().toFloat());
1775  }
1776  if (((GeometrieTab*)tabWidget->widget(0))->_pDistMinPtCrbNivEdit->hasAcceptableInput())
1777  {
1778  TYPreferenceManager::setFloat(
1779  "DistMinPtCrbNiv",
1780  ((GeometrieTab*)tabWidget->widget(0))->_pDistMinPtCrbNivEdit->text().toFloat());
1781  }
1782  if (((GeometrieTab*)tabWidget->widget(0))->_pDelaunayToleranceEdit->hasAcceptableInput())
1783  {
1784  TYPreferenceManager::setFloat(
1785  "DelaunayTolerance",
1786  ((GeometrieTab*)tabWidget->widget(0))->_pDelaunayToleranceEdit->text().toFloat());
1787  }
1788  if (((GeometrieTab*)tabWidget->widget(0))->_pDefaultDimXEdit->hasAcceptableInput())
1789  {
1790  TYPreferenceManager::setFloat(
1791  "DefaultDimX", ((GeometrieTab*)tabWidget->widget(0))->_pDefaultDimXEdit->text().toFloat());
1792  }
1793  if (((GeometrieTab*)tabWidget->widget(0))->_pDefaultDimYEdit->hasAcceptableInput())
1794  {
1795  TYPreferenceManager::setFloat(
1796  "DefaultDimY", ((GeometrieTab*)tabWidget->widget(0))->_pDefaultDimYEdit->text().toFloat());
1797  }
1798  if (((GeometrieTab*)tabWidget->widget(0))->_pDefaultHMurEdit->hasAcceptableInput())
1799  {
1800  TYPreferenceManager::setFloat(
1801  "DefaultHMur", ((GeometrieTab*)tabWidget->widget(0))->_pDefaultHMurEdit->text().toFloat());
1802  }
1803  if (((GeometrieTab*)tabWidget->widget(0))->_pDefaultWEcranEdit->hasAcceptableInput())
1804  {
1805  TYPreferenceManager::setFloat(
1806  "DefaultWidthEcran",
1807  ((GeometrieTab*)tabWidget->widget(0))->_pDefaultWEcranEdit->text().toFloat());
1808  }
1809 
1810  // 3D
1811  TYPreferenceManager::setFloat("Luminosite",
1812  float(((pref3DTab*)tabWidget->widget(1))->_pLightSlider->value()) / 100);
1813  if (((pref3DTab*)tabWidget->widget(1))->_pZoomStepEdit->hasAcceptableInput())
1814  {
1815  TYPreferenceManager::setFloat("ZoomStep",
1816  ((pref3DTab*)tabWidget->widget(1))->_pZoomStepEdit->text().toFloat());
1817  }
1818  if (((pref3DTab*)tabWidget->widget(1))->_pPrecisPickEdit->hasAcceptableInput())
1819  {
1820  TYPreferenceManager::setFloat("PrecisPick",
1821  ((pref3DTab*)tabWidget->widget(1))->_pPrecisPickEdit->text().toFloat());
1822  }
1823  TYPreferenceManager::setInt("MouseLeftButtonFunct2D",
1824  ((pref3DTab*)tabWidget->widget(1))->_pLeftButton2DComboBox->currentIndex());
1825  TYPreferenceManager::setInt("MouseRightButtonFunct2D",
1826  ((pref3DTab*)tabWidget->widget(1))->_pRightButton2DComboBox->currentIndex());
1827  TYPreferenceManager::setInt("MouseMiddleButtonFunct2D",
1828  ((pref3DTab*)tabWidget->widget(1))->_pMiddleButton2DComboBox->currentIndex());
1829  TYPreferenceManager::setInt("MouseLeftButtonFunct3D",
1830  ((pref3DTab*)tabWidget->widget(1))->_pLeftButton3DComboBox->currentIndex());
1831  TYPreferenceManager::setInt("MouseRightButtonFunct3D",
1832  ((pref3DTab*)tabWidget->widget(1))->_pRightButton3DComboBox->currentIndex());
1833  TYPreferenceManager::setInt("MouseMiddleButtonFunct3D",
1834  ((pref3DTab*)tabWidget->widget(1))->_pMiddleButton3DComboBox->currentIndex());
1835  TYPreferenceManager::setInt(
1836  "MouseShiftLeftButtonFunct2D",
1837  ((pref3DTab*)tabWidget->widget(1))->_pLeftButton2DShtComboBox->currentIndex());
1838  TYPreferenceManager::setInt(
1839  "MouseShiftRightButtonFunct2D",
1840  ((pref3DTab*)tabWidget->widget(1))->_pRightButton2DShtComboBox->currentIndex());
1841  TYPreferenceManager::setInt(
1842  "MouseShiftLeftButtonFunct3D",
1843  ((pref3DTab*)tabWidget->widget(1))->_pLeftButton3DShtComboBox->currentIndex());
1844  TYPreferenceManager::setInt(
1845  "MouseShiftRightButtonFunct3D",
1846  ((pref3DTab*)tabWidget->widget(1))->_pRightButton3DShtComboBox->currentIndex());
1847  TYPreferenceManager::setBool(
1848  "ViewOnlyHighlight", ((pref3DTab*)tabWidget->widget(1))->_pViewOnlyHighlightCheckBox->isChecked());
1849  TYPreferenceManager::setBool("CenterOnLocate",
1850  ((pref3DTab*)tabWidget->widget(1))->_pCenterOnLocateCheckBox->isChecked());
1851  TYPreferenceManager::setBool(
1852  "WireframeOnMovingCamera",
1853  ((pref3DTab*)tabWidget->widget(1))->_pWireframeOnMovingCameraCheckBox->isChecked());
1854  TYPreferenceManager::setFloat(
1855  "CameraTranslateStep",
1856  ((pref3DTab*)tabWidget->widget(1))->_pCameraStepTranslateEdit->text().toFloat());
1857  TYPreferenceManager::setFloat(
1858  "CameraRotateStep", ((pref3DTab*)tabWidget->widget(1))->_pCameraStepRotateEdit->text().toFloat());
1859  TYPreferenceManager::setFloat("CameraZoomStep",
1860  ((pref3DTab*)tabWidget->widget(1))->_pCameraStepZoomEdit->text().toFloat());
1861 
1862  // Colors
1863  TYPreferenceManager::setColor(
1864  "BackgroundColor", ((ColorsTab*)tabWidget->widget(2))->_pBackgroundColorToolButton->getColor().red(),
1865  ((ColorsTab*)tabWidget->widget(2))->_pBackgroundColorToolButton->getColor().green(),
1866  ((ColorsTab*)tabWidget->widget(2))->_pBackgroundColorToolButton->getColor().blue());
1867  TYPreferenceManager::setColor(
1868  "GridColor", ((ColorsTab*)tabWidget->widget(2))->_pGridColorToolButton->getColor().red(),
1869  ((ColorsTab*)tabWidget->widget(2))->_pGridColorToolButton->getColor().green(),
1870  ((ColorsTab*)tabWidget->widget(2))->_pGridColorToolButton->getColor().blue());
1871  TYPreferenceManager::setColor(
1872  "FontColor", ((ColorsTab*)tabWidget->widget(2))->_pPoliceColorToolButton->getColor().red(),
1873  ((ColorsTab*)tabWidget->widget(2))->_pPoliceColorToolButton->getColor().green(),
1874  ((ColorsTab*)tabWidget->widget(2))->_pPoliceColorToolButton->getColor().blue());
1875  TYPreferenceManager::setColor(
1876  "TYTerrainGraphicColor",
1877  ((ColorsTab*)tabWidget->widget(2))->_pTerrainColorToolButton->getColor().red(),
1878  ((ColorsTab*)tabWidget->widget(2))->_pTerrainColorToolButton->getColor().green(),
1879  ((ColorsTab*)tabWidget->widget(2))->_pTerrainColorToolButton->getColor().blue());
1880  TYPreferenceManager::setColor(
1881  "TYPlanEauGraphicColor",
1882  ((ColorsTab*)tabWidget->widget(2))->_pPlanEauColorToolButton->getColor().red(),
1883  ((ColorsTab*)tabWidget->widget(2))->_pPlanEauColorToolButton->getColor().green(),
1884  ((ColorsTab*)tabWidget->widget(2))->_pPlanEauColorToolButton->getColor().blue());
1885  TYPreferenceManager::setColor(
1886  "TYCoursEauGraphicColor",
1887  ((ColorsTab*)tabWidget->widget(2))->_pCrsEauColorToolButton->getColor().red(),
1888  ((ColorsTab*)tabWidget->widget(2))->_pCrsEauColorToolButton->getColor().green(),
1889  ((ColorsTab*)tabWidget->widget(2))->_pCrsEauColorToolButton->getColor().blue());
1890  TYPreferenceManager::setColor(
1891  "TYCourbeNiveauGraphicColor",
1892  ((ColorsTab*)tabWidget->widget(2))->_pCrbNivColorToolButton->getColor().red(),
1893  ((ColorsTab*)tabWidget->widget(2))->_pCrbNivColorToolButton->getColor().green(),
1894  ((ColorsTab*)tabWidget->widget(2))->_pCrbNivColorToolButton->getColor().blue());
1895  TYPreferenceManager::setColor(
1896  "TYVegetationGraphicColor",
1897  ((ColorsTab*)tabWidget->widget(2))->_pVegColorToolButton->getColor().red(),
1898  ((ColorsTab*)tabWidget->widget(2))->_pVegColorToolButton->getColor().green(),
1899  ((ColorsTab*)tabWidget->widget(2))->_pVegColorToolButton->getColor().blue());
1900  TYPreferenceManager::setColor(
1901  "TYAcousticBoxGraphicColor",
1902  ((ColorsTab*)tabWidget->widget(2))->_pBoxColorToolButton->getColor().red(),
1903  ((ColorsTab*)tabWidget->widget(2))->_pBoxColorToolButton->getColor().green(),
1904  ((ColorsTab*)tabWidget->widget(2))->_pBoxColorToolButton->getColor().blue());
1905  TYPreferenceManager::setColor(
1906  "TYAcousticCylinderGraphicColor",
1907  ((ColorsTab*)tabWidget->widget(2))->_pCylindreColorToolButton->getColor().red(),
1908  ((ColorsTab*)tabWidget->widget(2))->_pCylindreColorToolButton->getColor().green(),
1909  ((ColorsTab*)tabWidget->widget(2))->_pCylindreColorToolButton->getColor().blue());
1910  TYPreferenceManager::setColor(
1911  "TYAcousticSemiCylinderGraphicColor",
1912  ((ColorsTab*)tabWidget->widget(2))->_pCylindreColorToolButton->getColor().red(),
1913  ((ColorsTab*)tabWidget->widget(2))->_pCylindreColorToolButton->getColor().green(),
1914  ((ColorsTab*)tabWidget->widget(2))->_pCylindreColorToolButton->getColor().blue());
1915  TYPreferenceManager::setColor(
1916  "TYAcousticCircleGraphicColor",
1917  ((ColorsTab*)tabWidget->widget(2))->_pCylindreColorToolButton->getColor().red(),
1918  ((ColorsTab*)tabWidget->widget(2))->_pCylindreColorToolButton->getColor().green(),
1919  ((ColorsTab*)tabWidget->widget(2))->_pCylindreColorToolButton->getColor().blue());
1920  TYPreferenceManager::setColor(
1921  "TYAcousticSemiCircleGraphicColor",
1922  ((ColorsTab*)tabWidget->widget(2))->_pCylindreColorToolButton->getColor().red(),
1923  ((ColorsTab*)tabWidget->widget(2))->_pCylindreColorToolButton->getColor().green(),
1924  ((ColorsTab*)tabWidget->widget(2))->_pCylindreColorToolButton->getColor().blue());
1925  TYPreferenceManager::setColor(
1926  "SubRectColor", ((ColorsTab*)tabWidget->widget(2))->_pSubRectColorToolButton->getColor().red(),
1927  ((ColorsTab*)tabWidget->widget(2))->_pSubRectColorToolButton->getColor().green(),
1928  ((ColorsTab*)tabWidget->widget(2))->_pSubRectColorToolButton->getColor().blue());
1929  TYPreferenceManager::setColor(
1930  "TYMurGraphicColor", ((ColorsTab*)tabWidget->widget(2))->_pMurColorToolButton->getColor().red(),
1931  ((ColorsTab*)tabWidget->widget(2))->_pMurColorToolButton->getColor().green(),
1932  ((ColorsTab*)tabWidget->widget(2))->_pMurColorToolButton->getColor().blue());
1933  TYPreferenceManager::setColor(
1934  "TYDalleGraphicColor", ((ColorsTab*)tabWidget->widget(2))->_pDalleColorToolButton->getColor().red(),
1935  ((ColorsTab*)tabWidget->widget(2))->_pDalleColorToolButton->getColor().green(),
1936  ((ColorsTab*)tabWidget->widget(2))->_pDalleColorToolButton->getColor().blue());
1937  TYPreferenceManager::setColor(
1938  "TYEcranGraphicColor", ((ColorsTab*)tabWidget->widget(2))->_pEcranColorToolButton->getColor().red(),
1939  ((ColorsTab*)tabWidget->widget(2))->_pEcranColorToolButton->getColor().green(),
1940  ((ColorsTab*)tabWidget->widget(2))->_pEcranColorToolButton->getColor().blue());
1941 #if WITH_NMPB
1942  TYPreferenceManager::setColor(
1943  "TYRouteGraphicColor", ((ColorsTab*)tabWidget->widget(2))->_pRouteColorToolButton->getColor().red(),
1944  ((ColorsTab*)tabWidget->widget(2))->_pRouteColorToolButton->getColor().green(),
1945  ((ColorsTab*)tabWidget->widget(2))->_pRouteColorToolButton->getColor().blue());
1946 #endif
1947  TYPreferenceManager::setColor(
1948  "TYReseauTransportGraphicColor",
1949  ((ColorsTab*)tabWidget->widget(2))->_pResTranspColorToolButton->getColor().red(),
1950  ((ColorsTab*)tabWidget->widget(2))->_pResTranspColorToolButton->getColor().green(),
1951  ((ColorsTab*)tabWidget->widget(2))->_pResTranspColorToolButton->getColor().blue());
1952  // Couleur des points de controle
1953  TYPreferenceManager::setColor(
1954  "PointControlGraphicColor",
1955  ((ColorsTab*)tabWidget->widget(2))->_pPointControlColorToolButton->getColor().red(),
1956  ((ColorsTab*)tabWidget->widget(2))->_pPointControlColorToolButton->getColor().green(),
1957  ((ColorsTab*)tabWidget->widget(2))->_pPointControlColorToolButton->getColor().blue());
1958  // Couleur des sources ponctuelles
1959  TYPreferenceManager::setColor(
1960  "SrcPonctGraphicColor",
1961  ((ColorsTab*)tabWidget->widget(2))->_pSourcePonctColorToolButton->getColor().red(),
1962  ((ColorsTab*)tabWidget->widget(2))->_pSourcePonctColorToolButton->getColor().green(),
1963  ((ColorsTab*)tabWidget->widget(2))->_pSourcePonctColorToolButton->getColor().blue());
1964 
1965  int hsvColor[3];
1966  ((ColorsTab*)tabWidget->widget(2))
1967  ->_pAltiColorMinToolButton->getColor()
1968  .getHsv(&hsvColor[0], &hsvColor[1], &hsvColor[2]);
1969  TYPreferenceManager::setColor("AltiGraphicColorMin", hsvColor[0], hsvColor[1], hsvColor[2]);
1970  ((ColorsTab*)tabWidget->widget(2))
1971  ->_pAltiColorMaxToolButton->getColor()
1972  .getHsv(&hsvColor[0], &hsvColor[1], &hsvColor[2]);
1973  TYPreferenceManager::setColor("AltiGraphicColorMax", hsvColor[0], hsvColor[1], hsvColor[2]);
1974 
1975  TYPreferenceManager::setFloat(
1976  "WinOpacity", float(((ColorsTab*)tabWidget->widget(2))->_pWinOpacitySlider->value()) / 100.0f);
1977  TYPreferenceManager::setFloat(
1978  "AltOpacity", float(((ColorsTab*)tabWidget->widget(2))->_pAltOpacitySlider->value()) / 100.0f);
1979  TYPreferenceManager::setFloat(
1980  "MaillageOpacity", float(((ColorsTab*)tabWidget->widget(2))->_pMailOpacitySlider->value()) / 100.0f);
1981  TYPreferenceManager::setBool("Antialiasing",
1982  ((ColorsTab*)tabWidget->widget(2))->_pMailAntiAliasingCheckBox->isChecked());
1983 
1984  // Acoustique
1985  TYPreferenceManager::setDouble(
1986  "ResisSolDefault", ((AcoustiqueTab*)tabWidget->widget(3))->_pLineEditResistivite->text().toDouble());
1987  if (((AcoustiqueTab*)tabWidget->widget(3))->_pLineEditFacteurSol->hasAcceptableInput())
1988  {
1989  TYPreferenceManager::setDouble(
1990  "FacteurSolDefault",
1991  ((AcoustiqueTab*)tabWidget->widget(3))->_pLineEditFacteurSol->text().toDouble());
1992  }
1993  if (((AcoustiqueTab*)tabWidget->widget(3))->_pLineEditEpaisseur->hasAcceptableInput())
1994  {
1995  TYPreferenceManager::setDouble(
1996  "EpaisSolDefault",
1997  ((AcoustiqueTab*)tabWidget->widget(3))->_pLineEditEpaisseur->text().toDouble());
1998  }
1999  TYPreferenceManager::setDouble(
2000  "EcartTypeDefault", ((AcoustiqueTab*)tabWidget->widget(3))->_pLineEditEcartType->text().toDouble());
2001  TYPreferenceManager::setDouble(
2002  "LongueurDefault", ((AcoustiqueTab*)tabWidget->widget(3))->_pLineEditLongueur->text().toDouble());
2003  TYPreferenceManager::setDouble(
2004  "MasseVolMatDefault", ((AcoustiqueTab*)tabWidget->widget(3))->_pLineEditMasseVol->text().toDouble());
2005  TYPreferenceManager::setSpectre("SpectreTransmDefault",
2006  ((AcoustiqueTab*)tabWidget->widget(3))->_pSpectreAttMatConst);
2007  TYPreferenceManager::setSpectre("SpectreAbsoDefault",
2008  ((AcoustiqueTab*)tabWidget->widget(3))->_pSpectreAbsoMatConst);
2009 
2010  QString pref = "MaillageDefault";
2011  TYPreferenceManager::setFloat(pref + "Hauteur",
2012  ((AcoustiqueTab*)tabWidget->widget(3))->_pMaillage->getHauteur());
2013  TYPreferenceManager::setInt(pref + "DataType",
2014  ((AcoustiqueTab*)tabWidget->widget(3))->_pMaillage->getDataType());
2015  TYPreferenceManager::setFloat(pref + "DataFreq",
2016  ((AcoustiqueTab*)tabWidget->widget(3))->_pMaillage->getDataFreq());
2017 
2018  pref = "PaletteDefault";
2019  TYPalette* pPalette = ((AcoustiqueTab*)tabWidget->widget(3))->_pMaillage->getPalette();
2020  TYPreferenceManager::setFloat(pref + "Min", pPalette->getValueMin());
2021  TYPreferenceManager::setFloat(pref + "Max", pPalette->getValueMax());
2022  TYPreferenceManager::setUInt(pref + "NbColors", pPalette->getNbColors());
2023 
2025  uint colorIndice = 0;
2026  for (it = pPalette->getColorMap().begin(); it != pPalette->getColorMap().end(); it++)
2027  {
2028  assert(it != pPalette->getColorMap().end() &&
2029  "getNbColors() should be the number of colors in the color map.");
2030  const OColor& color = it->second;
2031  TYPreferenceManager::setColor(pref + "Color" + QString(uintToStr(colorIndice).c_str()), color.r,
2032  color.g, color.b);
2033  colorIndice++;
2034  }
2035 
2036  pref = "TYAcousticSeuilContrib";
2037  TYPreferenceManager::setFloat(
2038  pref + "Bas", ((AcoustiqueTab*)tabWidget->widget(3))->_pContributionLineEditBas->text().toDouble());
2039  TYPreferenceManager::setFloat(
2040  pref + "Moy", ((AcoustiqueTab*)tabWidget->widget(3))->_pContributionLineEditMoy->text().toDouble());
2041  TYPreferenceManager::setFloat(
2042  pref + "Haut", ((AcoustiqueTab*)tabWidget->widget(3))->_pContributionLineEditHaut->text().toDouble());
2043 
2044  // On restaure le directory courant precedent
2045  TYPreferenceManager::setCurrentDirectory(oldDir);
2046 
2047  QList<QMdiSubWindow*> windows = getTYMainWnd()->getWorkspace()->subWindowList();
2048 
2049  for (int i = 0; i < int(windows.count()); ++i)
2050  {
2051  QWidget* internal_window = windows.at(i)->widget();
2052 
2053  TYModelerFrame* pM = dynamic_cast<TYModelerFrame*>(internal_window);
2054  if (pM != nullptr)
2055  {
2057  ((GeneralTab*)tabWidget->widget(4))->_pHistoSizeEdit->text().toInt());
2058  pM->updatePreferences();
2059  pM->getView()->getRenderer()->invalidateScene();
2060  pM->updateView(true, true); // az--
2061  }
2062  }
2063 }
2064 
2065 void TYPreferenceDialog::hideEvent(QHideEvent* pEvent)
2066 {
2067  TYPreferenceManager::saveGeometryToPreferences(metaObject()->className(), this);
2068 }
int ROUND(double a)
Compute the rounded value of a number.
Definition: 3d.h:192
QColor getColor
TYApplication * getTYApp()
Retourne le pointeur sur l'application.
TYMainWindow * getTYMainWnd()
Retourne le pointeur sur la fenetre principale.
pour l'application Tympan (fichier header)
#define TYDIRPREFERENCEMANAGER
Definition: TYElement.h:51
outil IHM pour une entrée utilisateur de type int (fichier header)
Fenetre principale de l'application Tympan (fichier header)
Classe generique pour une fenetre de modeleur (fichier header)
#define TR(id)
Tables pour le dialogue de la gestion des preferences (fichier header)
const char * name
Outil IHM pour la saisie de la resisitivite du sol (fichier header)
outil IHM pour la gestion de la couleur des ToolButton (fichier header)
Table Acoustique dans le dialog de la gestion des preferences.
TYLineEdit * _pContributionLineEditBas
TYLineEdit * _pLineEditEcartType
TYLineEdit * _pLineEditFacteurSol
TYMaillage * _pMaillage
Maillage par defaut.
TYLineEdit * _pLineEditResistivite
TYLineEdit * _pContributionLineEditHaut
TYSpectre * _pSpectreAbsoMatConst
Spectre d'absorption par defaut des materiaux de construction.
TYLineEdit * _pLineEditLongueur
TYLineEdit * _pContributionLineEditMoy
AcoustiqueTab(QWidget *parent=0)
TYLineEdit * _pLineEditEpaisseur
TYLineEdit * _pLineEditMasseVol
TYSpectre * _pSpectreAttMatConst
Spectre d'attenuation par default des materiaux de construction.
Table Colors dans le dialog de la gestion des preferences.
TYToolButton * _pBoxColorToolButton
TYToolButton * _pCrbNivColorToolButton
TYToolButton * _pGridColorToolButton
TYToolButton * _pEcranColorToolButton
QCheckBox * _pMailAntiAliasingCheckBox
TYToolButton * _pCrsEauColorToolButton
TYToolButton * _pTerrainColorToolButton
QSlider * _pAltOpacitySlider
TYToolButton * _pSubRectColorToolButton
TYToolButton * _pMurColorToolButton
TYToolButton * _pBackgroundColorToolButton
ColorsTab(QWidget *parent=0)
QSlider * _pWinOpacitySlider
TYToolButton * _pVegColorToolButton
TYToolButton * _pPlanEauColorToolButton
TYToolButton * _pRouteColorToolButton
TYToolButton * _pSourcePonctColorToolButton
QSlider * _pMailOpacitySlider
TYToolButton * _pResTranspColorToolButton
TYToolButton * _pAltiColorMinToolButton
TYToolButton * _pAltiColorMaxToolButton
TYToolButton * _pDalleColorToolButton
TYToolButton * _pPointControlColorToolButton
TYToolButton * _pPoliceColorToolButton
TYToolButton * _pCylindreColorToolButton
Table generale dans le dialog de la gestion des preferences.
QString selectDirectory(const QString &currentPath)
TYLineEditInt * _pHistoSizeEdit
QLineEdit * _pLibraryPathEdit
QLineEdit * _pWorkDirPathEdit
GeneralTab(QWidget *parent=0)
Table Geometrie dans le dialogue de la gestion des preferences.
TYLineEdit * _pGridStepSiteEdit
QRadioButton * _p45RadioButton
TYLineEdit * _pPointControlSizeEdit
TYLineEdit * _pGridDimXSiteEdit
TYLineEdit * _pGridDimYFaceEdit
QRadioButton * _p30RadioButton
TYLineEdit * _pGridDimXFaceEdit
TYLineEdit * _pGridDimXBatEdit
TYLineEdit * _pGridMagnStepFaceEdit
TYLineEdit * _pResoCylEdit
TYLineEdit * _pDefaultHMurEdit
TYLineEdit * _pGridDimXMacEdit
TYLineEdit * _pSeuilDistNulEdit
TYLineEdit * _pGridMagnStepBatEdit
TYLineEdit * _pDefaultDimYEdit
TYLineEdit * _pGridMagnStepSiteEdit
TYLineEdit * _pGridDimYMacEdit
TYLineEdit * _pDefaultDimXEdit
QButtonGroup * _pAnglesButtonGroup
TYLineEdit * _pSourceSizeEdit
TYLineEdit * _pDelaunayToleranceEdit
QRadioButton * _p90RadioButton
TYLineEdit * _pGridDimXMailEdit
TYLineEdit * _pGridMagnStepMailEdit
TYLineEdit * _pGridStepMacEdit
GeometrieTab(QWidget *parent=0)
TYLineEdit * _pGridDimYSiteEdit
TYLineEdit * _pGridStepMailEdit
TYLineEdit * _pGridStepBatEdit
TYLineEdit * _pDefaultWEcranEdit
TYLineEdit * _pGridDimYBatEdit
TYLineEdit * _pGridStepFaceEdit
TYLineEdit * _pDistMinPtCrbNivEdit
TYLineEdit * _pGridDimYMailEdit
TYLineEdit * _pGridMagnStepMacEdit
QRadioButton * _p15RadioButton
Definition: color.h:31
float b
Definition: color.h:33
float r
Definition: color.h:33
float g
Definition: color.h:33
void setDefaultValue(const double &valeur=TY_SPECTRE_DEFAULT_VALUE)
Definition: spectre.cpp:202
void setHistorySize(int size)
Definit la taille de l'historique.
TYActionManager * getActionManager()
Get du gestionnaire d'actions (historique pour les undos).
Definition: TYApplication.h:90
Classe de definition d'un maillage.
Definition: TYMaillage.h:51
QMdiArea * getWorkspace()
Definition: TYMainWindow.h:63
Generic class for a modeler window.
TYRenderWindowInteractor * getView()
TYActionManager * getActionManager()
virtual void updatePreferences()
virtual void updateView(bool clipping=true, bool axesAndGrid=true)
void invalidateScene(void)
Classe de definition d'une palette.
Definition: TYPalette.h:41
const color_map_type & getColorMap() const
Get de la lookup table.
Definition: TYPalette.h:226
size_t getNbColors() const
Getter for the number of colors.
Definition: TYPalette.h:122
values_type getValueMax() const
Get de la valeur max.
Definition: TYPalette.h:112
color_map_type::const_iterator color_map_const_iter
Definition: TYPalette.h:53
void resetcolorMapFromColors(values_type valueMin, values_type valueMax, const std::vector< OColor > &lookupTable)
Reset the colormap as a linear scale with the given colors between minValue and maxValue.
Definition: TYPalette.cpp:126
values_type getValueMin() const
Get de la valeur min.
Definition: TYPalette.h:102
QPushButton * _buttonApply
TYPreferenceDialog(QWidget *parent=0, const char *name=0, Qt::WindowFlags f=QFlag(0))
QPushButton * _buttonCancel
virtual void hideEvent(QHideEvent *pEvent)
TYOpenGLRenderer * getRenderer()
Objet IHM pour la saisie de la resisitivite du sol.
Permet de gerer la couleur des ToolButtons.
Definition: TYToolButton.h:37
Table 3D dans le dialogue de la gestion des preferences.
TYLineEdit * _pPrecisPickEdit
QComboBox * _pLeftButton3DComboBox
QComboBox * _pRightButton2DShtComboBox
TYLineEdit * _pCameraStepRotateEdit
QCheckBox * _pCenterOnLocateCheckBox
TYLineEdit * _pCameraStepZoomEdit
QSlider * _pLightSlider
QComboBox * _pLeftButton2DComboBox
TYLineEdit * _pCameraStepTranslateEdit
QComboBox * _pMiddleButton2DComboBox
QCheckBox * _pViewOnlyHighlightCheckBox
QComboBox * _pRightButton3DComboBox
QComboBox * _pRightButton3DShtComboBox
QComboBox * _pRightButton2DComboBox
QComboBox * _pMiddleButton3DComboBox
TYLineEdit * _pZoomStepEdit
QComboBox * _pLeftButton3DShtComboBox
QComboBox * _pLeftButton2DShtComboBox
QCheckBox * _pWireframeOnMovingCameraCheckBox
pref3DTab(QWidget *parent=0)
std::vector< OColor > OLookupTable
Collection de OColor.
Definition: color.h:105
std::string uintToStr(unsigned int val)
Definition: macros.h:86