X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fuisupport%2Fmultilineedit.h;h=bd0617262f6cc6af8511e8eb12f0c4795c567a3a;hb=2c8434f74c68194d56f2084f637419123e61d18b;hp=7cf418920ec625eaa8ff27cb8cd101211a0ac2a0;hpb=68878dc8366f2f4a0afe132847aad9a51a80cdbf;p=quassel.git diff --git a/src/uisupport/multilineedit.h b/src/uisupport/multilineedit.h index 7cf41892..bd061726 100644 --- a/src/uisupport/multilineedit.h +++ b/src/uisupport/multilineedit.h @@ -18,16 +18,14 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef MULTILINEEDIT_H_ -#define MULTILINEEDIT_H_ +#pragma once + +#include "uisupport-export.h" #include #include -#ifdef HAVE_KDE4 -# include -# define MultiLineEditParent KTextEdit -#elif defined HAVE_KF5 +#if defined HAVE_KF5 # include # define MultiLineEditParent KTextEdit #else @@ -35,7 +33,13 @@ # define MultiLineEditParent QTextEdit #endif -class MultiLineEdit : public MultiLineEditParent +#if defined HAVE_SONNET && !defined HAVE_KDE +# include +# include +# include +#endif + +class UISUPPORT_EXPORT MultiLineEdit : public MultiLineEditParent { Q_OBJECT @@ -45,8 +49,7 @@ public: MultiLine }; - MultiLineEdit(QWidget *parent = 0); - ~MultiLineEdit(); + MultiLineEdit(QWidget *parent = nullptr); void setCustomFont(const QFont &); // should be used instead setFont(), so we can set our size correctly @@ -74,9 +77,6 @@ public: inline bool emacsMode() const { return _emacsMode; } void addCompletionSpace(); -#if defined HAVE_KF5 || defined HAVE_KDE4 - void createHighlighter() override; -#endif public slots: void setMode(Mode mode); @@ -84,8 +84,7 @@ public slots: 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); + void setPasteProtectionEnabled(bool enable = true, QWidget *msgBoxParent = nullptr); void setLineWrapEnabled(bool enable = false); inline void setHistory(QStringList history) { _history = history; } @@ -101,6 +100,10 @@ protected: void keyPressEvent(QKeyEvent *event) override; void resizeEvent(QResizeEvent *event) override; +#if defined HAVE_SONNET && !defined HAVE_KDE + void contextMenuEvent(QContextMenuEvent *event) override; +#endif + private slots: void on_returnPressed(); void on_returnPressed(QString text); @@ -115,29 +118,38 @@ private slots: QString convertMircCodesToHtml(const QString &text); bool mircCodesChanged(QTextCursor &cursor, QTextCursor &peekcursor); +private: + void reset(); + void showHistoryEntry(); + void updateScrollBars(); + void updateSizeHint(); + private: QStringList _history; QHash _tempHistory; - qint32 _idx; - Mode _mode; - bool _singleLine; - int _minHeight; - int _maxHeight; - bool _scrollBarsEnabled; - bool _pasteProtectionEnabled; - bool _emacsMode; - int _completionSpace; + qint32 _idx{0}; + Mode _mode{SingleLine}; + bool _singleLine{true}; + int _minHeight{1}; + int _maxHeight{5}; + bool _scrollBarsEnabled{true}; + bool _pasteProtectionEnabled{true}; + bool _emacsMode{false}; + int _completionSpace{0}; QSize _sizeHint; - qreal _lastDocumentHeight; + qreal _lastDocumentHeight{-1}; QMap _mircColorMap; - void reset(); - void showHistoryEntry(); - void updateScrollBars(); - void updateSizeHint(); -}; +#if defined HAVE_SONNET && !defined HAVE_KDE + // This member function is provided by KTextEdit + Sonnet::Highlighter *highlighter() const; +private slots: + void setSpellCheckEnabled(bool enabled); +private: + Sonnet::SpellCheckDecorator *_spellCheckDecorator{nullptr}; #endif +};