KisSingleActionShortcut* createKeyShortcut(KisAbstractInputAction *action, int shortcutIndex, const QList<Qt::Key> &modifiers, Qt::Key key) { KisSingleActionShortcut *s = new KisSingleActionShortcut(action, shortcutIndex); s->setKey(modifiers, key); return s; }
void KisInputManager::Private::addKeyShortcut(KisAbstractInputAction* action, int index, const QList<Qt::Key> &keys) { KisSingleActionShortcut *keyShortcut = new KisSingleActionShortcut(action, index); QList<Qt::Key> modifiers = keys.mid(1); keyShortcut->setKey(modifiers, keys.at(0)); matcher.addShortcut(keyShortcut); }
void KisInputManager::Private::addKeyShortcut(KisAbstractInputAction* action, int index, const QList<Qt::Key> &keys) { if (keys.size() == 0) return; KisSingleActionShortcut *keyShortcut = new KisSingleActionShortcut(action, index); //Note: Ordering is important here, Shift + V is different from V + Shift, //which is the reason we use the last key here since most users will enter //shortcuts as "Shift + V". Ideally this should not happen, but this is //the way the shortcut matcher is currently implemented. QList<Qt::Key> allKeys = keys; Qt::Key key = allKeys.takeLast(); QSet<Qt::Key> modifiers = QSet<Qt::Key>::fromList(allKeys); keyShortcut->setKey(modifiers, key); matcher.addShortcut(keyShortcut); }