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...