#include "MainWindow.h" #include "ui_MainWindow.h" #include "MainTreeWidget.h" #include "RenderWidget.h" #include "ActionEventHandler.h" #include "GUIWidget/ToolBarAnimation.h" #include "GUIWidget/ToolBarColorMapper.h" #include "GUIWidget/InformationWidget.h" #include "GUIWidget/PropertyWidget.h" #include "GUIWidget/ToolBarFilter.h" #include "GUIWidget/ToolBarEvent.h" #include "FITK_Component/FITKWidget/FITKTabWidget.h" #include #include #include #include #include namespace GUI { MainWindow::MainWindow(QWidget * parent): QMainWindow(parent) { _ui = new Ui::MainWindow(); _ui->setupUi(this); init(); } MainWindow::~MainWindow() { if (_ui) { delete _ui; _ui = nullptr; } } void MainWindow::init() { setWindowTitle("CFDPost"); _actionHandler = new ActionEventHandler; initCentralWidget(); initAction(); _eventWidget = new Comp::FITKTabWidget(Comp::FITKTabWidgetType::FITKTab_None, this); _ui->verticalLayout_Event->addWidget(_eventWidget); _eventWidget->hide(); QList actionList = this->findChildren(); for (QAction* action : actionList) { if (action == nullptr)continue; connect(action, SIGNAL(triggered()), _actionHandler, SLOT(execOperator())); } } QAction* MainWindow::createAction(QString actionName, QString iconPath, QString actionTitle) { if (actionName.isEmpty())return nullptr; QAction* action = new QAction(this); action->setObjectName(actionName); action->setIcon(QIcon(iconPath)); action->setToolTip(actionTitle); return action; } QAction * MainWindow::findAction(QString actionName) { return this->findChild(actionName); } RenderWidget * MainWindow::getRenderWidget() { return _renderWidget; } MainTreeWidget * MainWindow::getTreeWidget() { return _treeWidget; } PropertyWidget * MainWindow::getPropertyWidget() { return _propertyWidget; } ToolBarColorMapper * MainWindow::getToolBarColorMapper() { return _colorMapToolBar; } ToolBarAnimation* MainWindow::getToolBarAnimation() { return _animationToolBar; } ToolBarFilter* MainWindow::getToolFilter() { return _filterBar; } ToolBarEvent * MainWindow::getToolEvent() { return _filterEvent; } InformationWidget * MainWindow::getInfoWidget() { return _infoWidget; } Comp::FITKTabWidget * MainWindow::getEventWidget() { return _eventWidget; } void MainWindow::closeEvent(QCloseEvent * event) { emit this->sigMainWindowClose(); QMainWindow::closeEvent(event); } void MainWindow::initCentralWidget() { _treeWidget = new MainTreeWidget(this); _renderWidget = new RenderWidget(this); _infoWidget = new GUI::InformationWidget(this); _propertyWidget = new GUI::PropertyWidget(this); _ui->treeLayout->addWidget(_treeWidget); _ui->propertyLayout->addWidget(_propertyWidget); _ui->verticalLayout_Render->addWidget(_renderWidget); _ui->infoLayout->addWidget(_infoWidget); } void MainWindow::initAction() { QAction* action = nullptr; QToolBar* tooBar = new QToolBar(this); addToolBar(tooBar); action = createAction("actionOpen", "://icons/open.png", QString(tr("open"))); tooBar->addAction(action); action = findAction("actionSaveImage"); if (action)tooBar->addAction(action); action = createAction("actionVideo", "://icons/video.png", QString(tr("open"))); tooBar->addAction(action); QToolBar* viewBar = new QToolBar(this); addToolBar(viewBar); action = findAction("actionViewAuto"); if (action) viewBar->addAction(action); action = findAction("actionViewFront"); if (action) viewBar->addAction(action); action = findAction("actionViewBack"); if (action) viewBar->addAction(action); action = findAction("actionViewTop"); if (action) viewBar->addAction(action); action = findAction("actionViewBottom"); if (action) viewBar->addAction(action); action = findAction("actionViewLeft"); if (action) viewBar->addAction(action); action = findAction("actionViewRight"); if (action) viewBar->addAction(action); action = findAction("actionViewIso"); if (action) viewBar->addAction(action); viewBar->addSeparator(); _animationToolBar = new ToolBarAnimation(this); this->addToolBar(_animationToolBar); this->addToolBarBreak(Qt::TopToolBarArea); _colorMapToolBar = new ToolBarColorMapper(this); this->addToolBar(_colorMapToolBar); _filterBar = new ToolBarFilter(this); this->addToolBar(_filterBar); _filterEvent = new ToolBarEvent(this); this->addToolBar(_filterEvent); } }