void KeyTracker::releaseKey(int key) { auto modifier = keyToModifier(key); if (modifier != Qt::NoModifier) d->modifiers &= ~modifier; else d->keys.remove(key); emit pressedKeysChanged(pressedKeys()); }
void KeyTracker::pressKey(int key) { auto modifier = keyToModifier(key); if (modifier != Qt::NoModifier) { if (d->modifiers & modifier) return; d->modifiers |= modifier; } else { if (d->keys.contains(key)) return; d->keys << key; } emit pressedKeysChanged(pressedKeys()); }
bool KeyTracker::match(const QKeySequence &sequence) const { auto keys = pressedKeys(); return keys.size() == 1 && sequence.count() == 1 && *keys.begin() == sequence[0]; }
bool KeyboardManager::isAnyKeyPressed() { return pressedKeys().size() > 0; }