X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fmultilineedit.h;h=da44304139f80a0fa246475c3a5b0446b1a631e1;hp=13485924b3edad49771aea09f03dffec04632975;hb=a9c2f4157175cfb775980eb72c8312cdffcbfe00;hpb=f047a4f7add72ef7e32ad33f884e62a5773ecc72 diff --git a/src/uisupport/multilineedit.h b/src/uisupport/multilineedit.h index 13485924..da443041 100644 --- a/src/uisupport/multilineedit.h +++ b/src/uisupport/multilineedit.h @@ -54,23 +54,32 @@ public: // 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 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 isSingleLine() const { return _singleLine; } + inline bool pasteProtectionEnabled() const { return _pasteProtectionEnabled; } + virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; public slots: void setMode(Mode mode); - void setWrapMode(QTextOption::WrapMode = QTextOption::NoWrap); void setMinHeight(int numLines); void setMaxHeight(int numLines); - void enableScrollBars(bool enable = true); + void setScrollBarsEnabled(bool enable = true); + void setSpellCheckEnabled(bool enable = true); + void setPasteProtectionEnabled(bool enable = true, QWidget *msgBoxParent = 0); + + // Note: Enabling wrap will make isSingleLine() not work correctly, so only use this if minHeight() > 1! + void setWordWrapEnabled(bool enable = true); signals: void textEntered(const QString &text); + void noTextEntered(); protected: virtual void keyPressEvent(QKeyEvent * event); @@ -78,6 +87,7 @@ protected: private slots: void on_returnPressed(); + void on_returnPressed(const QString &text); void on_textChanged(); void on_documentHeightChanged(qreal height); @@ -85,26 +95,29 @@ private slots: void historyMoveForward(); void historyMoveBack(); + QString convertHtmlToMircCodes(const QString &text); + QString convertMircCodesToHtml(const QString &text); + private: QStringList history; QHash tempHistory; qint32 idx; Mode _mode; - QTextOption::WrapMode _wrapMode; - int _numLines; + bool _singleLine; int _minHeight; int _maxHeight; bool _scrollBarsEnabled; + bool _pasteProtectionEnabled; QSize _sizeHint; qreal _lastDocumentHeight; + QHash mircColorMap; + void reset(); void showHistoryEntry(); void updateScrollBars(); - - inline int numLines() const { return _numLines; } - void setNumLines(int); + void updateSizeHint(); }; #endif