diff --git a/app/mainwindow.h b/app/mainwindow.h --- a/app/mainwindow.h +++ b/app/mainwindow.h @@ -25,7 +25,7 @@ #include -#include +#include #include @@ -49,7 +49,7 @@ } #endif -class MainWindow : public QMainWindow +class MainWindow : public KMainWindow { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.kde.yakuake") @@ -88,12 +88,13 @@ protected: - void paintEvent(QPaintEvent*) Q_DECL_OVERRIDE; - void moveEvent(QMoveEvent*) Q_DECL_OVERRIDE; - void changeEvent(QEvent* event) Q_DECL_OVERRIDE; - bool event(QEvent* event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent*) override; + void moveEvent(QMoveEvent*) override; + void changeEvent(QEvent* event) override; + void closeEvent(QCloseEvent *event) override; + bool event(QEvent* event) override; - virtual bool queryClose(); + virtual bool queryClose() override; private Q_SLOTS: diff --git a/app/mainwindow.cpp b/app/mainwindow.cpp --- a/app/mainwindow.cpp +++ b/app/mainwindow.cpp @@ -72,11 +72,13 @@ MainWindow::MainWindow(QWidget* parent) - : QMainWindow(parent, Qt::CustomizeWindowHint | Qt::FramelessWindowHint) + : KMainWindow(parent, Qt::CustomizeWindowHint | Qt::FramelessWindowHint) { QDBusConnection::sessionBus().registerObject(QStringLiteral("/yakuake/window"), this, QDBusConnection::ExportScriptableSlots); setAttribute(Qt::WA_TranslucentBackground, true); + setAttribute(Qt::WA_DeleteOnClose, false); + setAttribute(Qt::WA_QuitOnClose, true); m_skin = new Skin(); m_menu = new QMenu(this); @@ -222,10 +224,7 @@ warningMessage + QStringLiteral("

") + closeQuestion, xi18nc("@title:window", "Really Quit?"), KStandardGuiItem::quit(), KStandardGuiItem::cancel()); - if (result == KMessageBox::Continue) - return true; - else - return false; + return result != KMessageBox::Cancel; } return true; @@ -995,7 +994,7 @@ height() - m_titleBar->height()); painter.fillRect(rightBorder, m_skin->borderColor()); - QMainWindow::paintEvent(event); + KMainWindow::paintEvent(event); } void MainWindow::moveEvent(QMoveEvent* event) @@ -1009,7 +1008,15 @@ applyWindowGeometry(); } - QMainWindow::moveEvent(event); + KMainWindow::moveEvent(event); +} + +void MainWindow::closeEvent(QCloseEvent *event) +{ + KMainWindow::closeEvent(event); + if (event->isAccepted()) { + QApplication::quit(); + } } void MainWindow::wmActiveWindowChanged() @@ -1053,7 +1060,7 @@ updateWindowHeightMenu(); } - QMainWindow::changeEvent(event); + KMainWindow::changeEvent(event); } bool MainWindow::event(QEvent* event) @@ -1072,7 +1079,7 @@ #endif } - return QMainWindow::event(event); + return KMainWindow::event(event); } void MainWindow::toggleWindowState() diff --git a/app/tabbar.h b/app/tabbar.h --- a/app/tabbar.h +++ b/app/tabbar.h @@ -81,20 +81,20 @@ protected: - void resizeEvent(QResizeEvent*) Q_DECL_OVERRIDE; - void paintEvent(QPaintEvent*) Q_DECL_OVERRIDE; - void wheelEvent(QWheelEvent*) Q_DECL_OVERRIDE; - void keyPressEvent(QKeyEvent*) Q_DECL_OVERRIDE; - void mousePressEvent(QMouseEvent*) Q_DECL_OVERRIDE; - void mouseReleaseEvent(QMouseEvent*) Q_DECL_OVERRIDE; - void mouseMoveEvent(QMouseEvent*) Q_DECL_OVERRIDE; - void dragMoveEvent(QDragMoveEvent*) Q_DECL_OVERRIDE; - void dragEnterEvent(QDragEnterEvent*) Q_DECL_OVERRIDE; - void dragLeaveEvent(QDragLeaveEvent*) Q_DECL_OVERRIDE; - void dropEvent(QDropEvent*) Q_DECL_OVERRIDE; - void mouseDoubleClickEvent(QMouseEvent*) Q_DECL_OVERRIDE; - void contextMenuEvent(QContextMenuEvent*) Q_DECL_OVERRIDE; - void leaveEvent(QEvent*) Q_DECL_OVERRIDE; + void resizeEvent(QResizeEvent*) override; + void paintEvent(QPaintEvent*) override; + void wheelEvent(QWheelEvent*) override; + void keyPressEvent(QKeyEvent*) override; + void mousePressEvent(QMouseEvent*) override; + void mouseReleaseEvent(QMouseEvent*) override; + void mouseMoveEvent(QMouseEvent*) override; + void dragMoveEvent(QDragMoveEvent*) override; + void dragEnterEvent(QDragEnterEvent*) override; + void dragLeaveEvent(QDragLeaveEvent*) override; + void dropEvent(QDropEvent*) override; + void mouseDoubleClickEvent(QMouseEvent*) override; + void contextMenuEvent(QContextMenuEvent*) override; + void leaveEvent(QEvent*) override; void setTabTitleInteractive(int sessionId, const QString& newTitle); diff --git a/app/terminal.h b/app/terminal.h --- a/app/terminal.h +++ b/app/terminal.h @@ -40,7 +40,7 @@ explicit Terminal(QWidget* parent = 0); ~Terminal(); - bool eventFilter(QObject* watched, QEvent* event) Q_DECL_OVERRIDE; + bool eventFilter(QObject* watched, QEvent* event) override; int id() { return m_terminalId; } const QString title() { return m_title; } diff --git a/app/titlebar.h b/app/titlebar.h --- a/app/titlebar.h +++ b/app/titlebar.h @@ -53,8 +53,8 @@ protected: - void resizeEvent(QResizeEvent*) Q_DECL_OVERRIDE; - void paintEvent(QPaintEvent*) Q_DECL_OVERRIDE; + void resizeEvent(QResizeEvent*) override; + void paintEvent(QPaintEvent*) override; private: diff --git a/app/titlebar.cpp b/app/titlebar.cpp --- a/app/titlebar.cpp +++ b/app/titlebar.cpp @@ -61,7 +61,7 @@ m_quitButton->setFocusPolicy(Qt::NoFocus); m_quitButton->setToolTip(xi18nc("@info:tooltip Quits the application", "Quit")); m_quitButton->setWhatsThis(xi18nc("@info:whatsthis", "Quits the application.")); - connect(m_quitButton, SIGNAL(clicked()), qApp, SLOT(quit())); + connect(m_quitButton, SIGNAL(clicked()), mainWindow, SLOT(close())); } TitleBar::~TitleBar() diff --git a/app/visualeventoverlay.h b/app/visualeventoverlay.h --- a/app/visualeventoverlay.h +++ b/app/visualeventoverlay.h @@ -92,9 +92,9 @@ protected: - void showEvent(QShowEvent*) Q_DECL_OVERRIDE; - void hideEvent(QHideEvent*) Q_DECL_OVERRIDE; - void paintEvent(QPaintEvent*) Q_DECL_OVERRIDE; + void showEvent(QShowEvent*) override; + void hideEvent(QHideEvent*) override; + void paintEvent(QPaintEvent*) override; private Q_SLOTS: