Add default shortcuts for virtual desktop switching actions

This makes the virtual desktop KCM properly show Ctrl+F1-F4 as the
default shortcuts for switch to desktop.

REVIEW: 119051
icc-effect-5.14.5
Martin Gräßlin 2014-07-01 08:09:27 +02:00
parent ce48a1b27b
commit 8bdbe4dc15
2 changed files with 18 additions and 5 deletions

View File

@ -116,11 +116,24 @@ void KWinDesktopConfig::init()
n = info.numberOfDesktops();
}
for (int i = 1; i <= n; ++i) {
auto addSwitchTo = [this](int i, const QKeySequence &sequence) {
QAction* a = m_actionCollection->addAction(QString("Switch to Desktop %1").arg(i));
a->setProperty("isConfigurationAction", true);
a->setText(i18n("Switch to Desktop %1", i));
KGlobalAccel::self()->setShortcut(a, QList<QKeySequence>());
KGlobalAccel::setGlobalShortcut(a, sequence);
};
if (n >= 2) {
addSwitchTo(1, Qt::CTRL + Qt::Key_F1);
addSwitchTo(2, Qt::CTRL + Qt::Key_F2);
}
if (n >= 3) {
addSwitchTo(3, Qt::CTRL + Qt::Key_F3);
}
if (n >= 4) {
addSwitchTo(4, Qt::CTRL + Qt::Key_F4);
}
for (int i = 5; i <= n; ++i) {
addSwitchTo(i, QKeySequence());
}
// This should be after the "Switch to Desktop %1" loop. It HAS to be
@ -201,7 +214,7 @@ void KWinDesktopConfig::addAction(const QString &name, const QString &label)
QAction* a = m_switchDesktopCollection->addAction(name);
a->setProperty("isConfigurationAction", true);
a->setText(label);
KGlobalAccel::self()->setShortcut(a, QList<QKeySequence>());
KGlobalAccel::setGlobalShortcut(a, QKeySequence());
}
void KWinDesktopConfig::defaults()

View File

@ -459,7 +459,7 @@ void VirtualDesktopManager::addAction(const QString &name, const KLocalizedStrin
a->setText(label.subs(value).toString());
a->setData(value);
connect(a, &QAction::triggered, this, slot);
KGlobalAccel::self()->setShortcut(a, QList<QKeySequence>() << key);
KGlobalAccel::setGlobalShortcut(a, key);
input()->registerShortcut(key, a);
}
@ -469,7 +469,7 @@ void VirtualDesktopManager::addAction(const QString &name, const QString &label,
a->setObjectName(name);
a->setText(label);
connect(a, &QAction::triggered, this, slot);
KGlobalAccel::self()->setShortcut(a, QList<QKeySequence>());
KGlobalAccel::setGlobalShortcut(a, QKeySequence());
input()->registerShortcut(QKeySequence(), a);
}