ui: Added close window shortcut and menu action to close the active window

This commit is contained in:
Eberhard Graether
2014-07-28 02:33:08 +02:00
parent 95929db6e0
commit ecd17c17a0
2 changed files with 24 additions and 11 deletions
+22 -10
View File
@@ -1,6 +1,6 @@
#include "qt/element/QtMainWindow.h" #include "qt/element/QtMainWindow.h"
#include <QCoreApplication> #include <QApplication>
#include <QFileDialog> #include <QFileDialog>
#include <QDockWidget> #include <QDockWidget>
#include <QMenuBar> #include <QMenuBar>
@@ -21,8 +21,8 @@ QtMainWindow::QtMainWindow()
setCentralWidget(nullptr); setCentralWidget(nullptr);
setupProjectMenu(); setupProjectMenu();
setupFindMenu();
setupViewMenu(); setupViewMenu();
setupFindMenu();
setupHelpMenu(); setupHelpMenu();
} }
@@ -76,6 +76,17 @@ void QtMainWindow::find()
MessageFind().dispatch(); MessageFind().dispatch();
} }
void QtMainWindow::closeWindow()
{
QApplication* app = dynamic_cast<QApplication*>(QCoreApplication::instance());
QWidget* activeWindow = app->activeWindow();
if (activeWindow)
{
activeWindow->close();
}
}
void QtMainWindow::refresh() void QtMainWindow::refresh()
{ {
MessageRefresh().dispatch(); MessageRefresh().dispatch();
@@ -176,6 +187,15 @@ void QtMainWindow::setupProjectMenu()
menu->addAction(tr("E&xit"), QCoreApplication::instance(), SLOT(quit()), QKeySequence::Quit); 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() void QtMainWindow::setupFindMenu()
{ {
QMenu *menu = new QMenu(tr("&Find"), this); QMenu *menu = new QMenu(tr("&Find"), this);
@@ -184,14 +204,6 @@ void QtMainWindow::setupFindMenu()
menu->addAction(tr("&Find"), this, SLOT(find()), QKeySequence::Find); 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() void QtMainWindow::setupHelpMenu()
{ {
QMenu *menu = new QMenu(tr("&Help"), this); QMenu *menu = new QMenu(tr("&Help"), this);
+2 -1
View File
@@ -31,12 +31,13 @@ public slots:
void newProject(); void newProject();
void openProject(const QString &path = QString()); void openProject(const QString &path = QString());
void find(); void find();
void closeWindow();
void refresh(); void refresh();
private: private:
void setupProjectMenu(); void setupProjectMenu();
void setupFindMenu();
void setupViewMenu(); void setupViewMenu();
void setupFindMenu();
void setupHelpMenu(); void setupHelpMenu();
QDockWidget* getDockWidgetForView(View* view) const; QDockWidget* getDockWidgetForView(View* view) const;