projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ci: Add ubuntu-groovy (20.10), remove ubuntu-eoan (19.10)
[quassel.git]
/
src
/
uisupport
/
multilineedit.h
diff --git
a/src/uisupport/multilineedit.h
b/src/uisupport/multilineedit.h
index
f83c4de
..
f4b2d6d
100644
(file)
--- a/
src/uisupport/multilineedit.h
+++ b/
src/uisupport/multilineedit.h
@@
-1,5
+1,5
@@
/***************************************************************************
/***************************************************************************
- * Copyright (C) 2005-20
15
by the Quassel Project *
+ * Copyright (C) 2005-20
20
by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
@@
-18,55
+18,60
@@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#ifndef MULTILINEEDIT_H_
-#define MULTILINEEDIT_H_
+#pragma once
+
+#include "uisupport-export.h"
-#include <QKeyEvent>
#include <QHash>
#include <QHash>
+#include <QKeyEvent>
-#ifdef HAVE_KDE4
-# include <KDE/KTextEdit>
-# define MultiLineEditParent KTextEdit
-#elif defined HAVE_KF5
-# include <KTextWidgets/KTextEdit>
-# define MultiLineEditParent KTextEdit
+#if defined HAVE_KF5
+# include <KTextWidgets/KTextEdit>
+# define MultiLineEditParent KTextEdit
#else
#else
-# include <QTextEdit>
-# define MultiLineEditParent QTextEdit
+# include <QTextEdit>
+# define MultiLineEditParent QTextEdit
+#endif
+
+#if defined HAVE_SONNET && !defined HAVE_KDE
+# include <QContextMenuEvent>
+
+# include <Sonnet/Highlighter>
+# include <Sonnet/SpellCheckDecorator>
#endif
#endif
-class MultiLineEdit : public MultiLineEditParent
+class
UISUPPORT_EXPORT
MultiLineEdit : public MultiLineEditParent
{
Q_OBJECT
public:
{
Q_OBJECT
public:
- enum Mode {
+ enum Mode
+ {
SingleLine,
MultiLine
};
SingleLine,
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
+ 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() const { return toPlainText(); }
inline QString html() const { return toHtml(); }
inline int cursorPosition() const { return textCursor().position(); }
// Compatibility methods with the rest of the classes which still expect this to be a QLineEdit
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 insert(const QString
&
newText) { insertPlainText(newText); }
inline void backspace() { keyPressEvent(new QKeyEvent(QEvent::KeyPress, Qt::Key_Backspace, Qt::NoModifier)); }
inline bool hasSelectedText() const { return textCursor().hasSelection(); }
inline bool isSingleLine() const { return _singleLine; }
inline bool pasteProtectionEnabled() const { return _pasteProtectionEnabled; }
inline void backspace() { keyPressEvent(new QKeyEvent(QEvent::KeyPress, Qt::Key_Backspace, Qt::NoModifier)); }
inline bool hasSelectedText() const { return textCursor().hasSelection(); }
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]; }
inline QString mircColorFromRGB(QString rgbColor) const { return _mircColorMap.key(rgbColor); }
inline QString rgbColorFromMirc(QString mircColor) const { return _mircColorMap[mircColor]; }
- inline QMap<QString, QString>
mircColorMap() const { return _mircColorMap; }
+ inline QMap<QString, QString> mircColorMap() const { return _mircColorMap; }
inline QStringList history() const { return _history; }
inline QHash<int, QString> tempHistory() const { return _tempHistory; }
inline QStringList history() const { return _history; }
inline QHash<int, QString> tempHistory() const { return _tempHistory; }
@@
-81,8
+86,7
@@
public slots:
void setMaxHeight(int numLines);
void setEmacsMode(bool enable = true);
void setScrollBarsEnabled(bool enable = true);
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; }
void setLineWrapEnabled(bool enable = false);
inline void setHistory(QStringList history) { _history = history; }
@@
-90,13
+94,17
@@
public slots:
inline void setIdx(qint32 idx) { _idx = idx; }
signals:
inline void setIdx(qint32 idx) { _idx = idx; }
signals:
- void textEntered(const QString
&
text);
+ void textEntered(const QString
&
text);
void noTextEntered();
protected:
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();
private slots:
void on_returnPressed();
@@
-104,37
+112,46
@@
private slots:
void on_textChanged();
void on_documentHeightChanged(qreal height);
void on_textChanged();
void on_documentHeightChanged(qreal height);
- bool addToHistory(const QString
&
text, bool temporary = false);
+ bool addToHistory(const QString
&
text, bool temporary = false);
void historyMoveForward();
void historyMoveBack();
QString convertRichtextToMircCodes();
void historyMoveForward();
void historyMoveBack();
QString convertRichtextToMircCodes();
- QString convertMircCodesToHtml(const QString &text);
- bool mircCodesChanged(QTextCursor &cursor, QTextCursor &peekcursor);
+ QString convertMircCodesToHtml(const QString& text);
+ bool mircCodesChanged(QTextCursor& cursor, QTextCursor& peekcursor);
+
+private:
+ void reset();
+ void showHistoryEntry();
+ void updateScrollBars();
+ void updateSizeHint();
private:
QStringList _history;
QHash<int, QString> _tempHistory;
private:
QStringList _history;
QHash<int, QString> _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;
QSize _sizeHint;
- qreal _lastDocumentHeight;
+ qreal _lastDocumentHeight
{-1}
;
QMap<QString, QString> _mircColorMap;
QMap<QString, QString> _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
#endif
+};