diff --git a/src/app/qt/element/QtMainWindow.cpp b/src/app/qt/element/QtMainWindow.cpp index 84ac7a13..e4a56b10 100644 --- a/src/app/qt/element/QtMainWindow.cpp +++ b/src/app/qt/element/QtMainWindow.cpp @@ -1,6 +1,6 @@ #include "qt/element/QtMainWindow.h" -#include +#include #include #include #include @@ -21,8 +21,8 @@ QtMainWindow::QtMainWindow() setCentralWidget(nullptr); setupProjectMenu(); - setupFindMenu(); setupViewMenu(); + setupFindMenu(); setupHelpMenu(); } @@ -76,6 +76,17 @@ void QtMainWindow::find() MessageFind().dispatch(); } +void QtMainWindow::closeWindow() +{ + QApplication* app = dynamic_cast(QCoreApplication::instance()); + + QWidget* activeWindow = app->activeWindow(); + if (activeWindow) + { + activeWindow->close(); + } +} + void QtMainWindow::refresh() { MessageRefresh().dispatch(); @@ -176,6 +187,15 @@ void QtMainWindow::setupProjectMenu() menu->addAction(tr("E&xit"), QCoreApplication::instance(), SLOT(quit()), QKeySequence::Quit); } +void QtMainWindow::setupViewMenu() +{ + QMenu *menu = new QMenu(tr("&View"), this); + menuBar()->addMenu(menu); + + menu->addAction(tr("&Close Window"), this, SLOT(closeWindow()), QKeySequence::Close); + menu->addAction(tr("&Refresh"), this, SLOT(refresh()), QKeySequence::Refresh); +} + void QtMainWindow::setupFindMenu() { QMenu *menu = new QMenu(tr("&Find"), this); @@ -184,14 +204,6 @@ void QtMainWindow::setupFindMenu() menu->addAction(tr("&Find"), this, SLOT(find()), QKeySequence::Find); } -void QtMainWindow::setupViewMenu() -{ - QMenu *menu = new QMenu(tr("&View"), this); - menuBar()->addMenu(menu); - - menu->addAction(tr("&Refresh"), this, SLOT(refresh()), QKeySequence::Refresh); -} - void QtMainWindow::setupHelpMenu() { QMenu *menu = new QMenu(tr("&Help"), this); diff --git a/src/app/qt/element/QtMainWindow.h b/src/app/qt/element/QtMainWindow.h index 227e374a..4fee06a9 100644 --- a/src/app/qt/element/QtMainWindow.h +++ b/src/app/qt/element/QtMainWindow.h @@ -31,12 +31,13 @@ public slots: void newProject(); void openProject(const QString &path = QString()); void find(); + void closeWindow(); void refresh(); private: void setupProjectMenu(); - void setupFindMenu(); void setupViewMenu(); + void setupFindMenu(); void setupHelpMenu(); QDockWidget* getDockWidgetForView(View* view) const;