Пример #1
0
void KeyTracker::releaseKey(int key)
{
	auto modifier = keyToModifier(key);
	if (modifier != Qt::NoModifier)
		d->modifiers &= ~modifier;
	else
		d->keys.remove(key);
	
	emit pressedKeysChanged(pressedKeys());
}
Пример #2
0
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());
}
Пример #3
0
bool KeyTracker::match(const QKeySequence &sequence) const
{
	auto keys = pressedKeys();
	
	return keys.size() == 1 && sequence.count() == 1 && *keys.begin() == sequence[0];
}
Пример #4
0
bool KeyboardManager::isAnyKeyPressed()
{
    return pressedKeys().size() > 0;
}