23 #include <QCloseEvent>
27 #include <qstatusbar.h>
33 #include <qfiledialog.h>
34 #include <qfileinfo.h>
35 #include <qtoolbutton.h>
36 #include <qbuttongroup.h>
37 #include <qmessagebox.h>
39 #include <qmainwindow.h>
41 #include <qtextbrowser.h>
42 #include <qtextstream.h>
43 #include <QDockWidget>
45 #include <QMdiSubWindow>
46 #include <qeventloop.h>
48 #include "Tympan/core/config.h"
80 #define TR(id) OLocalizator::getString("TYMainWindow", (id))
81 #define IMG(id) OLocalizator::getPicture("TYMainWindow", (id))
102 _pWorkspace->setActivationOrder(QMdiArea::ActivationHistoryOrder);
115 if (QFile::exists(help_index_file))
138 _pOpenAction =
new QAction(QPixmap(
IMG(
"id_icon_open")),
TR(
"id_menuitem_open"),
this);
141 QObject::connect(
_pOpenAction, &QAction::triggered,
this, tyMainWindow_open);
143 _pCloseAction =
new QAction(QPixmap(
IMG(
"id_icon_close")),
TR(
"id_menuitem_close"),
this);
148 _pSaveAction =
new QAction(QPixmap(
IMG(
"id_icon_save")),
TR(
"id_menuitem_save"),
this);
151 QObject::connect(
_pSaveAction, &QAction::triggered,
this, tyMainWindow_save);
153 _pSaveAsAction =
new QAction(QPixmap(
IMG(
"id_icon_save")),
TR(
"id_menuitem_saveas"),
this);
155 QObject::connect(
_pSaveAsAction, &QAction::triggered,
this, tyMainWindow_saveAs);
158 new QAction(QPixmap(
IMG(
"id_icon_save")),
TR(
"id_menuitem_saveas_noresult"),
this);
167 _pPrintAction =
new QAction(QPixmap(
IMG(
"id_icon_print")),
TR(
"id_menuitem_print"),
this);
173 _pUndoAction =
new QAction(QPixmap(
IMG(
"id_icon_undo")),
TR(
"id_menuitem_undo_na"),
this);
179 _pRedoAction =
new QAction(QPixmap(
IMG(
"id_icon_redo")),
TR(
"id_menuitem_redo_na"),
this);
185 _pCutAction =
new QAction(QPixmap(
IMG(
"id_icon_cut")),
TR(
"id_menuitem_cut"),
this);
191 _pCopyAction =
new QAction(QPixmap(
IMG(
"id_icon_copy")),
TR(
"id_menuitem_copy"),
this);
197 _pPasteAction =
new QAction(QPixmap(
IMG(
"id_icon_paste")),
TR(
"id_menuitem_paste"),
this);
204 new QAction(QPixmap(
IMG(
"id_icon_show_spectremngr")),
TR(
"id_menuitem_show_spectremngr"),
this);
212 new QAction(QPixmap(
IMG(
"id_icon_show_maillagemngr")),
TR(
"id_menuitem_show_maillagemngr"),
this);
220 new QAction(QPixmap(
IMG(
"id_icon_show_biblio")),
TR(
"id_menuitem_show_biblio"),
this);
227 new QAction(QPixmap(
IMG(
"id_icon_show_output")),
TR(
"id_menuitem_show_output"),
this);
233 new QAction(QPixmap(
IMG(
"id_icon_edit_curcalcul")),
TR(
"id_menuitem_edit_curcalcul"),
this);
239 new QAction(QPixmap(
IMG(
"id_icon_go_curcalcul")),
TR(
"id_menuitem_go_curcalcul"),
this);
244 QAction* pPrefDialogAction =
245 new QAction(QPixmap(
IMG(
"id_icon_prefdlg")),
TR(
"id_menuitem_prefdlg"),
this);
249 QMenu* pFileMenu =
new QMenu(
TR(
"id_menu_file"),
this);
250 menuBar()->addMenu(pFileMenu);
252 QMenu* pNewMenu =
new QMenu(
TR(
"id_menuitem_new"),
this);
253 pNewMenu->setTearOffEnabled(
true);
260 pFileMenu->addMenu(pNewMenu);
263 pFileMenu->addSeparator();
267 pFileMenu->addSeparator();
269 pFileMenu->addSeparator();
271 pFileMenu->addSeparator();
274 QMenu* pEditMenu =
new QMenu(
TR(
"id_menu_edit"),
this);
275 menuBar()->addMenu(pEditMenu);
278 pEditMenu->addSeparator();
282 pEditMenu->addSeparator();
283 pEditMenu->addAction(QPixmap(
IMG(
"id_icon_prefdlg")),
TR(
"id_menuitem_prefdlg"),
this,
290 menuBar()->addSeparator();
292 QMenu* pHelpMenu =
new QMenu(
TR(
"id_menu_help"),
this);
293 menuBar()->addMenu(pHelpMenu);
295 pHelpMenu->addSeparator();
301 QToolButton* pToolNewFile =
new QToolButton(
this);
302 pToolNewFile->setIcon(QPixmap(
IMG(
"id_icon_new")));
303 pToolNewFile->setToolTip(
TR(
"id_menuitem_new"));
304 pToolNewFile->setMenu(pNewMenu);
305 pToolNewFile->setPopupMode(QToolButton::InstantPopup);
421 QObject::connect(
_pOutputDockWnd, &QDockWidget::visibilityChanged,
this,
442 statusBar()->showMessage(
TR(
"id_status_ready"));
456 QMenu* returnedMenu = QMainWindow::createPopupMenu();
458 myMenu->addActions(returnedMenu->actions());
469 statusBar()->showMessage(
TR(
"id_status_load_settings"), 3000);
471 QFile* inFile =
new QFile(QString(fileName) + QString(
"MainWindowIHM.bin"));
472 if (inFile->open(QIODevice::ReadOnly))
474 QByteArray byteArray = inFile->readAll();
475 if (byteArray.isEmpty())
482 res = restoreState(byteArray);
491 QString finalFileName = QString(fileName) + QString(
".xml");
495 QFileInfo fi(finalFileName);
499 finalFileName = QDir::toNativeSeparators(
getTYApp()->tympanUserDir() +
"/Settings" +
".xml");
502 TYPreferenceManager::init(finalFileName);
505 res = TYPreferenceManager::read();
508 TYPreferenceManager::loadGeometryFromPreferences(metaObject()->className(),
this);
511 QObjectList objectsList = children();
512 QWidget* pDockWnd = NULL;
513 QObject* pObject = NULL;
515 for (
int _i = 0; _i < objectsList.size(); _i++)
517 pObject = objectsList[_i];
518 if ((pObject->objectName() ==
"ProjetDockWnd") || (pObject->objectName() ==
"SiteDockWnd") ||
519 (pObject->objectName() ==
"OutputDockWnd") ||
520 (strcmp(pObject->metaObject()->className(),
"QToolBar") == 0) ||
521 (
dynamic_cast<QToolBar*
>(pObject) !=
nullptr))
523 pDockWnd = (QWidget*)pObject;
524 QString key = pDockWnd->objectName();
526 TYPreferenceManager::loadGeometryFromPreferences(key, pDockWnd);
537 QByteArray byteArray = saveState();
538 QFile* outFile =
new QFile(QString(fileName) + QString(
"MainWindowIHM.bin"));
539 if (outFile->open(QIODevice::WriteOnly))
541 outFile->write(byteArray);
548 QString finalFileName = QString(fileName) + QString(
".xml");
549 TYPreferenceManager::setFileName(finalFileName);
550 res = TYPreferenceManager::write();
563 QMessageBox* pAboutTympan =
new QMessageBox(NULL);
564 pAboutTympan->setWindowTitle(windowTitle());
565 QString msg =
TR(
"id_about_msg");
566 msg = msg.arg(TY_PRODUCT_NAME_);
567 msg = msg.arg(TY_CURRENT_RELEASE_);
569 msg = msg.arg(TY_PRODUCT_COPYRIGHT_);
570 msg = msg.arg(TY_BUILD_DATE_);
571 msg = msg.arg(TY_BUILD_TIME_);
572 msg = msg.arg(TY_CUSTOMER_);
573 msg = msg.arg(TY_LICENCE_NUMBER_);
574 msg = msg.arg(TY_TIME_LIMIT_);
575 pAboutTympan->setText(msg);
576 pAboutTympan->setIconPixmap(
IMG(
"id_logo_about"));
579 pAboutTympan->exec();
594 if (pProj !=
nullptr)
599 else if (pElt->
isA(
"TYSiteNode"))
604 else if (pElt->
isA(
"TYBatiment"))
608 else if (pElt->
isA(
"TYMachine"))
623 pBatimentModeler->setAttribute(WA_DeleteOnClose);
624 _pWorkspace->addSubWindow(pBatimentModeler)->setObjectName(
"TYBatimentModelerFrame");
637 pBatimentModeler->showMaximized();
638 pBatimentModeler->
fit();
644 pBatimentModeler->
close();
645 delete pBatimentModeler;
646 pBatimentModeler =
nullptr;
664 pMachineModeler->setAttribute(WA_DeleteOnClose);
666 _pWorkspace->addSubWindow(pMachineModeler)->setObjectName(
"TYMachineModelerFrame");
679 pMachineModeler->showMaximized();
680 pMachineModeler->
fit();
686 pMachineModeler->
close();
687 delete pMachineModeler;
688 pMachineModeler =
nullptr;
704 pSiteModeler->setAttribute(WA_DeleteOnClose);
706 _pWorkspace->addSubWindow(pSiteModeler)->setObjectName(
"TYSiteModelerFrame");
713 pSiteModeler->showMaximized();
720 pSiteModeler->setAttribute(WA_DeleteOnClose);
722 _pWorkspace->addSubWindow(pSiteModeler)->setObjectName(
"TYSiteModelerFrame");
729 pSiteModeler->showMaximized();
761 QList<QMdiSubWindow*> windows =
_pWorkspace->subWindowList();
763 for (
int i = 0; i < int(windows.count()); ++i)
765 QWidget* internal_window = windows.at(i)->widget();
778 if (pModelerFrame !=
nullptr)
780 pModelerElement = pModelerFrame->
getElement();
784 ((
TYModelerFrame*)internal_window)->updateView(clipping, axesAndGrid);
793 QList<QMdiSubWindow*> windows =
_pWorkspace->subWindowList();
795 for (
int i = 0; i < int(windows.count()); ++i)
797 QWidget* internal_window = windows.at(i)->widget();
809 QList<QMdiSubWindow*> windows =
_pWorkspace->subWindowList();
811 for (
int i = 0; i < int(windows.count()); ++i)
813 QWidget* internal_window = windows.at(i)->widget();
819 QString windowTitle = internal_window->windowTitle();
825 if (psiteframe !=
nullptr)
837 if (pbatimentframe !=
nullptr)
842 if (newElement !=
nullptr)
848 if (pmachineframe !=
nullptr)
853 if (newElement !=
nullptr)
865 QList<QMdiSubWindow*> windows =
_pWorkspace->subWindowList();
867 for (
int i = 0; i < int(windows.count()); ++i)
869 QWidget* internal_window = windows.at(i)->widget();
870 QWidget* container_window = windows.at(i);
877 container_window->close();
905 QList<QMdiSubWindow*> windows =
_pWorkspace->subWindowList();
907 if (windows.isEmpty())
909 cascadeId->setEnabled(
false);
910 tileId->setEnabled(
false);
916 viewMenu->setTitle(
TR(
"id_menuitem_views"));
921 for (
int i = 0; i < int(windows.count()); ++i)
923 QWidget* internal_window = windows.at(i)->widget();
925 if (!internal_window)
930 QAction*
id =
_pWindowsMenu->addAction(internal_window->windowTitle(),
this,
933 id->setChecked(
_pWorkspace->activeSubWindow() == windows.at(i));
939 QAction* action = (QAction*)sender();
940 int id = action->data().toInt();
942 QWidget* pWidget =
_pWorkspace->subWindowList().at(
id)->widget();
946 pWidget->showNormal();
949 if (QString(pWidget->metaObject()->className()).compare(
"TYSpectreManager") == 0)
953 else if (QString(pWidget->metaObject()->className()).compare(
"TYDataBaseFrame") == 0)
957 else if (QString(pWidget->metaObject()->className()).compare(
"TYMaillageManager") == 0)
975 QMdiSubWindow* subWindow =
_pWorkspace->activeSubWindow();
976 if (
_pWorkspace->subWindowList().count() > 0 && subWindow)
978 pW = subWindow->widget();
1011 void (QButtonGroup::*qButtonGroup_clicked)(int) = &QButtonGroup::idClicked;
1043 if (QString(pW->metaObject()->className()).compare(
"TYSiteModelerFrame") == 0)
1052 bool bActiveCalculToolBar =
false;
1057 bActiveCalculToolBar =
true;
1063 bActiveCalculToolBar =
true;
1089 else if (QString(pW->metaObject()->className()).compare(
"TYMachineModelerFrame") == 0)
1115 else if (QString(pW->metaObject()->className()).compare(
"TYBatimentModelerFrame") == 0)
1140 else if (QString(pW->metaObject()->className()).compare(
"TYFaceModelerFrame") == 0)
1144 QObject::disconnect(pF, tyFaceModelerFrame_editorModeChanged,
this,
1210 const QString& redoCmd)
1215 if (!undoCmd.isEmpty())
1224 if (!redoCmd.isEmpty())
1263 if (QMessageBox::warning(
this,
"Tympan",
TR(
"id_msg_solver_out"), QMessageBox::Yes,
1264 QMessageBox::No) == QMessageBox::Yes)
1344 if (pDlg->result() == QDialog::Accepted)
1356 TYApplication::setOverrideCursor(Qt::WaitCursor);
1358 QString strExtend =
"";
1361 strExtend =
TR(
"id_status_file_ro");
1367 ") : " + fileName +
' ' + strExtend);
1374 TYApplication::restoreOverrideCursor();
1387 if (pDlg->result() == QDialog::Accepted)
1407 switch (QMessageBox::warning(
this,
"Attention",
TR(
"id_file_not_saved"), QMessageBox::Yes,
1410 case QMessageBox::Yes:
1421 case QMessageBox::No:
1433 QList<QMdiSubWindow*> windows =
_pWorkspace->subWindowList();
1435 for (
int i = 0; i < int(windows.count()); ++i)
1437 windows.at(i)->close();
1448 QString fileName =
"";
1470 QDir::toNativeSeparators(
getTYApp()->getSettingsDir() +
"/Settings" + TY_PRODUCT_VERSION_));
1490 QWidget* pW = this->focusWidget();
1525 QMessageBox::warning(
this,
"Tympan",
TR(
"id_nothingtoexport"));
1530 QString fileName =
getFileName(
"XML (*.xml)", dirName);
1532 bRet =
save(dirName, fileName, pElement);
1536 QMessageBox::information(
this,
"Tympan",
TR(
"id_export_ok").arg(fileName));
1544 QMessageBox::warning(
this,
"Tympan",
TR(
"id_export_failed").arg(fileName));
1553 if (!pElement || fileName.isEmpty())
1557 if (dirName.isEmpty())
1569 QString version(TY_CURRENT_RELEASE_);
1570 QString tiret(
" - ");
1571 QString licencie(TY_CUSTOMER_);
1572 QString licenceNumber(TY_LICENCE_NUMBER_);
1574 QString messageVersion = version + tiret + licencie + tiret + licenceNumber;
1577 xmlManager.
createDoc(TY_PRODUCT_XMLTAG_, messageVersion);
1580 if (xmlManager.
save(fileName) == 0)
1596 QMessageBox::warning(
this,
"Tympan",
TR(
"id_nothingtoexport"));
1601 QString fileName =
getFileName(
"XML (*.xml)", dirName,
true);
1605 bRet =
save(dirName, fileName, pElement);
1609 QMessageBox::information(
this,
"Tympan",
TR(
"id_export_ok").arg(fileName));
1617 QMessageBox::warning(
this,
"Tympan",
TR(
"id_export_failed").arg(fileName));
1632 QMessageBox::warning(
this,
"Tympan",
TR(
"id_nothingtoexport"));
1637 QString fileName =
getFileName(
"XML (*.xml)", dirName,
true);
1642 bRet =
save(dirName, fileName, pProjet);
1646 QMessageBox::information(
this,
"Tympan",
TR(
"id_export_ok").arg(fileName));
1650 QMessageBox::warning(
this,
"Tympan",
TR(
"id_export_failed").arg(fileName));
1663 if (pElement == NULL)
1669 QString fileName =
getFileName(
"XML (*.xml)", dirName,
true);
1673 bRet =
save(dirName, fileName, pElement);
1677 QMessageBox::information(
this,
"Tympan",
TR(
"id_export_ok").arg(fileName));
1681 QMessageBox::warning(
this,
"Tympan",
TR(
"id_export_failed").arg(fileName));
1700 QFileInfo fi(fileName);
1702 QString nomFichier = fi.absolutePath() +
'/' + fi.baseName() +
".bak";
1705 QFile fileToSave(fileName);
1706 bool bOpen = fileToSave.open(QIODevice::ReadOnly);
1715 bOpen =
backupFile.open(QIODevice::WriteOnly);
1750 QFileInfo fi(fileName);
1755 QFile* file =
new QFile(fileName);
1757 QMessageBox::warning(
this,
"Attention",
TR(
"id_file_exist"), QMessageBox::Yes, QMessageBox::No))
1759 case QMessageBox::Yes:
1760 if (!file->remove())
1762 QMessageBox::warning(
this,
"Attention",
TR(
"id_file_cannot_be_clear"));
1767 case QMessageBox::No:
1780 const bool& forceNewName )
1784 if (!forceNewName && !fileName.isEmpty())
1790 short index = filter.indexOf(
".");
1791 QString end = filter.mid(index, 4);
1796 QFileDialog* pDialog =
new QFileDialog(parentWidget(),
"Choose a file", dirName, filter);
1797 pDialog->setFileMode(QFileDialog::AnyFile);
1798 pDialog->setAcceptMode(QFileDialog::AcceptSave);
1801 QStringList list = pDialog->selectedFiles();
1802 if ((pDialog->result() == QDialog::Accepted) && (!list.isEmpty()))
1804 fileName = list.first();
1806 QDir dir = pDialog->directory();
1807 dirName = dir.absolutePath();
1811 if (!fileName.endsWith(end))
1826 QWidget* pW = this->focusWidget();
1883 QProcess* pImporterLauncher =
new QProcess(
this);
1892 pImporterLauncher->start(
"Importer", QStringList(
""));
1894 if (pImporterLauncher->state() == QProcess::Running)
1917 TYPreferenceManager::saveGeometryToPreferences(metaObject()->className(),
this);
1920 QObjectList objectsList = children();
1921 QWidget* pDockWnd = NULL;
1922 QObject* pObject = NULL;
1924 for (
int _i = 0; _i < objectsList.size(); _i++)
1926 pObject = objectsList[_i];
1927 if ((pObject->objectName() ==
"ProjetDockWnd") || (pObject->objectName() ==
"SiteDockWnd") ||
1928 (pObject->objectName() ==
"OutputDockWnd") ||
1929 (strcmp(pObject->metaObject()->className(),
"QToolBar") == 0) ||
1930 (
dynamic_cast<QToolBar*
>(pObject) !=
nullptr))
1933 pDockWnd = (QWidget*)pObject;
1934 QString key = pDockWnd->objectName();
1937 TYPreferenceManager::saveGeometryToPreferences(key, pDockWnd);
1942 saveSettings(QDir::toNativeSeparators(
getTYApp()->getSettingsDir() +
"/Settings" + TY_PRODUCT_VERSION_));
1944 QMainWindow::closeEvent(pEvent);
void writeOutputMsg(QString msg)
Affiche un message dans la fenetre de sortie.
TYApplication * getTYApp()
Retourne le pointeur sur l'application.
pour l'application Tympan (fichier header)
Modeler specialisee pour l'edition des batiments (fichier header)
Boite de dialogue pour la creation d'un nouvel element metier. L'element cree peut etre sauvegarde en...
Classe Modeler specialisee pour l'edition des faces (fichier header)
Modeler specialisee pour l'edition des machines (fichier header)
Fenetre principale de l'application Tympan (fichier header)
Classe generique pour une fenetre de modeleur (fichier header)
Boite de dialogue pour le chargement d'un element metier (fichier header)
Frame pour les messages de retour (fichier header)
Gestion de la table de correspondance indice/element pour le picking (fichier header)
Boite de dialogue pour la selection du plugin de calcul (fichier header)
#define DEFAULT_SOLVER_UUID
Tables pour le dialogue de la gestion des preferences (fichier header)
Frame pour la gestion de projet (fichier header)
Frame pour la gestion de site (fichier header)
Classe Modeler specialisee pour l'edition des sites (fichier header)
static OPrototype * safeDownCast(OPrototype *pObject)
bool isA(const char *className) const
size_t getNbChild() const
void redo()
Effectue a nouveau la derniere action annulee.
void undo()
Annule la derniere action.
void emitUndoRedo()
Envoie un signal informant sur l'etat de ce ActionManager.
void undoRedoChanged(bool undoAvailable, bool redoAvailable, const QString &undoCmd, const QString &redoCmd)
Indique l'etat de ce ActionManager.
void setCurSiteNode(LPTYSiteNode pSiteNode)
Set/Get du site node courant.
static const QString & getCurrentDirName()
LPTYProjet getCurProjet()
Set/Get du projet courant.
static QString tympanAppDir()
Retourne le chemin du dossier de l'application.
TYCalculManager * getCalculManager()
Get du gestionnaire de calculs.
static const QString & getCurrentFileName()
Retourne le nom du fichier en cours d'utilisation.
void curSiteNodeChanged(LPTYSiteNode pCurSiteNode)
Signal que le site node courant a change.
void curProjetChanged(LPTYProjet pCurProjet)
Signal que le projet courant a change.
static void setCurrentFileName(const QString &fileName)
Enregistre le nom du ficgier de travail courant.
static QString tympanUserDir()
Retourne le chemin du dossier de sauvegarde de l'utilisateur courant. Celui-ci est donne par la varia...
void setCurProjet(LPTYProjet pProjet)
Set/Get du projet courant.
static void setCurrentDirName(const QString &dirName)
Get/Set du repertoire de travail courant.
Classe Modeler specialisee pour l'edition des batiments.
void setBatiment(LPTYBatiment pBatiment)
Set/Get du bâtiment a editer.
LPTYBatiment getBatiment()
virtual void setEditorMode(int mode)
bool launchCurrent()
Execute le calcul courant.
void setCurrent(LPTYCalcul pCalcul)
Set du Calcul et Projet courant.
int getState()
Get calculation state.
void setSolverId(const OGenID &iD)
Set solver ID.
void setState(int state)
Set editable attribute.
Boite de dialogue pour la creation d'un nouvel element metier. L'element cree peut etre sauvegarde en...
void createElement(QString eltType)
Gere la creation d'un nouvel element au sein de l'application.
TYElement * getParent() const
static void setLogInstances(bool log)
static void setIsSavedOk(const bool &toSave)
const TYUUID & getID() const
static void setRegenerateID(const bool &bRegenerate)
static bool getIsSavedOk()
static TYElement * getInstance(TYUUID uuid)
Classe Modeler specialisee pour l'edition des faces.
virtual void setEditorMode(int mode)
Classe Modeler specialisee pour l'edition des machines.
void setMachine(LPTYMachine pMachine)
virtual void setEditorMode(int mode)
Fenetre principale de l'application Tympan.
void updateModelersAfterComputation(LPTYProjet &result)
void updateHideOrShowOutputAction(bool visibilityChanged)
QDockWidget * _pOutputDockWnd
Fenetre dockable pour les messages de retour.
TYProjetFrame * _pProjetFrame
Frame pour la gestion de projets.
TYInfraToolbar * _pToolbarInfra
Toolbar infrastructure.
TYElement * elementToSave()
void updateCurrentAppFile(const QString &dirName, const QString &fileName)
TYFaceToolbar * _pToolbarFace
Toolbar machine.
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.
QAction * _pOpenAction
Action pour ouvrir le gestionnaire de bibliotheques.
QDockWidget * _pSiteDockWnd
Fenetre dockable pour la gestion de sites.
void updateCurrentFileName(const QString &fileName)
void saveCurBatimentMode(int mode)
TYSiteFrame * _pSiteFrame
Frame pour la gestion de sites.
void saveCurFaceMode(int mode)
TYTopoToolbar * _pToolbarTopo
Toolbar topographie.
void setCurSiteNode(LPTYSiteNode pSiteNode)
QAction * _pCreateNewAction
Action pour creer un nouvel element.
bool loadSettings(const QString &fileName)
void makeSiteModeler(LPTYSiteNode pSite=NULL)
bool _closeAndQuit
Indicateur d'annulation de commande de sortie.
TYCalculToolbar * _pToolbarCalcul
Toolbar calcul.
void formatFileName(QString &fileName)
bool backupFile(const QString &fileName)
QAction * _pSaveAsAction
Action pour sauvegarder un element sous un nom specifique.
void updateUndoRedo(bool undoAvailable, bool redoAvailable, const QString &undoCmd, const QString &redoCmd)
bool makeBatimentModeler(LPTYBatiment pBatiment=NULL)
QAction * _pUndoAction
Action pour realiser un undo.
int _curSiteMode
Conserve le mode courant des fenetres SiteModeler.
QAction * _pPrintAction
Action pour imprimer.
QAction * _pRedoAction
Action pour realiser un redo.
void windowsMenuActivated()
QButtonGroup * _pFaceBtnGroup
Button group pour la toolbar face.
QAction * _pSaveAction
Action pour sauvegarder un element.
QAction * _pHideOrShowOutputAction
Affiche ou cache la fenetre de sortie des messages.
QMdiArea * _pWorkspace
Workspace pour la gestion MDI.
QAction * _pPasteAction
Action pour realiser un coller.
bool makeModeler(TYElement *pElt)
void saveCurMachineMode(int mode)
QAction * _pCloseAction
Action pour fermer le projet ou site courant.
QButtonGroup * _pMachineBtnGroup
Button group pour la toolbar machine.
void updateModelers(bool clipping=true, bool axesAndGrid=true, bool displayList=true)
void connectActionManager(TYActionManager *pActionManager)
TYModelerToolbar * _pToolbarModeler
Toolbar generale pour les modelers.
void showBiblio(bool show)
QAction * _pHideOrShowSpectreMngrAction
Affiche ou cache le Spectre Manager.
int _curFaceMode
Conserve le mode courant des fenetres FaceModeler.
TYMachineToolbar * _pToolbarMachine
Toolbar machine.
QMenu * _pWindowsMenu
Gestionnaire de spectres.
void refreshWindowTitle()
void showPreferenceDialog()
QAction * _pHideOrShowMaillageMngrAction
Affiche ou cache le Maillage Manager.
void makeProjetModeler(LPTYProjet pProjet=NULL)
virtual void closeEvent(QCloseEvent *pEvent)
void showMaillageManager(bool show)
bool saveSettings(const QString &fileName)
TYModelerFrame * _pCurrentModeler
Modeler en cours d'affichage.
void connectDefaultActionManager()
QAction * _pGoCurCalculAction
Action pour lancer le calcul courant.
void updateModelersElementGraphic(bool force=false)
QToolBar * _pCalculAcousticToolbar
Toolbar pour les calculs acoustiques.
QAction * _pCutAction
Action pour realiser un couper.
bool makeMachineModeler(LPTYMachine pMachine=NULL)
QAction * _pEditCurCalculAction
Action pour editer les preferences du calcul courant.
void setCurProjet(LPTYProjet pProjet)
QAction * _pSaveAsNoResultAction
Action pour sauvegarder un element sous un nom specifique sans les resultats de calcul.
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.
int _curMachineMode
Conserve le mode courant des fenetres MachineModeler.
void windowsMenuAboutToShow()
QToolBar * _pWindowToolbar
Toolbar pour la gestion des fenetres.
TYOutputFrame * _pOutputFrame
Frame pour les messages de retour.
void saveCurSiteMode(int mode)
void closeModeler(const TYElement *pElement)
QButtonGroup * _pSiteBtnGroup
Button group pour les toolbars site.
QAction * _pCopyAction
Action pour realiser un copier.
QToolBar * _pMainToolbar
Toolbar principale.
QAction * _pShowPluginManagerAction
Action pour afficher le gestionnaire de plug-ins.
TYBatimentToolbar * _pToolbarBatiment
Toolbar batiment.
void subWindowActivated()
int _curBatimentMode
Conserve le mode courant des fenetres BatimentModeler.
QDockWidget * _pProjetDockWnd
Fenetre dockable pour la gestion de projets.
void showSpectreManager(bool show)
QAction * _pHideOrShowBiblioAction
Affiche ou cache la Bibliotheque d'elements.
void setDefaultCameraMode()
Classe generique pour une fenetre de modeleur.
void updateElementGraphic(bool force=false)
TYRenderWindowInteractor * getView()
void setEditorModeToCamera()
void editorModeChanged(int mode)
void viewTypeChanged(int)
TYActionManager * getActionManager()
virtual void updateView(bool clipping=true, bool axesAndGrid=true)
Boite de dialogue pour le chargement d'un element metier. L'element peut etre ouvert dans un modeleur...
void openElement(LPTYElement pElt)
void setDirName(const QString &value)
Set du nom du repertoire de travail.
void setMultiSelect(const bool &b)
QString getDirName()
Get du nom du repertoire de travail.
std::vector< LPTYElement > getTabElem()
LPTYElementArray getAvailableElements()
Realise le rendu VTK et le rendu OpenGL.
void updateDisplayList(void)
void clearTabSelectedElement()
void setModelerElement(TYElement *pElement)
Frame pour les messages de retour.
classe graphique pour la gestion de la table de correspondanceindice/element pour le picking
Boite de dialogue pour la selection du plugin de calcul.
Boite de dialogue pour la gestion des preferences.
Frame pour la gestion de projet.
void changeSite(LPTYSiteNode pSite)
void setProjet(LPTYProjet pProjet)
void changeCurrentCalcul(LPTYCalcul pCalcul)
classe de definition d'un projet.
void setStatusSolver(const bool &bStatus)
bool getStatusSolver()
Get/Set du statut de disponibilite du solveur du calcul courant.
LPTYCalcul getCurrentCalcul()
Set/Get du pointeur du Calcul courant.
Le role de cette classe est limite a emettre des signaux pouvant etre utilise pour interagir sur le r...
TYOpenGLRenderer * getRenderer()
Frame pour la gestion de site.
TYSiteNode * getSiteNodeRoot()
void setSiteNodeRoot(LPTYSiteNode pSiteNode)
void setCurrentCalcul(LPTYCalcul pCalcul)
Classe Modeler specialisee pour l'edition des sites.
virtual void setEditorMode(int mode)
void setProjet(LPTYProjet pProjet)
virtual void setRenderMaillageModeSlot()
virtual void updateView(bool clipping=true, bool axesAndGrid=true)
int save(QString fileName)
void createDoc(QString docName, QString version)
int addElement(TYElement *pElt)
static void setSavedFileName(QString savedFileName)
#define TY_PRODUCT_PLATFORM_