X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fuisupport%2Finputline.h;h=66742b63ef7d14a8f7c53484a7fede89415d69aa;hb=ab16c77fe03b73a863d9b52b11919bcbac903f58;hp=dc6d691ceeb1dd3c1285af8dfd04c125b6c3299d;hpb=f824db0e31b54969e0b7fa0b5405b1e9173d482c;p=quassel.git diff --git a/src/uisupport/inputline.h b/src/uisupport/inputline.h index dc6d691c..66742b63 100644 --- a/src/uisupport/inputline.h +++ b/src/uisupport/inputline.h @@ -23,15 +23,36 @@ #include +#ifdef HAVE_KDE +#include +#endif + class TabCompleter; -class InputLine : public QLineEdit { +class InputLine : public +#ifdef HAVE_KDE + KTextEdit +#else + QLineEdit +#endif +{ Q_OBJECT public: InputLine(QWidget *parent = 0); ~InputLine(); + void setCustomFont(const QFont &); // should be used instead setFont(), so we can set our size correctly + +#ifdef HAVE_KDE +//Compatibility methods with the rest of the classes which expects this to be a QLineEdit + QString text() { return toPlainText(); }; + int cursorPosition() { return textCursor().position(); }; + void insert(const QString &newText) { insertPlainText(newText); }; + void backspace() { keyPressEvent(new QKeyEvent(QEvent::KeyPress, Qt::Key_Backspace, Qt::NoModifier)); }; + bool hasSelectedText() { return textCursor().hasSelection(); }; +#endif + protected: // virtual bool event(QEvent *); virtual void keyPressEvent(QKeyEvent * event); @@ -40,11 +61,20 @@ protected: private slots: void on_returnPressed(); void on_textChanged(QString newText); +#ifdef HAVE_KDE +//Needed to emulate the signal that QLineEdit has + void on_textChanged() { emit textChanged(toPlainText()); }; +#endif bool addToHistory(const QString &text, bool temporary = false); signals: void sendText(QString text); +#ifdef HAVE_KDE +//KTextEdit does not provide this signal, so we manually emit it in keyPressEvent() + void returnPressed(); + void textChanged(QString newText); +#endif private: QStringList history;