PowerMaster/source/dvieSecondaryWindow.cpp

90 lines
2.2 KiB
C++

#include "dvieSecondaryWindow.h"
#include "./ui_dvieSecondaryWindow.h"
#include "transparentMask.h"
#include "dvieMainWindow.h"
#include "dashboardFrame.h"
#include <QCloseEvent>
DvieSecondaryWindow::DvieSecondaryWindow(const QString& strName, QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::dvieSecondaryWindow)
, m_pMainWindow(nullptr)
, m_pTransparentMask(nullptr)
, m_pDashboardFrame(nullptr)
{
ui->setupUi(this);
setProperty("windowType", "secondary");
m_strName = strName;
QString strDashboard = strName + "_dashboardFrame";
m_pDashboardFrame = new DashboardFrame(strDashboard, dashboardFrame::ft_secondary, this);
ui->centralLayout->addWidget(m_pDashboardFrame);
}
DvieSecondaryWindow::~DvieSecondaryWindow()
{
delete ui;
}
void DvieSecondaryWindow::closeEvent(QCloseEvent* e)
{
if(m_pMainWindow)
m_pMainWindow->removeSecondartWindow(m_strName);
else
QMainWindow::closeEvent(e);
}
void DvieSecondaryWindow::resizeEvent(QResizeEvent* event)
{
if(m_pTransparentMask && m_pTransparentMask->isVisible())
m_pTransparentMask->setGeometry(ui->topWidget->geometry());
QMainWindow::resizeEvent(event);
}
void DvieSecondaryWindow::showTransparentMask()
{
if(m_pTransparentMask == nullptr)
m_pTransparentMask = new TransparentMask(this);
m_pTransparentMask->setGeometry(ui->topWidget->geometry());
m_pTransparentMask->show();
}
void DvieSecondaryWindow::hideTransparentMask()
{
if(m_pTransparentMask && m_pTransparentMask->isVisible())
m_pTransparentMask->hide();
}
QString DvieSecondaryWindow::name()
{
return m_strName;
}
DashboardFrame* DvieSecondaryWindow::dashboardFrame()
{
return m_pDashboardFrame;
}
DashboardFrame* DvieSecondaryWindow::getDashboardFrame(const QString& strName)
{
if(m_pMainWindow)
return m_pMainWindow->getDashboardFrame(strName);
else
return nullptr;
}
void DvieSecondaryWindow::setMainWindow(DvieMainWindow* mainWindow)
{
m_pMainWindow = mainWindow;
}
void DvieSecondaryWindow::creatSecondaryWindowAndAddDashboard(QPoint pos, Dashboard* dashboard)
{
if(m_pMainWindow)
m_pMainWindow->creatSecondaryWindowAndAddDashboard(pos, dashboard);
}