void ShortcutWidget::keyEvent(QKeyEvent* event) { event->accept(); if (event->type() != QEvent::KeyPress && event->type() != QEvent::KeyRelease) { return; } bool release = (event->type() == QEvent::KeyRelease); if (m_locked && release) { return; } Qt::Key key = static_cast<Qt::Key>(event->key()); if (key <= 0 || key == Qt::Key_unknown) { return; } Qt::KeyboardModifiers modifiers = event->modifiers() & (Qt::SHIFT | Qt::CTRL | Qt::ALT | Qt::META); bool keyIsModifier; switch (key) { case Qt::Key_Shift: case Qt::Key_Control: case Qt::Key_Meta: case Qt::Key_Alt: case Qt::Key_AltGr: keyIsModifier = true; break; default: keyIsModifier = false; } if (!release && !keyIsModifier) { if (modifiers != 0) { setShortcut(key, modifiers); } else { resetShortcut(); setStyleSheet(""); displayShortcut(key, modifiers); } } else { if (m_locked) { resetShortcut(); setStyleSheet(""); } displayShortcut(static_cast<Qt::Key>(0), modifiers); } }
void ShortcutWidget::keyEvent(QKeyEvent* event, bool release){ if (release && lock) return; AutoTypeGlobalX11* autoTypeGlobal = static_cast<AutoTypeGlobalX11*>(autoType); unsigned int mods = HelperX11::keyboardModifiers(QX11Info::display()); displayShortcut(event->nativeVirtualKey(), release, mods & ControlMask, mods & ShiftMask, mods & autoTypeGlobal->maskAlt(), mods & autoTypeGlobal->maskAltGr(), mods & autoTypeGlobal->maskMeta()); }
void ShortcutWidget::setShortcut(Qt::Key key, Qt::KeyboardModifiers modifiers) { m_key = key; m_modifiers = modifiers; m_locked = true; displayShortcut(m_key, m_modifiers); if (autoType()->registerGlobalShortcut(m_key, m_modifiers)) { setStyleSheet(""); } else { setStyleSheet("background-color: #FF9696;"); } }
void ShortcutWidget::setShortcut(const Shortcut& s){ lock = true; displayShortcut(s.key, false, s.ctrl, s.shift, s.alt, s.altgr, s.win); }