diff options
author | Kevin Smith <git@kismith.co.uk> | 2010-04-11 15:03:54 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2010-04-11 15:05:09 (GMT) |
commit | 73f845a3f380c5a1adbac2cf29e9f36cc9b498cf (patch) | |
tree | 25655c928aa2d4a8c05e54f9c7c18203286fb8f3 /Swift/QtUI/QtTextEdit.cpp | |
parent | 8b09a21b14488a6ceb159607511b351d5cd60ac2 (diff) | |
download | swift-contrib-73f845a3f380c5a1adbac2cf29e9f36cc9b498cf.zip swift-contrib-73f845a3f380c5a1adbac2cf29e9f36cc9b498cf.tar.bz2 |
Proper handling of keypresses in the chat input that're meant for the chat log.
Resolves: #284
Diffstat (limited to 'Swift/QtUI/QtTextEdit.cpp')
-rw-r--r-- | Swift/QtUI/QtTextEdit.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/Swift/QtUI/QtTextEdit.cpp b/Swift/QtUI/QtTextEdit.cpp index 215fbc0..70f7aca 100644 --- a/Swift/QtUI/QtTextEdit.cpp +++ b/Swift/QtUI/QtTextEdit.cpp @@ -17,9 +17,14 @@ QtTextEdit::QtTextEdit(QWidget* parent) : QTextEdit(parent){ }; void QtTextEdit::keyPressEvent(QKeyEvent* event) { - if ((event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return) - && (event->modifiers() == Qt::NoModifier || event->modifiers() == Qt::KeypadModifier)) { + int key = event->key(); + Qt::KeyboardModifiers modifiers = event->modifiers(); + if ((key == Qt::Key_Enter || key == Qt::Key_Return) + && (modifiers == Qt::NoModifier || modifiers == Qt::KeypadModifier)) { emit returnPressed(); + } else if (((key == Qt::Key_PageUp || key == Qt::Key_PageDown) && modifiers == Qt::ShiftModifier) + || (key == Qt::Key_C && modifiers == Qt::ControlModifier && textCursor().selectedText().isEmpty())) { + emit unhandledKeyPressEvent(event); } else { QTextEdit::keyPressEvent(event); } |