***************************************************************************/
#include "bufferview.h"
-
+#include "graphicalui.h"
#include "inputline.h"
#include "tabcompleter.h"
{
#ifdef HAVE_KDE
//This is done to make the KTextEdit look like a lineedit
+#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);
connect(this, SIGNAL(textChanged()), this, SLOT(on_textChanged()));
#endif
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;
}
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();
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:
+ case Qt::Key_Enter:
+ event->accept();
emit returnPressed();
+ break;
+
#endif
default:
}
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) {
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 += "<p>";
for(int i = 0; i < 3; i++) {
msg += lines[i].left(40);
}
foreach(QString line, lines) {
- clear();
- insert(line);
- emit returnPressed();
+ if(!line.isEmpty()) {
+ clear();
+ insert(line);
+ emit returnPressed();
+ }
}
// if(newText.contains(lineSep)) {
// clear();
void InputLine::showHistoryEntry() {
// if the user changed the history, display the changed line
tempHistory.contains(idx) ? setText(tempHistory[idx]) : setText(history[idx]);
+#ifdef HAVE_KDE
+ QTextCursor cursor = textCursor();
+ cursor.movePosition(QTextCursor::End);
+ setTextCursor(cursor);
+#endif
}