diff options
Diffstat (limited to 'Swift/QtUI/QtTabbable.cpp')
-rw-r--r-- | Swift/QtUI/QtTabbable.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Swift/QtUI/QtTabbable.cpp b/Swift/QtUI/QtTabbable.cpp index 07a17c1..84a5100 100644 --- a/Swift/QtUI/QtTabbable.cpp +++ b/Swift/QtUI/QtTabbable.cpp @@ -25,4 +25,36 @@ bool QtTabbable::isWidgetSelected() { return parent ? parent->getCurrentTab() == this : isAncestorOf(QApplication::focusWidget()); } +void QtTabbable::keyPressEvent(QKeyEvent *event) { + handleKeyPressEvent(event); +} + +void QtTabbable::handleKeyPressEvent(QKeyEvent *event) { + event->ignore(); + int key = event->key(); + Qt::KeyboardModifiers modifiers = event->modifiers(); + if (key == Qt::Key_W && modifiers == Qt::ControlModifier) { + close(); + event->accept(); + } else if ( + (key == Qt::Key_PageUp && modifiers == Qt::ControlModifier) +// || (key == Qt::Key_Left && modifiers == (Qt::ControlModifier & Qt::ShiftModifier)) + ) { + emit requestPreviousTab(); + event->accept(); + } else if ( + (key == Qt::Key_PageDown && modifiers == Qt::ControlModifier) +// || (key == Qt::Key_Right && modifiers == (Qt::ControlModifier & Qt::ShiftModifier) + || (key == Qt::Key_Tab && modifiers == Qt::ControlModifier) + ) { + emit requestNextTab(); + event->accept(); + } else if ( + (key == Qt::Key_A && modifiers == Qt::AltModifier) + ) { + emit requestActiveTab(); + event->accept(); + } +} + } |