X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Finputline.h;h=6bbfee2fbfa980e511915204a168ac54e8a1077b;hp=dc6d691ceeb1dd3c1285af8dfd04c125b6c3299d;hb=e049ffc61b5e260a49d73102a74c3821af827e77;hpb=f824db0e31b54969e0b7fa0b5405b1e9173d482c diff --git a/src/uisupport/inputline.h b/src/uisupport/inputline.h index dc6d691c..6bbfee2f 100644 --- a/src/uisupport/inputline.h +++ b/src/uisupport/inputline.h @@ -18,22 +18,45 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef _INPUTLINE_H_ -#define _INPUTLINE_H_ +#ifndef INPUTLINE_H_ +#define INPUTLINE_H_ -#include +#include +#include +#include + +#ifdef HAVE_KDE +#include +#endif class TabCompleter; -class InputLine : public QLineEdit { +class InputLine : public +#ifdef HAVE_KDE + KTextEdit +#else + QTextEdit +#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 + + // Compatibility methods with the rest of the classes which still expect this to be a QLineEdit + inline QString text() { return toPlainText(); } + inline int cursorPosition() { return textCursor().position(); } + inline void insert(const QString &newText) { insertPlainText(newText); } + inline void backspace() { keyPressEvent(new QKeyEvent(QEvent::KeyPress, Qt::Key_Backspace, Qt::NoModifier)); } + inline bool hasSelectedText() { return textCursor().hasSelection(); } + + virtual QSize sizeHint() const; + virtual QSize minimumSizeHint() const; + protected: - // virtual bool event(QEvent *); virtual void keyPressEvent(QKeyEvent * event); virtual bool eventFilter(QObject *watched, QEvent *event); @@ -41,11 +64,18 @@ private slots: void on_returnPressed(); void on_textChanged(QString newText); + // Needed to emulate the signal that QLineEdit has + inline void on_textChanged() { emit textChanged(toPlainText()); }; + bool addToHistory(const QString &text, bool temporary = false); signals: void sendText(QString text); + // QTextEdit does not provide this signal, so we manually emit it in keyPressEvent() + void returnPressed(); + void textChanged(QString newText); + private: QStringList history; QHash tempHistory;