X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Ftabcompleter.cpp;h=8c29e8ab6f8950c4ec6323afaaff0ee554adf884;hp=3493b29a26350053d34b0b2303f04efdb4b282f9;hb=aa40491595ffec54ba340a9850d99dc14d920eb3;hpb=17fa75dd07c1da977c11900fcbed89f77a962857 diff --git a/src/uisupport/tabcompleter.cpp b/src/uisupport/tabcompleter.cpp index 3493b29a..8c29e8ab 100644 --- a/src/uisupport/tabcompleter.cpp +++ b/src/uisupport/tabcompleter.cpp @@ -34,6 +34,7 @@ TabCompleter::TabCompleter(InputLine *inputLine_) enabled(false), nickSuffix(": ") { + inputLine->installEventFilter(this); } void TabCompleter::buildCompletionList() { @@ -118,3 +119,18 @@ void TabCompleter::reset() { enabled = false; } +bool TabCompleter::eventFilter(QObject *obj, QEvent *event) { + if(obj != inputLine || event->type() != QEvent::KeyPress) + return QObject::eventFilter(obj, event); + + QKeyEvent *keyEvent = static_cast(event); + + if(keyEvent->key() == Qt::Key_Tab) { + complete(); + return true; + } else { + reset(); + return false; + } +} +