summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2012-04-23 14:23:14 (GMT)
committerKevin Smith <git@kismith.co.uk>2012-04-23 16:37:33 (GMT)
commit5af9a5c5cd4d74b29ce5bf4882b5b8391f09b468 (patch)
treeccf3fc72e9dd2d65de6f1fe68027f5e5c13f3761 /Swift/QtUI/QtTabbable.cpp
parentd3ff5908eadb86e14d6eae9c4c9f0b4c959088e9 (diff)
downloadswift-5af9a5c5cd4d74b29ce5bf4882b5b8391f09b468.zip
swift-5af9a5c5cd4d74b29ce5bf4882b5b8391f09b468.tar.bz2
Move accelerator handling for active-,next-,previous- and close-tab into QtTabbable.
Resolves: #1091 License: This patch is BSD-licensed, see http://www.opensource.org/licenses/bsd-license.php
Diffstat (limited to 'Swift/QtUI/QtTabbable.cpp')
-rw-r--r--Swift/QtUI/QtTabbable.cpp32
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();
+ }
+}
+
}