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() {
}
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);
}
+
}
+