diff options
-rw-r--r-- | src/mainwindow.cpp | 34 | ||||
-rw-r--r-- | src/mainwindow.h | 2 |
2 files changed, 36 insertions, 0 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index efc6e3c7..c56dcf76 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1399,3 +1399,37 @@ void MainWindow::enableNetworkAnalysis(bool b) currentTab()->page()->enableNetworkAnalyzer(b); m_analyzerPanel->toggle(b); } + + +bool MainWindow::queryClose() +{ + if (m_view->count() > 1) + { + int answer = KMessageBox::questionYesNoCancel( + this, + i18np("Are you sure you want to close the window?\n" "You have 1 tab open", + "Are you sure you want to close the window?\n" "You have %1 tabs open" , + m_view->count()), + i18n("Are you sure you want to close the window?"), + KStandardGuiItem::quit(), + KGuiItem(i18n("C&lose Current Tab"), KIcon("tab-close")), + KStandardGuiItem::cancel(), + "confirmClosingMultipleTabs" + ); + + switch (answer) + { + case KMessageBox::Yes: + // Quit + return true; + + case KMessageBox::No: + // Close only the current tab + m_view->closeTab(); + + default: + return false; + } + } + return true; +} diff --git a/src/mainwindow.h b/src/mainwindow.h index d8f6114f..1f6c6931 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -115,6 +115,8 @@ protected: */ void keyPressEvent(QKeyEvent *event); + bool queryClose(); + private slots: void postLaunch(); void browserLoading(bool); |