You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

184 lines
5.1 KiB
C++

#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 <QComboBox>
#include <QDebug>
#include <QLabel>
#include <QSpinBox>
#include <QToolBar>
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<QAction*> actionList = this->findChildren<QAction*>();
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<QAction*>(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);
}
}