┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphinmainwindow.cpp
diff options
context:
space:
mode:
authorAlex Miranda <[email protected]>2019-10-13 16:37:00 +0200
committerElvis Angelaccio <[email protected]>2019-10-13 16:41:00 +0200
commite04ec8601f3771aa7ce98d9d1de34e332f26c103 (patch)
treef11990490628100944e5d57b00dd0042b51c8098 /src/dolphinmainwindow.cpp
parente7de9862022a08e1dd9204f0acd6329ac7bf5353 (diff)
Add actions for switching to a specific tab
Summary: Add actions to switch to each of the first 9 tabs and another action to switch to the last tab. This feature makes it much easier to quickly switch between tabs just like you normally would be able to when using a web browser or other applications. Reviewers: #vdg, #dolphin, ngraham, elvisangelaccio Reviewed By: #vdg, #dolphin, ngraham Subscribers: meven, ngraham, elvisangelaccio, kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D24353
Diffstat (limited to 'src/dolphinmainwindow.cpp')
-rw-r--r--src/dolphinmainwindow.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index ce2013798..ce1746d2b 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -93,6 +93,8 @@ namespace {
const int CurrentDolphinVersion = 200;
// The maximum number of entries in the back/forward popup menu
const int MaxNumberOfNavigationentries = 12;
+ // The maximum number of "Activate Tab" shortcuts
+ const int MaxActivateTabShortcuts = 9;
}
DolphinMainWindow::DolphinMainWindow() :
@@ -1178,6 +1180,10 @@ void DolphinMainWindow::activeViewChanged(DolphinViewContainer* viewContainer)
void DolphinMainWindow::tabCountChanged(int count)
{
const bool enableTabActions = (count > 1);
+ for (int i = 0; i < MaxActivateTabShortcuts; ++i) {
+ actionCollection()->action(QStringLiteral("activate_tab_%1").arg(i))->setEnabled(enableTabActions);
+ }
+ actionCollection()->action(QStringLiteral("activate_last_tab"))->setEnabled(enableTabActions);
actionCollection()->action(QStringLiteral("activate_next_tab"))->setEnabled(enableTabActions);
actionCollection()->action(QStringLiteral("activate_prev_tab"))->setEnabled(enableTabActions);
}
@@ -1503,6 +1509,24 @@ void DolphinMainWindow::setupActions()
QList<QKeySequence> prevTabKeys = KStandardShortcut::tabPrev();
prevTabKeys.append(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_Tab));
+ for (int i = 0; i < MaxActivateTabShortcuts; ++i) {
+ QAction* activateTab = actionCollection()->addAction(QStringLiteral("activate_tab_%1").arg(i));
+ activateTab->setText(i18nc("@action:inmenu", "Activate Tab %1", i + 1));
+ activateTab->setEnabled(false);
+ connect(activateTab, &QAction::triggered, this, [this, i]() { m_tabWidget->activateTab(i); });
+
+ // only add default shortcuts for the first 9 tabs regardless of MaxActivateTabShortcuts
+ if (i < 9) {
+ actionCollection()->setDefaultShortcut(activateTab, QStringLiteral("Alt+%1").arg(i + 1));
+ }
+ }
+
+ QAction* activateLastTab = actionCollection()->addAction(QStringLiteral("activate_last_tab"));
+ activateLastTab->setText(i18nc("@action:inmenu", "Activate Last Tab"));
+ activateLastTab->setEnabled(false);
+ connect(activateLastTab, &QAction::triggered, m_tabWidget, &DolphinTabWidget::activateLastTab);
+ actionCollection()->setDefaultShortcut(activateLastTab, Qt::ALT + Qt::Key_0);
+
QAction* activateNextTab = actionCollection()->addAction(QStringLiteral("activate_next_tab"));
activateNextTab->setIconText(i18nc("@action:inmenu", "Next Tab"));
activateNextTab->setText(i18nc("@action:inmenu", "Activate Next Tab"));