Hi,
I've attached the changes that introduce a first version, adding actions for
open recently closed tabs.
Even its really basic, feel free to add comments ;-)
Cheers,
Johannes
diff --git a/src/mainview.cpp b/src/mainview.cpp
index fa834af..020b6db 100644
--- a/src/mainview.cpp
+++ b/src/mainview.cpp
@@ -639,6 +639,14 @@ void MainView::previousTab()
setCurrentIndex(next);
}
+void MainView::openClosedTab()
+{
+ if (m_recentlyClosedTabs.size() >= 1) {
+ WebTab *w = newWebTab();
+ w->view()->setUrl(m_recentlyClosedTabs.at(0).url);
+ }
+}
+
QLabel *MainView::animatedLoading(int index, bool addMovie)
{
diff --git a/src/mainview.h b/src/mainview.h
index 367fcb1..12bf5c4 100644
--- a/src/mainview.h
+++ b/src/mainview.h
@@ -130,6 +130,7 @@ public slots:
void nextTab();
void previousTab();
void detachTab(int index = -1);
+ void openClosedTab();
// WEB slot actions
void webReload();
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 03a6194..9134b3e 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -374,6 +374,15 @@ void MainWindow::setupActions()
a->setShortcuts(QApplication::isRightToLeft() ? KStandardShortcut::tabNext() : KStandardShortcut::tabPrev());
actionCollection()->addAction(QLatin1String("show_prev_tab"), a);
connect(a, SIGNAL(triggered(bool)), m_view, SLOT(previousTab()));
+
+ a = new KAction(KIcon("tab-new"), i18n("Open Closed Tab"), this);
+ actionCollection()->addAction(QLatin1String("open_closed_tab"), a);
+ connect(a, SIGNAL(triggered(bool)), m_view, SLOT(openClosedTab()));
+
+ // 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);
@@ -590,6 +599,26 @@ void MainWindow::updateActions()
QAction *historyForwardAction = actionByName(KStandardAction::name(KStandardAction::Forward));
historyForwardAction->setEnabled(currentTab()->view()->history()->canGoForward());
+
+ QAction *openClosedTabsAction = actionByName(QLatin1String("open_closed_tab"));
+ 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(KIcon("tab-new"), item.title, this);
+ connect(a, SIGNAL(triggered(bool)), m_view, SLOT(openClosedTab()));
+ am->addAction(a);
+ }
}
diff --git a/src/tabbar.cpp b/src/tabbar.cpp
index a2f269c..42c952c 100644
--- a/src/tabbar.cpp
+++ b/src/tabbar.cpp
@@ -273,9 +273,10 @@ void TabBar::contextMenu(int tab, const QPoint &pos)
menu.addAction(mainWindow->actionByName(QLatin1String("new_tab")));
menu.addAction( mainWindow->actionByName("clone_tab") );
-
if(count() > 1)
menu.addAction( mainWindow->actionByName("detach_tab") );
+ menu.addAction(mainWindow->actionByName(QLatin1String("open_closed_tab")));
+ menu.addAction(mainWindow->actionByName(QLatin1String("closed_tab_menu")));
menu.addSeparator();
menu.addAction( mainWindow->actionByName("close_tab") );
menu.addAction( mainWindow->actionByName("close_other_tabs") );
@@ -293,6 +294,8 @@ void TabBar::emptyAreaContextMenu(const QPoint &pos)
MainWindow *mainWindow = Application::instance()->mainWindow();
menu.addAction(mainWindow->actionByName(QLatin1String("new_tab")));
+ menu.addAction(mainWindow->actionByName(QLatin1String("open_closed_tab")));
+ menu.addAction(mainWindow->actionByName(QLatin1String("closed_tab_menu")));
menu.addSeparator();
menu.addAction( mainWindow->actionByName("reload_all_tabs") );
_______________________________________________
rekonq mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/rekonq