summaryrefslogtreecommitdiff
path: root/src/tabwindow
diff options
context:
space:
mode:
authorAndrea Diamantini <adjam7@gmail.com>2013-02-17 17:30:11 +0100
committerAndrea Diamantini <adjam7@gmail.com>2013-02-17 17:30:11 +0100
commitb38f87b277617ccfea6e133e0965f2a6a4ad8caf (patch)
tree347fa2ce57fafe2e732e3d8ec37b83474cf4f5b0 /src/tabwindow
parentFix about pages title (diff)
downloadrekonq-b38f87b277617ccfea6e133e0965f2a6a4ad8caf.tar.xz
Closed Tabs page return, first bits
Restore about:closedTabs page and the ability to open back closed tabs. What's missing then? To load back on restart the closed tabs saved...
Diffstat (limited to 'src/tabwindow')
-rw-r--r--src/tabwindow/tabwindow.cpp43
-rw-r--r--src/tabwindow/tabwindow.h5
2 files changed, 37 insertions, 11 deletions
diff --git a/src/tabwindow/tabwindow.cpp b/src/tabwindow/tabwindow.cpp
index acf84948..6865ca97 100644
--- a/src/tabwindow/tabwindow.cpp
+++ b/src/tabwindow/tabwindow.cpp
@@ -252,6 +252,12 @@ WebWindow *TabWindow::webWindow(int index) const
}
+QList<TabHistory> TabWindow::recentlyClosedTabs()
+{
+ return m_recentlyClosedTabs;
+}
+
+
WebWindow *TabWindow::prepareNewTab(WebPage *page)
{
WebWindow *tab = new WebWindow(this, _isPrivateBrowsing, page);
@@ -707,28 +713,45 @@ void TabWindow::bookmarkAllTabs()
void TabWindow::restoreLastClosedTab()
{
+ restoreClosedTab(0);
+}
+
+
+void TabWindow::restoreClosedTab(int index, bool inNewTab)
+{
if (m_recentlyClosedTabs.isEmpty())
return;
-
- TabHistory history = m_recentlyClosedTabs.takeAt(0);
+
+ if (index >= m_recentlyClosedTabs.count())
+ return;
+
+ TabHistory history = m_recentlyClosedTabs.takeAt(index);
QUrl u = QUrl(history.url);
int restorePosition = history.position;
- WebWindow *tab = prepareNewTab();
-
- if (restorePosition < count())
- insertTab(restorePosition, tab, i18n("restored tab"));
- else
- addTab(tab, i18n("restored tab"));
+ WebWindow *tab;
- setCurrentWidget(tab);
+ if (inNewTab)
+ {
+ tab = prepareNewTab();
+ if (restorePosition < count())
+ insertTab(restorePosition, tab, i18n("restored tab"));
+ else
+ addTab(tab, i18n("restored tab"));
+ setCurrentWidget(tab);
+ }
+ else
+ {
+ tab = currentWebWindow();
+ }
+
tab->load(u);
// just to get sure...
- m_recentlyClosedTabs.removeAll(history);
+ m_recentlyClosedTabs.removeAll(history);
}
diff --git a/src/tabwindow/tabwindow.h b/src/tabwindow/tabwindow.h
index a273d3b1..a1e369d9 100644
--- a/src/tabwindow/tabwindow.h
+++ b/src/tabwindow/tabwindow.h
@@ -73,6 +73,9 @@ public:
virtual KActionCollection *actionCollection() const;
QAction *actionByName(const QString &name);
+ QList<TabHistory> recentlyClosedTabs();
+ void restoreClosedTab(int index, bool inNewTab = true);
+
public Q_SLOTS:
void loadUrl(const KUrl &, Rekonq::OpenType type = Rekonq::CurrentTab, TabHistory *history = 0);
void newTab(WebPage *page = 0);
@@ -115,7 +118,7 @@ private Q_SLOTS:
void previousTab();
void restoreLastClosedTab();
-
+
void setFullScreen(bool);
void loadFavorite(const int);