diff options
| author | Luca Beltrame <[email protected]> | 2014-07-22 15:58:03 +0200 |
|---|---|---|
| committer | Luca Beltrame <[email protected]> | 2014-07-22 15:58:03 +0200 |
| commit | de3e2ae40f626c1368dfd40bace54ef3e7815833 (patch) | |
| tree | e6ff8a7225929ae1002a5756110f228845d3f35b /src | |
| parent | 2b75a555caa81a992a289a13119dca5cce79d4cc (diff) | |
| parent | 9a6950657215f2195001795e21785d276fb20744 (diff) | |
Merge branch 'master' into frameworks
Diffstat (limited to 'src')
| -rw-r--r-- | src/dolphinmainwindow.cpp | 14 | ||||
| -rw-r--r-- | src/dolphinmainwindow.h | 2 | ||||
| -rw-r--r-- | src/dolphinrecenttabsmenu.cpp | 16 | ||||
| -rw-r--r-- | src/dolphinrecenttabsmenu.h | 2 | ||||
| -rw-r--r-- | src/dolphinui.rc | 1 |
5 files changed, 31 insertions, 4 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index fce99bb58..84303fda3 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -1225,6 +1225,11 @@ void DolphinMainWindow::activeViewChanged() setActiveViewContainer(tabPage->activeViewContainer()); } +void DolphinMainWindow::closedTabsCountChanged(unsigned int count) +{ + actionCollection()->action("undo_close_tab")->setEnabled(count > 0); +} + void DolphinMainWindow::setActiveViewContainer(DolphinViewContainer* viewContainer) { Q_ASSERT(viewContainer); @@ -1354,6 +1359,15 @@ void DolphinMainWindow::setupActions() recentTabsMenu, SLOT(rememberClosedTab(KUrl,KUrl))); connect(recentTabsMenu, SIGNAL(restoreClosedTab(KUrl,KUrl)), this, SLOT(openNewActivatedTab(KUrl,KUrl))); + connect(recentTabsMenu, SIGNAL(closedTabsCountChanged(uint)), + this, SLOT(closedTabsCountChanged(uint))); + + KAction* undoCloseTab = actionCollection()->addAction("undo_close_tab"); + undoCloseTab->setText(i18nc("@action:inmenu File", "Undo close tab")); + undoCloseTab->setShortcut(Qt::CTRL | Qt::SHIFT | Qt::Key_T); + undoCloseTab->setIcon(KIcon("edit-undo")); + undoCloseTab->setEnabled(false); + connect(undoCloseTab, SIGNAL(triggered()), recentTabsMenu, SLOT(undoCloseTab())); KStandardAction::forward(this, SLOT(goForward()), actionCollection()); KStandardAction::up(this, SLOT(goUp()), actionCollection()); diff --git a/src/dolphinmainwindow.h b/src/dolphinmainwindow.h index 4816837fc..d5181711c 100644 --- a/src/dolphinmainwindow.h +++ b/src/dolphinmainwindow.h @@ -469,6 +469,8 @@ private slots: void activeViewChanged(); + void closedTabsCountChanged(unsigned int count); + private: /** * Activates the given view, which means that diff --git a/src/dolphinrecenttabsmenu.cpp b/src/dolphinrecenttabsmenu.cpp index d0b694c03..0f90e634b 100644 --- a/src/dolphinrecenttabsmenu.cpp +++ b/src/dolphinrecenttabsmenu.cpp @@ -60,7 +60,7 @@ void DolphinRecentTabsMenu::rememberClosedTab(const KUrl& primaryUrl, const KUrl } else { insertAction(menu()->actions().at(2), action); } - + emit closedTabsCountChanged(menu()->actions().size() - 2); // Assure that only up to 6 closed tabs are shown in the menu. // 8 because of clear action + separator + 6 closed tabs if (menu()->actions().size() > 8) { @@ -70,6 +70,12 @@ void DolphinRecentTabsMenu::rememberClosedTab(const KUrl& primaryUrl, const KUrl KAcceleratorManager::manage(menu()); } +void DolphinRecentTabsMenu::undoCloseTab() +{ + Q_ASSERT(menu()->actions().size() > 2); + handleAction(menu()->actions().at(2)); +} + void DolphinRecentTabsMenu::handleAction(QAction* action) { if (action == m_clearListAction) { @@ -80,14 +86,16 @@ void DolphinRecentTabsMenu::handleAction(QAction* action) for (int i = 2; i < count; ++i) { removeAction(actions.at(i)); } + emit closedTabsCountChanged(0); } else { const KUrl::List urls = action->data().value<KUrl::List>(); - if (urls.count() == 2) { - emit restoreClosedTab(urls.first(), urls.last()); - } removeAction(action); delete action; action = 0; + if (urls.count() == 2) { + emit restoreClosedTab(urls.first(), urls.last()); + } + emit closedTabsCountChanged(menu()->actions().size() - 2); } if (menu()->actions().count() <= 2) { diff --git a/src/dolphinrecenttabsmenu.h b/src/dolphinrecenttabsmenu.h index 34d41530b..b5acc735e 100644 --- a/src/dolphinrecenttabsmenu.h +++ b/src/dolphinrecenttabsmenu.h @@ -35,9 +35,11 @@ public: public slots: void rememberClosedTab(const KUrl& primaryUrl, const KUrl& secondaryUrl); + void undoCloseTab(); signals: void restoreClosedTab(const KUrl& primaryUrl, const KUrl& secondaryUrl); + void closedTabsCountChanged(unsigned int count); private slots: void handleAction(QAction* action); diff --git a/src/dolphinui.rc b/src/dolphinui.rc index 52826bb43..f197af402 100644 --- a/src/dolphinui.rc +++ b/src/dolphinui.rc @@ -6,6 +6,7 @@ <Action name="new_window" /> <Action name="new_tab" /> <Action name="close_tab" /> + <Action name="undo_close_tab" /> <Separator/> <Action name="rename" /> <Action name="move_to_trash" /> |
