29 #include "dynamic-shortcuts/shortcutbutton.h"
31 #include "dynamic-shortcuts/shortcutcatcher.h"
37 : QPushButton(parent), m_catcher(catcher) {
40 ShortcutButton::~ShortcutButton() {
43 void ShortcutButton::keyPressEvent(QKeyEvent *event) {
44 int pressed_key =
event->key();
46 if (pressed_key == -1) {
47 m_catcher->doneRecording();
50 Qt::KeyboardModifiers new_modifiers =
event->modifiers() &
51 (Qt::SHIFT | Qt::CTRL | Qt::ALT | Qt::META);
53 if (!m_catcher->m_isRecording && (pressed_key == Qt::Key_Return || pressed_key == Qt::Key_Space)) {
57 if (!m_catcher->m_isRecording) {
58 return QPushButton::keyPressEvent(event);
62 m_catcher->m_modifierKeys = new_modifiers;
80 if ((pressed_key == Qt::Key_Backtab) && (m_catcher->m_modifierKeys & Qt::SHIFT)) {
81 pressed_key = Qt::Key_Tab | m_catcher->m_modifierKeys;
84 pressed_key |= m_catcher->m_modifierKeys;
87 if (m_catcher->m_numKey == 0) {
88 m_catcher->m_currentSequence = QKeySequence(pressed_key);
91 m_catcher->m_numKey++;
93 if (m_catcher->m_numKey >= 4) {
94 m_catcher->doneRecording();
104 void ShortcutButton::keyReleaseEvent(QKeyEvent *event) {
105 if (event->key() == -1){
109 if (!m_catcher->m_isRecording) {
110 return QPushButton::keyReleaseEvent(event);
115 Qt::KeyboardModifiers new_modifiers =
event->modifiers() &
116 (Qt::SHIFT | Qt::CTRL | Qt::ALT | Qt::META);
118 if (((uint) new_modifiers & m_catcher->m_modifierKeys) < m_catcher->m_modifierKeys) {
119 m_catcher->m_modifierKeys = new_modifiers;
void updateDisplayShortcut()
Updates text displayed in catcher according to active shortcut.
Represents extra widget for changing single keyboard shortcut.
void controlModifierlessTimeout()
Performs time-dependent check of current shortcut check and stops the recording if time is up...