X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Finputline.cpp;h=c04a3f251a8fdb750916280680313b719b60e3b6;hp=eaf1212fedf5a89d7110303de35b038ac3f64098;hb=af569a42f6635f6abfcedeb45b730ee64d53e0b8;hpb=c21696b07427a43b305dfbfddef73fcf274dfddf diff --git a/src/uisupport/inputline.cpp b/src/uisupport/inputline.cpp index eaf1212f..c04a3f25 100644 --- a/src/uisupport/inputline.cpp +++ b/src/uisupport/inputline.cpp @@ -19,7 +19,7 @@ ***************************************************************************/ #include "bufferview.h" - +#include "graphicalui.h" #include "inputline.h" #include "tabcompleter.h" @@ -36,8 +36,11 @@ InputLine::InputLine(QWidget *parent) #ifdef HAVE_KDE //This is done to make the KTextEdit look like a lineedit setMaximumHeight(document()->size().toSize().height()); + setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setAcceptRichText(false); + setLineWrapMode(NoWrap); + enableFindReplace(false); connect(this, SIGNAL(textChanged()), this, SLOT(on_textChanged())); #endif @@ -48,6 +51,13 @@ InputLine::InputLine(QWidget *parent) InputLine::~InputLine() { } +void InputLine::setCustomFont(const QFont &font) { + setFont(font); +#ifdef HAVE_KDE + setMaximumHeight(document()->size().toSize().height()); +#endif +} + bool InputLine::eventFilter(QObject *watched, QEvent *event) { if(event->type() != QEvent::KeyPress) return false; @@ -70,6 +80,18 @@ bool InputLine::eventFilter(QObject *watched, QEvent *event) { } void InputLine::keyPressEvent(QKeyEvent * event) { + +#ifdef HAVE_KDE + if(event->matches(QKeySequence::Find)) { + QAction *act = GraphicalUi::actionCollection()->action("ToggleSearchBar"); + if(act) { + act->toggle(); + event->accept(); + return; + } + } +#endif + switch(event->key()) { case Qt::Key_Up: event->accept(); @@ -103,11 +125,22 @@ void InputLine::keyPressEvent(QKeyEvent * event) { case Qt::Key_Select: // for Qtopia emit returnPressed(); + break; #ifdef HAVE_KDE //Since this is a ktextedit, we don't have this signal "natively" case Qt::Key_Return: - emit returnPressed(); + event->accept(); + if(!text().isEmpty()) + emit returnPressed(); + break; + + case Qt::Key_Enter: + event->accept(); + if(!text().isEmpty()) + emit returnPressed(); + break; + #endif default: @@ -187,9 +220,11 @@ void InputLine::on_textChanged(QString newText) { } foreach(QString line, lines) { - clear(); - insert(line); - emit returnPressed(); + if(!line.isEmpty()) { + clear(); + insert(line); + emit returnPressed(); + } } // if(newText.contains(lineSep)) { // clear();