Hi,
due to my lack of git experience to request a merge, I've attached the small
patch to add the open closed tabs feature.
Thanks,
Johannes
diff --git a/src/mainview.cpp b/src/mainview.cpp
index 6179af8..70e8598 100644
--- a/src/mainview.cpp
+++ b/src/mainview.cpp
@@ -637,6 +637,22 @@ void MainView::previousTab()
setCurrentIndex(next);
}
+void MainView::openClosedTabs()
+{
+ foreach (HistoryItem item, recentlyClosedTabs())
+ {
+ Application::instance()->loadUrl(item.url, Rekonq::SettingOpenTab);
+ }
+}
+
+void MainView::openClosedTab()
+{
+ KAction *action = qobject_cast<KAction *>(sender());
+ if (action)
+ {
+ Application::instance()->loadUrl(action->data().toString(), Rekonq::SettingOpenTab);
+ }
+}
QLabel *MainView::animatedLoading(int index, bool addMovie)
{
diff --git a/src/mainview.h b/src/mainview.h
index eb5b3e0..6edccc1 100644
--- a/src/mainview.h
+++ b/src/mainview.h
@@ -132,6 +132,8 @@ public slots:
void nextTab();
void previousTab();
void detachTab(int index = -1);
+ void openClosedTabs();
+ void openClosedTab();
// WEB slot actions
void webReload();
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index a598128..d81057b 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -391,6 +391,15 @@ void MainWindow::setupActions()
a->setShortcuts(QApplication::isRightToLeft() ? KStandardShortcut::tabNext() : KStandardShortcut::tabPrev());
actionCollection()->addAction(QL1S("show_prev_tab"), a);
connect(a, SIGNAL(triggered(bool)), m_view, SLOT(previousTab()));
+
+ a = new KAction(KIcon("tab-new"), i18n("Open Closed Tabs"), this);
+ actionCollection()->addAction(QLatin1String("open_closed_tabs"), a);
+ connect(a, SIGNAL(triggered(bool)), m_view, SLOT(openClosedTabs()));
+
+ // Closed Tabs Menu
+ KActionMenu *closedTabsMenu = new KActionMenu(KIcon("tab-new"), i18n("Closed Tabs"), this);
+ closedTabsMenu->setDelayed(false);
+ actionCollection()->addAction(QLatin1String("closed_tab_menu"), closedTabsMenu);
// ============================== Indexed Tab Actions ====================================
a = new KAction(KIcon("tab-close"), i18n("&Close Tab"), this);
@@ -618,6 +627,27 @@ void MainWindow::updateActions()
QAction *historyForwardAction = actionByName(KStandardAction::name(KStandardAction::Forward));
historyForwardAction->setEnabled(currentTab()->view()->history()->canGoForward());
+
+ QAction *openClosedTabsAction = actionByName(QLatin1String("open_closed_tabs"));
+ openClosedTabsAction->setEnabled(mainView()->recentlyClosedTabs().size() > 0);
+
+ // update closed tabs menu
+ KActionMenu *am = dynamic_cast<KActionMenu *>(actionByName(QLatin1String("closed_tab_menu")));
+ if (!am)
+ return;
+
+ am->setEnabled(mainView()->recentlyClosedTabs().size() > 0);
+
+ if (am->menu())
+ am->menu()->clear();
+
+ foreach (HistoryItem item, mainView()->recentlyClosedTabs())
+ {
+ KAction *a = new KAction(Application::icon(item.url), item.title, this);
+ a->setData(item.url);
+ connect(a, SIGNAL(triggered()), m_view, SLOT(openClosedTab()));
+ am->addAction(a);
+ }
}
diff --git a/src/tabbar.cpp b/src/tabbar.cpp
index 2783589..b650d01 100644
--- a/src/tabbar.cpp
+++ b/src/tabbar.cpp
@@ -279,9 +279,10 @@ void TabBar::contextMenu(int tab, const QPoint &pos)
menu.addAction(mainWindow->actionByName( QL1S("new_tab") ));
menu.addAction(mainWindow->actionByName( QL1S("clone_tab") ));
-
if (count() > 1)
menu.addAction(mainWindow->actionByName( QL1S("detach_tab") ));
+ menu.addAction(mainWindow->actionByName(QLatin1String("open_closed_tabs")));
+ menu.addAction(mainWindow->actionByName(QLatin1String("closed_tab_menu")));
menu.addSeparator();
menu.addAction(mainWindow->actionByName( QL1S("close_tab") ));
menu.addAction(mainWindow->actionByName( QL1S("close_other_tabs") ));
@@ -299,6 +300,8 @@ void TabBar::emptyAreaContextMenu(const QPoint &pos)
MainWindow *mainWindow = Application::instance()->mainWindow();
menu.addAction(mainWindow->actionByName( QL1S("new_tab") ));
+ menu.addAction(mainWindow->actionByName(QLatin1String("open_closed_tabs")));
+ menu.addAction(mainWindow->actionByName(QLatin1String("closed_tab_menu")));
menu.addSeparator();
menu.addAction(mainWindow->actionByName( QL1S("reload_all_tabs") ));
_______________________________________________
rekonq mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/rekonq