***************************************************************************/
#include "bufferview.h"
-
+#include "graphicalui.h"
#include "inputline.h"
#include "tabcompleter.h"
InputLine::InputLine(QWidget *parent)
- : QLineEdit(parent),
+ :
+#ifdef HAVE_KDE
+ KTextEdit(parent),
+#else
+ QLineEdit(parent),
+#endif
idx(0),
tabCompleter(new TabCompleter(this))
{
+#ifdef HAVE_KDE
+//This is done to make the KTextEdit look like a lineedit
+ 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
+
connect(this, SIGNAL(returnPressed()), this, SLOT(on_returnPressed()));
connect(this, SIGNAL(textChanged(QString)), this, SLOT(on_textChanged(QString)));
}
InputLine::~InputLine() {
}
+void InputLine::setCustomFont(const QFont &font) {
+ setFont(font);
+#ifdef HAVE_KDE
+ setMaximumHeight(document()->size().toSize().height());
+#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:
+ event->accept();
+ if(!text().isEmpty())
+ emit returnPressed();
+ break;
+
+ case Qt::Key_Enter:
+ event->accept();
+ if(!text().isEmpty())
+ emit returnPressed();
+ break;
+
+#endif
default:
+#ifdef HAVE_KDE
+ KTextEdit::keyPressEvent(event);
+#else
QLineEdit::keyPressEvent(event);
+#endif
}
}
QStringList lines = newText.split(lineSep);
clear();
- if(lines.count() > 4) {
- QString msg = tr("Do you really want to paste %1 lines?").arg(lines.count());
+ if(lines.count() >= 4) {
+ 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);
msg += "...</p>";
QMessageBox question(QMessageBox::NoIcon, tr("Paste Protection"), msg, QMessageBox::Yes|QMessageBox::No);
question.setDefaultButton(QMessageBox::No);
+#ifdef Q_WS_MAC
question.setWindowFlags(question.windowFlags() | Qt::Sheet);
+#endif
if(question.exec() == QMessageBox::No)
return;
}
foreach(QString line, lines) {
- clear();
- insert(line);
- emit returnPressed();
+ if(!line.isEmpty()) {
+ clear();
+ insert(line);
+ emit returnPressed();
+ }
}
// if(newText.contains(lineSep)) {
// clear();