X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fmultilineedit.h;h=b4badfb4f65ad74dc08ffd45b1cddc3d92f46b1d;hp=7591a51055aba0e681b9264f9bfeb9279324d90d;hb=1a45f16a9734820fba42fe1db3f38dd1eee49df6;hpb=399cac566c86141228358a7e7e14b2375fdc3259 diff --git a/src/uisupport/multilineedit.h b/src/uisupport/multilineedit.h index 7591a510..b4badfb4 100644 --- a/src/uisupport/multilineedit.h +++ b/src/uisupport/multilineedit.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2015 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -24,10 +24,7 @@ #include #include -#ifdef HAVE_KDE4 -# include -# define MultiLineEditParent KTextEdit -#elif defined HAVE_KF5 +#if defined HAVE_KF5 # include # define MultiLineEditParent KTextEdit #else @@ -35,8 +32,11 @@ # define MultiLineEditParent QTextEdit #endif -class QKeyEvent; -class TabCompleter; +#if defined HAVE_SONNET && !defined HAVE_KDE +# include +# include +# include +#endif class MultiLineEdit : public MultiLineEditParent { @@ -64,8 +64,8 @@ public: inline bool isSingleLine() const { return _singleLine; } inline bool pasteProtectionEnabled() const { return _pasteProtectionEnabled; } - virtual QSize sizeHint() const; - virtual QSize minimumSizeHint() const; + QSize sizeHint() const override; + QSize minimumSizeHint() const override; inline QString mircColorFromRGB(QString rgbColor) const { return _mircColorMap.key(rgbColor); } inline QString rgbColorFromMirc(QString mircColor) const { return _mircColorMap[mircColor]; } @@ -76,13 +76,14 @@ public: inline qint32 idx() const { return _idx; } inline bool emacsMode() const { return _emacsMode; } + void addCompletionSpace(); + 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); void setLineWrapEnabled(bool enable = false); @@ -95,13 +96,17 @@ signals: void noTextEntered(); protected: - virtual bool event(QEvent *e); - virtual void keyPressEvent(QKeyEvent *event); - virtual void resizeEvent(QResizeEvent *event); + bool event(QEvent *e) override; + 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(const QString &text); + void on_returnPressed(QString text); void on_textChanged(); void on_documentHeightChanged(qreal height); @@ -113,6 +118,12 @@ 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; @@ -124,16 +135,23 @@ private: bool _scrollBarsEnabled; bool _pasteProtectionEnabled; bool _emacsMode; + int _completionSpace; QSize _sizeHint; qreal _lastDocumentHeight; 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 };