diff options
| author | Andrea Diamantini <adjam7@gmail.com> | 2010-05-11 11:20:24 +0200 | 
|---|---|---|
| committer | Andrea Diamantini <adjam7@gmail.com> | 2010-05-11 11:20:24 +0200 | 
| commit | a32b1a830acaaeda5caa070d046e5676fa8e9734 (patch) | |
| tree | 417efb2d3e8976a72d52a0a8bd18b87a40318d8d /src | |
| parent | Add "days" word to better explain the adblock update interval (diff) | |
| download | rekonq-a32b1a830acaaeda5caa070d046e5676fa8e9734.tar.xz | |
(Re)-open closed tabs
tabbar actions & CTRL + SHIFT + T shortcut for the last
Johannes Zellner's patch. Thanks :)
Diffstat (limited to 'src')
| -rw-r--r-- | src/mainview.cpp | 16 | ||||
| -rw-r--r-- | src/mainview.h | 2 | ||||
| -rw-r--r-- | src/mainwindow.cpp | 31 | ||||
| -rw-r--r-- | src/tabbar.cpp | 5 | 
4 files changed, 53 insertions, 1 deletions
diff --git a/src/mainview.cpp b/src/mainview.cpp index 6179af80..e703976d 100644 --- a/src/mainview.cpp +++ b/src/mainview.cpp @@ -637,6 +637,22 @@ void MainView::previousTab()      setCurrentIndex(next);  } +void MainView::openClosedTabs() +{ +    foreach (const HistoryItem &item, recentlyClosedTabs()) +    { +        Application::instance()->loadUrl( KUrl(item.url), Rekonq::SettingOpenTab); +    } +} + +void MainView::openClosedTab() +{ +    KAction *action = qobject_cast<KAction *>(sender()); +    if (action) +    { +        Application::instance()->loadUrl(action->data().toUrl(), Rekonq::SettingOpenTab); +    } +}  QLabel *MainView::animatedLoading(int index, bool addMovie)  { diff --git a/src/mainview.h b/src/mainview.h index eb5b3e02..6edccc15 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 ef665cc7..128648bf 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -393,6 +393,16 @@ 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); +    a->setShortcut(KShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_T)); +    actionCollection()->addAction(QL1S("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(QL1S("closed_tab_menu"), closedTabsMenu);      // ============================== Indexed Tab Actions ====================================      a = new KAction(KIcon("tab-close"), i18n("&Close Tab"), this); @@ -634,6 +644,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 27835892..1274d813 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( QL1S("open_closed_tabs") )); +    menu.addAction(mainWindow->actionByName( QL1S("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( QL1S("open_closed_tabs") )); +    menu.addAction(mainWindow->actionByName( QL1S("closed_tab_menu") ));      menu.addSeparator();      menu.addAction(mainWindow->actionByName( QL1S("reload_all_tabs") ));  | 
