#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());
+ setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ setAcceptRichText(false);
+ setLineWrapMode(NoWrap);
+ enableFindReplace(false);
+ setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ 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)));
}
BufferView *view = qobject_cast<BufferView *>(watched);
if(view) {
QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
- if(keyEvent->text().length() == 1) { // normal key press
+ if(keyEvent->text().length() == 1 && !(keyEvent->modifiers() & (Qt::ControlModifier ^ Qt::AltModifier)) ) { // normal key press
QChar c = keyEvent->text().at(0);
if(c.isLetterOrNumber() || c.isSpace() || c.isPunct() || c.isSymbol()) {
setFocus();
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();
+ 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) {
+ if(lines.count() >= 4) {
QString msg = tr("Do you really want to paste %1 lines?").arg(lines.count());
msg += "<p>";
for(int i = 0; i < 3; i++) {
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;
}