summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2010-04-11 15:03:54 (GMT)
committerKevin Smith <git@kismith.co.uk>2010-04-11 15:05:09 (GMT)
commit73f845a3f380c5a1adbac2cf29e9f36cc9b498cf (patch)
tree25655c928aa2d4a8c05e54f9c7c18203286fb8f3 /Swift/QtUI/QtTextEdit.cpp
parent8b09a21b14488a6ceb159607511b351d5cd60ac2 (diff)
downloadswift-73f845a3f380c5a1adbac2cf29e9f36cc9b498cf.zip
swift-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.cpp9
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);
}