- if(event->key() == Qt::Key_Tab) { // Tabcomplete
- tabCompleter->complete();
- event->accept();
- } 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);
+ if(history.isEmpty() || text != history[idx - (int)(idx == history.count())]) {
+ // if an entry of the history is changed, we remember it and show it again at this
+ // position until a line was actually sent
+ // sent lines get appended to the history
+ if(temporary) {
+ tempHistory[idx] = text;