X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fuisupport%2Finputline.cpp;h=c297694ce8acc42743e4082cec1cd0d259f34c92;hb=e0e822499bb989ab48cc996ad0677f7f73b4709e;hp=7d863fe0423a0a807550e44ff65e010daf9ce6b5;hpb=bcfd213c6c381e6d2344ceba4a82ed3f87a9fd3e;p=quassel.git diff --git a/src/uisupport/inputline.cpp b/src/uisupport/inputline.cpp index 7d863fe0..c297694c 100644 --- a/src/uisupport/inputline.cpp +++ b/src/uisupport/inputline.cpp @@ -51,26 +51,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() { @@ -81,12 +76,30 @@ void InputLine::on_returnPressed() { } void InputLine::on_textChanged(QString newText) { - if(newText.contains('\n')) { + QStringList lineSeperators; + lineSeperators << QString("\r\n") + << QString('\n') + << QString('\r'); + + QString lineSep; + foreach(QString seperator, lineSeperators) { + if(newText.contains(seperator)) { + lineSep = seperator; + break; + } + } + + if(lineSep.isEmpty()) + return; + + if(newText.contains(lineSep)) { clear(); - QString line = newText.section('\n', 0, 0); - QString remainder = newText.section('\n', 1); + QString line = newText.section(lineSep, 0, 0); + QString remainder = newText.section(lineSep, 1); insert(line); emit returnPressed(); insert(remainder); } + } +