X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fmultilineedit.h;h=a1a0ffdffb2b65a7d875d4d057e8d37b7f5a0124;hp=f10572b82c5260a2ad2e26ab27afc4b3a92bccd0;hb=84381d6b74a31c8b1b6468fa490621f8a7a32c23;hpb=d37d8399f02fcdd9093d17f728c71af445ca56df diff --git a/src/uisupport/multilineedit.h b/src/uisupport/multilineedit.h index f10572b8..a1a0ffdf 100644 --- a/src/uisupport/multilineedit.h +++ b/src/uisupport/multilineedit.h @@ -23,22 +23,19 @@ #include #include -#include #ifdef HAVE_KDE # include +# define MultiLineEditParent KTextEdit +#else +# include +# define MultiLineEditParent QTextEdit #endif class QKeyEvent; class TabCompleter; -class MultiLineEdit : public -#ifdef HAVE_KDE - KTextEdit -#else - QTextEdit -#endif -{ +class MultiLineEdit : public MultiLineEditParent { Q_OBJECT public: @@ -53,12 +50,12 @@ public: 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 QString html() { return toHtml(); } - inline int cursorPosition() { return textCursor().position(); } + inline QString text() const { return toPlainText(); } + inline QString html() const { return toHtml(); } + inline int cursorPosition() const { 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(); } + inline bool hasSelectedText() const { return textCursor().hasSelection(); } inline bool isSingleLine() const { return _singleLine; } inline bool pasteProtectionEnabled() const { return _pasteProtectionEnabled; } @@ -70,10 +67,16 @@ public: inline QString rgbColorFromMirc(QString mircColor) const { return _mircColorMap[mircColor]; } inline QMap mircColorMap() const { return _mircColorMap; } + inline QStringList history() const { return _history; } + inline QHash tempHistory() const { return _tempHistory; } + inline qint32 idx() const { return _idx; } + inline bool emacsMode() const { return _emacsMode; } + public slots: void setMode(Mode mode); void setMinHeight(int numLines); void setMaxHeight(int numLines); + void setEmacsMode(bool enable = true); void setScrollBarsEnabled(bool enable = true); void setSpellCheckEnabled(bool enable = true); void setPasteProtectionEnabled(bool enable = true, QWidget *msgBoxParent = 0); @@ -81,11 +84,16 @@ public slots: // Note: Enabling wrap will make isSingleLine() not work correctly, so only use this if minHeight() > 1! void setWordWrapEnabled(bool enable = true); + inline void setHistory(QStringList history) { _history = history; } + inline void setTempHistory(QHash tempHistory) { _tempHistory = tempHistory; } + inline void setIdx(qint32 idx) { _idx = idx; } + signals: void textEntered(const QString &text); void noTextEntered(); protected: + virtual bool event(QEvent *e); virtual void keyPressEvent(QKeyEvent * event); virtual void resizeEvent(QResizeEvent *event); @@ -104,15 +112,16 @@ private slots: bool mircCodesChanged(QTextCursor &cursor, QTextCursor &peekcursor); private: - QStringList history; - QHash tempHistory; - qint32 idx; + QStringList _history; + QHash _tempHistory; + qint32 _idx; Mode _mode; bool _singleLine; int _minHeight; int _maxHeight; bool _scrollBarsEnabled; bool _pasteProtectionEnabled; + bool _emacsMode; QSize _sizeHint; qreal _lastDocumentHeight;