summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mainwindow.cpp34
-rw-r--r--src/mainwindow.h2
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);