X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Finputline.cpp;h=6cd4fcbf1de29ccdfadac62bfe3a9356063fc85b;hp=a46bed45cd0ab16d2a509425c3ecc60c4c4e37a6;hb=dbcac581af9130fb4d2839ada4141d3dcf459859;hpb=e88bc2044ff3815bc62e3a297410c4aafe5880bb diff --git a/src/uisupport/inputline.cpp b/src/uisupport/inputline.cpp index a46bed45..6cd4fcbf 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" @@ -35,12 +35,15 @@ InputLine::InputLine(QWidget *parent) { #ifdef HAVE_KDE //This is done to make the KTextEdit look like a lineedit - setMaximumHeight(document()->size().toSize().height() + 2); +#if QT_VERSION >= 0x040500 + document()->setDocumentMargin(0); +#endif + setMaximumHeight(document()->size().toSize().height()); + setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setAcceptRichText(false); setLineWrapMode(NoWrap); enableFindReplace(false); - setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); connect(this, SIGNAL(textChanged()), this, SLOT(on_textChanged())); #endif @@ -51,6 +54,13 @@ InputLine::InputLine(QWidget *parent) InputLine::~InputLine() { } +void InputLine::setCustomFont(const QFont &font) { + setFont(font); +#ifdef HAVE_KDE + setMaximumHeight(document()->size().toSize().height() + 2*frameWidth()); +#endif +} + bool InputLine::eventFilter(QObject *watched, QEvent *event) { if(event->type() != QEvent::KeyPress) return false; @@ -73,6 +83,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(); @@ -111,6 +133,7 @@ void InputLine::keyPressEvent(QKeyEvent * event) { #ifdef HAVE_KDE //Since this is a ktextedit, we don't have this signal "natively" case Qt::Key_Return: + case Qt::Key_Enter: event->accept(); emit returnPressed(); break; @@ -149,9 +172,11 @@ bool InputLine::addToHistory(const QString &text, bool temporary) { } void InputLine::on_returnPressed() { - addToHistory(text()); - emit sendText(text()); - resetLine(); + if(!text().isEmpty()) { + addToHistory(text()); + emit sendText(text()); + resetLine(); + } } void InputLine::on_textChanged(QString newText) { @@ -175,7 +200,7 @@ void InputLine::on_textChanged(QString newText) { clear(); if(lines.count() >= 4) { - QString msg = tr("Do you really want to paste %1 lines?").arg(lines.count()); + QString msg = tr("Do you really want to paste %n lines?", "", lines.count()); msg += "

"; for(int i = 0; i < 3; i++) { msg += lines[i].left(40); @@ -194,9 +219,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(); @@ -216,5 +243,13 @@ void InputLine::resetLine() { void InputLine::showHistoryEntry() { // if the user changed the history, display the changed line - tempHistory.contains(idx) ? setText(tempHistory[idx]) : setText(history[idx]); + QString text = tempHistory.contains(idx) ? tempHistory[idx] : history[idx]; +#ifdef HAVE_KDE + setPlainText(text); + QTextCursor cursor = textCursor(); + cursor.movePosition(QTextCursor::End); + setTextCursor(cursor); +#else + setText(text); +#endif }