From 8561c1b43a506ac4ead17734c20cc55ce7cec666 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Mon, 25 Oct 2010 04:25:36 +0200 Subject: Fastest last tab recover :) In fact, the tab is not really deleted, but just saved somewhere to fastly restore it, having again history and so on.. --- src/mainview.cpp | 20 +++++++++++++++++++- src/mainview.h | 2 ++ 2 files changed, 21 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/mainview.cpp b/src/mainview.cpp index beaf4e21..325afb4c 100644 --- a/src/mainview.cpp +++ b/src/mainview.cpp @@ -63,6 +63,7 @@ MainView::MainView(MainWindow *parent) , m_addTabButton(0) , m_currentTabIndex(0) , m_parentWindow(parent) + , _lastClosedTab(0) { // setting tabbar TabBar *tabBar = new TabBar(this); @@ -100,6 +101,7 @@ MainView::~MainView() { delete _widgetBar; delete m_addTabButton; + delete _lastClosedTab; } @@ -500,7 +502,10 @@ void MainView::closeTab(int index, bool del) if (del) { - tabToClose->deleteLater(); + if(_lastClosedTab) + _lastClosedTab->deleteLater(); + _lastClosedTab = tabToClose; +// tabToClose->deleteLater(); } emit tabsChanged(); @@ -634,6 +639,19 @@ void MainView::openLastClosedTab() return; const HistoryItem item = m_recentlyClosedTabs.takeFirst(); + + // if there is a tab yet loaded, use it + if(_lastClosedTab) + { + addTab(_lastClosedTab, _lastClosedTab->view()->title() ); + _widgetBar->addWidget(_lastClosedTab->urlBar()); + updateTabBar(); + emit tabsChanged(); + + _lastClosedTab = 0; + return; + } + Application::instance()->loadUrl(KUrl(item.url), Rekonq::NewTab); } diff --git a/src/mainview.h b/src/mainview.h index 29162dd1..6ef40ac7 100644 --- a/src/mainview.h +++ b/src/mainview.h @@ -189,6 +189,8 @@ private: QList m_recentlyClosedTabs; MainWindow *m_parentWindow; + + WebTab *_lastClosedTab; }; #endif // MAINVIEW_H -- cgit v1.2.1