19 #ifndef QTSPELL_TEXTEDITCHECKER_P_HPP
20 #define QTSPELL_TEXTEDITCHECKER_P_HPP
22 #include <QTextCursor>
35 : QTextCursor(), m_wordRegEx(QRegExp(
"^\\w$")) {}
37 : QTextCursor(document), m_wordRegEx(QRegExp(
"^\\w$")) {}
39 : QTextCursor(block), m_wordRegEx(QRegExp(
"^\\w$")) {}
41 : QTextCursor(cursor), m_wordRegEx(QRegExp(
"^\\w$")) {}
84 return character.contains(m_wordRegEx);
93 class TextEditProxy :
public QObject {
96 TextEditProxy(QObject* parent =
nullptr) : QObject(parent) {}
97 virtual QTextCursor textCursor()
const = 0;
98 virtual QTextDocument* document()
const = 0;
99 virtual QPoint mapToGlobal(
const QPoint& pos)
const = 0;
100 virtual QMenu* createStandardContextMenu() = 0;
101 virtual QTextCursor cursorForPosition(
const QPoint& pos)
const = 0;
102 virtual void setContextMenuPolicy(Qt::ContextMenuPolicy policy) = 0;
103 virtual void setTextCursor(
const QTextCursor& cursor) = 0;
104 virtual Qt::ContextMenuPolicy contextMenuPolicy()
const = 0;
105 virtual void installEventFilter(QObject* filterObj) = 0;
106 virtual void removeEventFilter(QObject* filterObj) = 0;
107 virtual void ensureCursorVisible() = 0;
110 void customContextMenuRequested(
const QPoint& pos);
112 void editDestroyed();
116 class TextEditProxyT :
public TextEditProxy {
118 TextEditProxyT(T* textEdit, QObject* parent =
nullptr) : TextEditProxy(parent), m_textEdit(textEdit) {
119 connect(textEdit, &T::customContextMenuRequested,
this, &TextEditProxy::customContextMenuRequested);
120 connect(textEdit, &T::textChanged,
this, &TextEditProxy::textChanged);
121 connect(textEdit, &T::destroyed,
this, &TextEditProxy::editDestroyed);
123 QTextCursor textCursor()
const{
return m_textEdit->textCursor(); }
124 QTextDocument* document()
const{
return m_textEdit->document(); }
125 QPoint mapToGlobal(
const QPoint& pos)
const{
return m_textEdit->mapToGlobal(pos); }
126 QMenu* createStandardContextMenu(){
return m_textEdit->createStandardContextMenu(); }
127 QTextCursor cursorForPosition(
const QPoint& pos)
const{
return m_textEdit->cursorForPosition(pos); }
128 void setContextMenuPolicy(Qt::ContextMenuPolicy policy){ m_textEdit->setContextMenuPolicy(policy); }
129 void setTextCursor(
const QTextCursor& cursor){ m_textEdit->setTextCursor(cursor); }
130 Qt::ContextMenuPolicy contextMenuPolicy()
const{
return m_textEdit->contextMenuPolicy(); }
131 void installEventFilter(QObject* filterObj){ m_textEdit->installEventFilter(filterObj); }
132 void removeEventFilter(QObject* filterObj){ m_textEdit->removeEventFilter(filterObj); }
133 void ensureCursorVisible() { m_textEdit->ensureCursorVisible(); }
136 T* m_textEdit =
nullptr;
void moveWordStart(MoveMode moveMode=MoveAnchor)
Move the cursor to the start of the current word. Cursor must be inside a word. This method correctly...
QString prevChar(int num=1) const
Retreive the num-th previous character.
bool isWordChar(const QString &character) const
Returns whether the specified character is a word character.
void moveWordEnd(MoveMode moveMode=MoveAnchor)
Move the cursor to the end of the current word. Cursor must be inside a word. This method correctly h...
QString nextChar(int num=1) const
Retreive the num-th next character.
bool isInsideWord() const
Returns whether the cursor is inside a word.