X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Finputline.cpp;h=e559a93084fc193fa6dca0da1fdd99a24e689a37;hp=fe84cecf5a38e35055fddefc42f93fbb955f0e59;hb=486bdd0ee6a197d0dfb0a1ca51785b8139a712a9;hpb=1bd0b3710fe361c778bc5b5a726353e205d16eaf diff --git a/src/uisupport/inputline.cpp b/src/uisupport/inputline.cpp index fe84cecf..e559a930 100644 --- a/src/uisupport/inputline.cpp +++ b/src/uisupport/inputline.cpp @@ -27,6 +27,8 @@ InputLine::InputLine(QWidget *parent) idx(0), tabCompleter(new TabCompleter(this)) { + + installEventFilter(tabCompleter); #ifdef Q_WS_MAC bindModifier = Qt::ControlModifier | Qt::AltModifier; @@ -51,26 +53,21 @@ void InputLine::keyPressEvent(QKeyEvent * event) { return; } - if(event->key() == Qt::Key_Tab) { // Tabcomplete - tabCompleter->complete(); + if(event->key() == Qt::Key_Up) { + if(idx > 0) { idx--; setText(history[idx]); } + event->accept(); + } else if(event->key() == Qt::Key_Down) { + if(idx < history.count()) idx++; + if(idx < history.count()) setText(history[idx]); + else setText(""); event->accept(); + } else if(event->key() == Qt::Key_Select) { // for Qtopia + emit returnPressed(); + QLineEdit::keyPressEvent(event); } else { - tabCompleter->reset(); - if(event->key() == Qt::Key_Up) { - if(idx > 0) { idx--; setText(history[idx]); } - event->accept(); - } else if(event->key() == Qt::Key_Down) { - if(idx < history.count()) idx++; - if(idx < history.count()) setText(history[idx]); - else setText(""); - event->accept(); - } else if(event->key() == Qt::Key_Select) { // for Qtopia - emit returnPressed(); - QLineEdit::keyPressEvent(event); - } else { - QLineEdit::keyPressEvent(event); - } + QLineEdit::keyPressEvent(event); } + } void InputLine::on_returnPressed() {