From b35c6e35d9cea978e57838ccc95779a25d048fb4 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Wed, 13 Mar 2013 16:34:34 +0100 Subject: Restore a small portion of (un)ported code Close window if option says so BUG: 316637 --- src/tabwindow/rekonqwindow.cpp | 4 +++- src/tabwindow/tabwidget.cpp | 7 ++++++- src/tabwindow/tabwidget.h | 3 +++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/tabwindow/rekonqwindow.cpp b/src/tabwindow/rekonqwindow.cpp index a14dcf15..0e6515bd 100644 --- a/src/tabwindow/rekonqwindow.cpp +++ b/src/tabwindow/rekonqwindow.cpp @@ -91,9 +91,11 @@ void RekonqWindow::init() l->addWidget(_splitter); - // fix focus handling setFocusProxy(_tabWidget); + + // signals + connect(_tabWidget, SIGNAL(closeWindow()), this, SLOT(close())); } // -------------------------------------------------------------------------------------------------- diff --git a/src/tabwindow/tabwidget.cpp b/src/tabwindow/tabwidget.cpp index 322c45e1..bdc7a47a 100644 --- a/src/tabwindow/tabwidget.cpp +++ b/src/tabwindow/tabwidget.cpp @@ -621,7 +621,12 @@ void TabWidget::closeTab(int index, bool del) // what to do if there is just one tab... if (count() == 1) { - kDebug() << "CANNOT CLOSE WINDOW FROM HERE..."; + if (ReKonfig::lastTabClosesWindow()) + { + emit closeWindow(); + return; + } + currentWebWindow()->load(KUrl("about:home")); return; } diff --git a/src/tabwindow/tabwidget.h b/src/tabwindow/tabwidget.h index 9c79df11..2718904c 100644 --- a/src/tabwindow/tabwidget.h +++ b/src/tabwindow/tabwidget.h @@ -86,6 +86,9 @@ public Q_SLOTS: void loadUrl(const KUrl &, Rekonq::OpenType type = Rekonq::CurrentTab, TabHistory *history = 0); void newTab(WebPage *page = 0); +Q_SIGNALS: + void closeWindow(); + private: /** * Prepares the new WebWindow to be open -- cgit v1.2.1