/***************************************************************************
- * Copyright (C) 2005-2013 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 *
#include <QKeyEvent>
#include <QHash>
-#ifdef HAVE_KDE
+#ifdef HAVE_KDE4
# include <KDE/KTextEdit>
# define MultiLineEditParent KTextEdit
+#elif defined HAVE_KF5
+# include <KTextWidgets/KTextEdit>
+# define MultiLineEditParent KTextEdit
#else
# include <QTextEdit>
# define MultiLineEditParent QTextEdit
#endif
-class QKeyEvent;
-class TabCompleter;
-
class MultiLineEdit : public MultiLineEditParent
{
Q_OBJECT
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 qint32 idx() const { return _idx; }
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);
void setMinHeight(int numLines);
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);
+ void setLineWrapEnabled(bool enable = false);
inline void setHistory(QStringList history) { _history = history; }
inline void setTempHistory(QHash<int, QString> tempHistory) { _tempHistory = tempHistory; }
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;
private slots:
void on_returnPressed();
- void on_returnPressed(const QString &text);
+ void on_returnPressed(QString text);
void on_textChanged();
void on_documentHeightChanged(qreal height);
bool _scrollBarsEnabled;
bool _pasteProtectionEnabled;
bool _emacsMode;
+ int _completionSpace;
QSize _sizeHint;
qreal _lastDocumentHeight;