Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYMainWindow.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) <2012> <EDF-R&D> <FRANCE>
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation; either version 2 of the License, or
6  * (at your option) any later version.
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10  * See the GNU General Public License for more details.
11  * You should have received a copy of the GNU General Public License along
12  * with this program; if not, write to the Free Software Foundation, Inc.,
13  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
14  */
15 
27 #ifndef __TY_MAIN_WINDOW__
28 #define __TY_MAIN_WINDOW__
29 
30 #include <qmainwindow.h>
33 
34 class QAction;
35 class QToolBar;
36 class QMenu;
37 class QDockWidget;
38 class QToolButton;
39 class QButtonGroup;
40 class QTextBrowser;
41 class QCloseEvent;
42 class QMdiArea;
43 class QMdiSubWindow;
44 
45 class TYSpectreManager;
46 class TYMaillageManager;
47 
52 class TYMainWindow : public QMainWindow
53 {
54  Q_OBJECT
55 
56 public:
60  TYMainWindow();
64  virtual ~TYMainWindow();
65 
66  QMdiArea* getWorkspace()
67  {
68  return _pWorkspace;
69  }
70 
72  {
73  return _pCurrentModeler;
74  }
75 
77  {
78  return _pProjetFrame;
79  }
81  {
82  return _pSiteFrame;
83  }
85  {
86  return _pOutputFrame;
87  }
88 
90  {
91  return _pToolbarFace;
92  }
94  {
95  return _pToolbarModeler;
96  }
97 
98  void updateCurrentFileName(const QString& fileName);
99 
102  {
103  return _closeAndQuit;
104  }
106  {
107  _closeAndQuit = true;
108  }
109 
110  virtual QMenu* createPopupMenu();
111 
112 public slots:
116  void refreshWindowTitle();
120  bool loadSettings(const QString& fileName);
124  bool saveSettings(const QString& fileName);
125 
129  void setCurProjet(LPTYProjet pProjet);
133  void setCurSiteNode(LPTYSiteNode pSiteNode);
137  void updateCurCalcul();
138 
142  void createNew();
146  void createNewProjet();
150  void createNewSite();
154  void createNewBatiment();
158  void createNewMachine();
159 
163  void open();
164 
168  void open(std::vector<LPTYElement>& tabElem, const bool& bRegenerate = false);
169 
173  bool save(QString dirName, QString& fileName, TYElement* pElement);
174 
178  void formatFileName(QString& fileName)
179  {
180  if (!fileName.endsWith(".xml"))
181  {
182  fileName += ".xml";
183  }
184  }
185 
189  void updateCurrentAppFile(const QString& dirName, const QString& fileName);
190 
194  bool save();
195 
199  bool saveAs();
200 
204  bool saveAsNoResult();
205 
209  bool saveAs(LPTYElement pElement);
210 
215 
219  bool backupFile(const QString& fileName);
220 
224  void showPluginManager();
225 
229  void close();
230 
234  void quitte();
235 
239  void print();
240 
244  void undo();
248  void redo();
249 
253  void cut();
257  void copy();
261  void paste();
262 
266  void showHelp();
267 
271  void about();
272 
276  void showSpectreManager(bool show);
280  void showMaillageManager(bool show);
284  void showBiblio(bool show);
288  void showPreferenceDialog();
292  void showOutput(bool show);
293 
297  void updateHideOrShowOutputAction(bool visibilityChanged);
298 
303  void launchImporter();
304 
308  bool makeModeler(TYElement* pElt);
309 
313  bool makeBatimentModeler(LPTYBatiment pBatiment = NULL);
317  bool makeMachineModeler(LPTYMachine pMachine = NULL);
321  void makeSiteModeler(LPTYSiteNode pSite = NULL);
325  void makeProjetModeler(LPTYProjet pProjet = NULL);
326 
334  void connectActionManager(TYActionManager* pActionManager);
339 
347  void updateModelers(bool clipping = true, bool axesAndGrid = true, bool displayList = true);
355  void updateModelersElementGraphic(bool force = false);
356 
363 
368  void closeModeler(const TYElement* pElement);
369 
373  void editCurCalcul();
377  void goCurCalcul();
378 
379  void reloadSlots();
380 
385  void setDefaultCameraMode();
386 
387 private slots:
391  void windowsMenuAboutToShow();
395  void windowsMenuActivated();
399  void subWindowActivated();
400 
404  void saveCurSiteMode(int mode);
408  void saveCurMachineMode(int mode);
412  void saveCurBatimentMode(int mode);
416  void saveCurFaceMode(int mode);
417 
421  void updateUndoRedo(bool undoAvailable, bool redoAvailable, const QString& undoCmd,
422  const QString& redoCmd);
423 
424 signals:
428  void onUndo();
432  void onRedo();
433 
434 protected:
435  virtual void closeEvent(QCloseEvent* pEvent);
436 
438  bool testFile(const QString& fileName);
439 
441  QString getFileName(const QString& filter, QString& dirName, const bool& forceNewName = false);
442 
443 protected:
445  QMdiArea* _pWorkspace;
446 
447  // CLM-NT35 End
448 
451 
455  QAction* _pOpenAction;
457  QAction* _pCloseAction;
458 
460  QAction* _pSaveAction;
461 
463  QAction* _pSaveAsAction;
464 
467 
470 
472  QAction* _pSaveAllAction;
473 
478 
480  QAction* _pPrintAction;
481 
483  QAction* _pUndoAction;
485  QAction* _pRedoAction;
486 
488  QAction* _pCutAction;
490  QAction* _pCopyAction;
492  QAction* _pPasteAction;
493 
502 
507 
509  QToolBar* _pMainToolbar;
510 
512  QToolBar* _pWindowToolbar;
513 
516 
519 
521  QButtonGroup* _pSiteBtnGroup;
530 
532  QButtonGroup* _pMachineBtnGroup;
537 
539  QButtonGroup* _pFaceBtnGroup;
544 
546  QButtonGroup* _pBatimentBtnGroup;
551 
555  QDockWidget* _pProjetDockWnd;
556 
560  QDockWidget* _pSiteDockWnd;
561 
565  QDockWidget* _pOutputDockWnd;
566 
568  // TYSpectreManager * _pSpectreManager;
569 
571  // TYMaillageManager * _pMaillageManager;
573  // TYMaillageModelerFrame * _pMaillageModeler;//az--
574 
577 
579  QTextBrowser* _pHelpBrowser;
580 
583 };
584 
585 #endif //__TY_MAIN_WINDOW__
Gere les undos.
Barre d'outils Batiment.
Barre d'outil calcul.
Barre d'outils Face.
Definition: TYFaceToolbar.h:41
Barre d'outil infastructure.
Barre d'outils Machine.
Fenetre principale de l'application Tympan.
Definition: TYMainWindow.h:53
void updateModelersAfterComputation(LPTYProjet &result)
void updateHideOrShowOutputAction(bool visibilityChanged)
QDockWidget * _pOutputDockWnd
Fenetre dockable pour les messages de retour.
Definition: TYMainWindow.h:565
TYProjetFrame * _pProjetFrame
Frame pour la gestion de projets.
Definition: TYMainWindow.h:553
virtual ~TYMainWindow()
void editCurCalcul()
TYInfraToolbar * _pToolbarInfra
Toolbar infrastructure.
Definition: TYMainWindow.h:527
TYOutputFrame * getOutputFrame()
Definition: TYMainWindow.h:84
TYElement * elementToSave()
void updateCurrentAppFile(const QString &dirName, const QString &fileName)
TYFaceToolbar * _pToolbarFace
Toolbar machine.
Definition: TYMainWindow.h:543
QString getFileName(const QString &filter, QString &dirName, const bool &forceNewName=false)
Produit un nom de fichier valide (ou rien !)
QButtonGroup * _pBatimentBtnGroup
Button group pour la toolbar batiment.
Definition: TYMainWindow.h:546
void createNewBatiment()
QAction * _pOpenAction
Action pour ouvrir le gestionnaire de bibliotheques.
Definition: TYMainWindow.h:455
QDockWidget * _pSiteDockWnd
Fenetre dockable pour la gestion de sites.
Definition: TYMainWindow.h:560
void updateCurrentFileName(const QString &fileName)
void createNewSite()
void saveCurBatimentMode(int mode)
TYSiteFrame * _pSiteFrame
Frame pour la gestion de sites.
Definition: TYMainWindow.h:558
void saveCurFaceMode(int mode)
TYTopoToolbar * _pToolbarTopo
Toolbar topographie.
Definition: TYMainWindow.h:525
void setCurSiteNode(LPTYSiteNode pSiteNode)
QAction * _pCreateNewAction
Action pour creer un nouvel element.
Definition: TYMainWindow.h:453
bool loadSettings(const QString &fileName)
void makeSiteModeler(LPTYSiteNode pSite=NULL)
bool _closeAndQuit
Indicateur d'annulation de commande de sortie.
Definition: TYMainWindow.h:582
TYCalculToolbar * _pToolbarCalcul
Toolbar calcul.
Definition: TYMainWindow.h:529
void formatFileName(QString &fileName)
Definition: TYMainWindow.h:178
bool backupFile(const QString &fileName)
QAction * _pSaveAsAction
Action pour sauvegarder un element sous un nom specifique.
Definition: TYMainWindow.h:463
void updateUndoRedo(bool undoAvailable, bool redoAvailable, const QString &undoCmd, const QString &redoCmd)
void createNewProjet()
bool makeBatimentModeler(LPTYBatiment pBatiment=NULL)
bool getSaveStatus()
Retourne l'etat de la requete de sauvegarde.
Definition: TYMainWindow.h:101
QAction * _pUndoAction
Action pour realiser un undo.
Definition: TYMainWindow.h:483
int _curSiteMode
Conserve le mode courant des fenetres SiteModeler.
Definition: TYMainWindow.h:523
QAction * _pPrintAction
Action pour imprimer.
Definition: TYMainWindow.h:480
QAction * _pRedoAction
Action pour realiser un redo.
Definition: TYMainWindow.h:485
void windowsMenuActivated()
QButtonGroup * _pFaceBtnGroup
Button group pour la toolbar face.
Definition: TYMainWindow.h:539
QAction * _pExportXMLAction
Action pour exporter l'element du modeler actif en XML.
Definition: TYMainWindow.h:477
void showPluginManager()
QAction * _pSaveAction
Action pour sauvegarder un element.
Definition: TYMainWindow.h:460
QAction * _pHideOrShowOutputAction
Affiche ou cache la fenetre de sortie des messages.
Definition: TYMainWindow.h:501
QMdiArea * _pWorkspace
Workspace pour la gestion MDI.
Definition: TYMainWindow.h:445
TYProjetFrame * getProjetFrame()
Definition: TYMainWindow.h:76
QAction * _pPasteAction
Action pour realiser un coller.
Definition: TYMainWindow.h:492
bool makeModeler(TYElement *pElt)
void reloadSlots()
void saveCurMachineMode(int mode)
QAction * _pCloseAction
Action pour fermer le projet ou site courant.
Definition: TYMainWindow.h:457
QButtonGroup * _pMachineBtnGroup
Button group pour la toolbar machine.
Definition: TYMainWindow.h:532
void updateModelers(bool clipping=true, bool axesAndGrid=true, bool displayList=true)
void connectActionManager(TYActionManager *pActionManager)
TYSiteFrame * getSiteFrame()
Definition: TYMainWindow.h:80
TYModelerToolbar * _pToolbarModeler
Toolbar generale pour les modelers.
Definition: TYMainWindow.h:518
void showBiblio(bool show)
QAction * _pHideOrShowSpectreMngrAction
Affiche ou cache le Spectre Manager.
Definition: TYMainWindow.h:495
int _curFaceMode
Conserve le mode courant des fenetres FaceModeler.
Definition: TYMainWindow.h:541
TYMachineToolbar * _pToolbarMachine
Toolbar machine.
Definition: TYMainWindow.h:536
void createNewMachine()
QMenu * _pWindowsMenu
Gestionnaire de spectres.
Definition: TYMainWindow.h:576
void refreshWindowTitle()
void showPreferenceDialog()
QAction * _pHideOrShowMaillageMngrAction
Affiche ou cache le Maillage Manager.
Definition: TYMainWindow.h:497
void makeProjetModeler(LPTYProjet pProjet=NULL)
virtual void closeEvent(QCloseEvent *pEvent)
void launchImporter()
void showMaillageManager(bool show)
bool saveSettings(const QString &fileName)
TYModelerFrame * _pCurrentModeler
Modeler en cours d'affichage.
Definition: TYMainWindow.h:450
void connectDefaultActionManager()
QAction * _pGoCurCalculAction
Action pour lancer le calcul courant.
Definition: TYMainWindow.h:506
TYFaceToolbar * getFaceToolbar()
Definition: TYMainWindow.h:89
void updateModelersElementGraphic(bool force=false)
QToolBar * _pCalculAcousticToolbar
Toolbar pour les calculs acoustiques.
Definition: TYMainWindow.h:515
QAction * _pImportXMLAction
Action pour importer un element depuis un fichier XML.
Definition: TYMainWindow.h:475
QAction * _pCutAction
Action pour realiser un couper.
Definition: TYMainWindow.h:488
bool makeMachineModeler(LPTYMachine pMachine=NULL)
QAction * _pEditCurCalculAction
Action pour editer les preferences du calcul courant.
Definition: TYMainWindow.h:504
void setCurProjet(LPTYProjet pProjet)
TYModelerToolbar * getModelerToolbar()
Definition: TYMainWindow.h:93
QAction * _pSaveAsNoResultAction
Action pour sauvegarder un element sous un nom specifique sans les resultats de calcul.
Definition: TYMainWindow.h:466
void showOutput(bool show)
virtual QMenu * createPopupMenu()
bool testFile(const QString &fileName)
Teste l'existence et la possibilite d'ecrire le fichier.
QTextBrowser * _pHelpBrowser
Navigateur d'aide.
Definition: TYMainWindow.h:579
QMdiArea * getWorkspace()
Definition: TYMainWindow.h:66
int _curMachineMode
Conserve le mode courant des fenetres MachineModeler.
Definition: TYMainWindow.h:534
void goCurCalcul()
void windowsMenuAboutToShow()
QToolBar * _pWindowToolbar
Toolbar pour la gestion des fenetres.
Definition: TYMainWindow.h:512
void initSaveStatus()
Definition: TYMainWindow.h:105
TYOutputFrame * _pOutputFrame
Frame pour les messages de retour.
Definition: TYMainWindow.h:563
void saveCurSiteMode(int mode)
bool saveAsNoResult()
void closeModeler(const TYElement *pElement)
QButtonGroup * _pSiteBtnGroup
Button group pour les toolbars site.
Definition: TYMainWindow.h:521
QAction * _pCopyAction
Action pour realiser un copier.
Definition: TYMainWindow.h:490
QToolBar * _pMainToolbar
Toolbar principale.
Definition: TYMainWindow.h:509
QAction * _pShowPluginManagerAction
Action pour afficher le gestionnaire de plug-ins.
Definition: TYMainWindow.h:469
TYBatimentToolbar * _pToolbarBatiment
Toolbar batiment.
Definition: TYMainWindow.h:550
void subWindowActivated()
int _curBatimentMode
Conserve le mode courant des fenetres BatimentModeler.
Definition: TYMainWindow.h:548
QDockWidget * _pProjetDockWnd
Fenetre dockable pour la gestion de projets.
Definition: TYMainWindow.h:555
QAction * _pSaveAllAction
Action pour sauvegarder tous les elements.
Definition: TYMainWindow.h:472
TYModelerFrame * getCurrentModeler()
Definition: TYMainWindow.h:71
void showSpectreManager(bool show)
QAction * _pHideOrShowBiblioAction
Affiche ou cache la Bibliotheque d'elements.
Definition: TYMainWindow.h:499
void setDefaultCameraMode()
void updateCurCalcul()
Classe generique pour une fenetre de modeleur.
Barre d'outils generale pour les modelers.
Frame pour les messages de retour.
Definition: TYOutputFrame.h:40
Frame pour la gestion de projet.
Definition: TYProjetFrame.h:42
Frame pour la gestion de site.
Definition: TYSiteFrame.h:43
Barre d'outils topographie.
Definition: TYTopoToolbar.h:35