diff --git a/include/dashboardFrame.h b/include/dashboardFrame.h index 3e80689..6478d1d 100644 --- a/include/dashboardFrame.h +++ b/include/dashboardFrame.h @@ -46,6 +46,7 @@ public: protected: bool eventFilter(QObject*, QEvent*) override; + void resizeEvent(QResizeEvent*) override; void dragEnterEvent(QDragEnterEvent* event) override; //void dragMoveEvent(QDragMoveEvent* event) override; void dragLeaveEvent(QDragLeaveEvent* event) override; diff --git a/include/dvieMainWindow.h b/include/dvieMainWindow.h index e7fc637..f852e9f 100644 --- a/include/dvieMainWindow.h +++ b/include/dvieMainWindow.h @@ -30,6 +30,9 @@ public: void creatSecondaryWindowAndAddDashboard(QPoint, Dashboard*); void removeSecondartWindow(QString&); +protected: + virtual void resizeEvent(QResizeEvent*) override; + private: Ui::dvieMainWindow* ui; TransparentMask* m_pTransparentMask; diff --git a/include/dvieSecondaryWindow.h b/include/dvieSecondaryWindow.h index 928d1f8..48cdd82 100644 --- a/include/dvieSecondaryWindow.h +++ b/include/dvieSecondaryWindow.h @@ -33,6 +33,7 @@ public: protected: virtual void closeEvent(QCloseEvent*) override; + virtual void resizeEvent(QResizeEvent*) override; private: Ui::dvieSecondaryWindow* ui; diff --git a/source/dashboardFrame.cpp b/source/dashboardFrame.cpp index 0bf43b9..30b1454 100644 --- a/source/dashboardFrame.cpp +++ b/source/dashboardFrame.cpp @@ -81,6 +81,28 @@ bool DashboardFrame::eventFilter(QObject* obj, QEvent* event) return QObject::eventFilter(obj, event); } +void DashboardFrame::resizeEvent(QResizeEvent* event) +{ + if(m_pTransparentMask && m_pTransparentMask->isVisible()) + m_pTransparentMask->setGeometry(0, 0, this->width(), this->height()); + + if(m_pMessageDialog && m_pMessageDialog->isVisible()) + { + int nX = (ui->navigationPanel->width() - m_pMessageDialog->width()) * 0.5; + int nY = ui->navigationPanel->y() + ui->navigationPanel->height() * 0.5; + m_pMessageDialog->move(nX, nY); + } + + if(m_pDashboardNamingDialog && m_pDashboardNamingDialog->isVisible()) + { + int nX = (ui->navigationPanel->width() - m_pDashboardNamingDialog->width()) * 0.5; + int nY = ui->navigationPanel->y() + ui->navigationPanel->height() * 0.5; + m_pDashboardNamingDialog->move(nX, nY); + } + + QWidget::resizeEvent(event); +} + void DashboardFrame::dragEnterEvent(QDragEnterEvent* event) { const QMimeData* mimeData = event->mimeData(); @@ -172,7 +194,7 @@ void DashboardFrame::hideTransparentMask() dvieWindow->hideTransparentMask(); } - if(m_pTransparentMask != nullptr && m_pTransparentMask->isVisible()) + if(m_pTransparentMask && m_pTransparentMask->isVisible()) m_pTransparentMask->hide(); } @@ -188,7 +210,7 @@ void DashboardFrame::showMessageDialog(MessageDialogType type,const QString& str m_pMessageDialog->setMessage(type, strTitle, strContent); int nX = (ui->navigationPanel->width() - m_pMessageDialog->width()) * 0.5; int nY = ui->navigationPanel->y() + ui->navigationPanel->height() * 0.5; - m_pMessageDialog->setGeometry(nX, nY, m_pMessageDialog->width(), m_pMessageDialog->height()); + m_pMessageDialog->move(nX, nY); m_pMessageDialog->raise(); if(type == type_question) m_pMessageDialog->exec(); @@ -416,7 +438,7 @@ void DashboardFrame::onBtnClicked_addDashboard() showTransparentMask(); int nX = (ui->navigationPanel->width() - m_pDashboardNamingDialog->width()) * 0.5; int nY = ui->navigationPanel->y() + ui->navigationPanel->height() * 0.5; - m_pDashboardNamingDialog->setGeometry(nX, nY, m_pDashboardNamingDialog->width(), m_pDashboardNamingDialog->height()); + m_pDashboardNamingDialog->move(nX, nY); m_pDashboardNamingDialog->showUsedForCreat(); m_pDashboardNamingDialog->raise(); } diff --git a/source/dvieMainWindow.cpp b/source/dvieMainWindow.cpp index 1b57333..9c9d649 100644 --- a/source/dvieMainWindow.cpp +++ b/source/dvieMainWindow.cpp @@ -24,6 +24,14 @@ DvieMainWindow::~DvieMainWindow() delete ui; } +void DvieMainWindow::resizeEvent(QResizeEvent* event) +{ + if(m_pTransparentMask && m_pTransparentMask->isVisible()) + m_pTransparentMask->setGeometry(ui->topWidget->geometry()); + + QMainWindow::resizeEvent(event); +} + void DvieMainWindow::showTransparentMask() { if(m_pTransparentMask == nullptr) @@ -34,7 +42,7 @@ void DvieMainWindow::showTransparentMask() } void DvieMainWindow::hideTransparentMask() { - if(m_pTransparentMask != nullptr && m_pTransparentMask->isVisible()) + if(m_pTransparentMask && m_pTransparentMask->isVisible()) m_pTransparentMask->hide(); } diff --git a/source/dvieSecondaryWindow.cpp b/source/dvieSecondaryWindow.cpp index 1b4ddb7..026c7ec 100644 --- a/source/dvieSecondaryWindow.cpp +++ b/source/dvieSecondaryWindow.cpp @@ -28,6 +28,22 @@ 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) @@ -38,18 +54,10 @@ void DvieSecondaryWindow::showTransparentMask() } void DvieSecondaryWindow::hideTransparentMask() { - if(m_pTransparentMask != nullptr && m_pTransparentMask->isVisible()) + if(m_pTransparentMask && m_pTransparentMask->isVisible()) m_pTransparentMask->hide(); } -void DvieSecondaryWindow::closeEvent(QCloseEvent* e) -{ - if(m_pMainWindow) - m_pMainWindow->removeSecondartWindow(m_strName); - else - QMainWindow::closeEvent(e); -} - QString DvieSecondaryWindow::name() { return m_strName;