Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qquicktextcontrol_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QQUICKTEXTCONTROL_P_H
5#define QQUICKTEXTCONTROL_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtGui/qtextdocument.h>
19#include <QtGui/qtextoption.h>
20#include <QtGui/qtextcursor.h>
21#include <QtGui/qtextformat.h>
22#include <QtCore/qrect.h>
23#include <QtGui/qabstracttextdocumentlayout.h>
24#include <QtGui/qtextdocumentfragment.h>
25#include <QtGui/qclipboard.h>
26#include <QtGui/private/qinputcontrol_p.h>
27#include <QtCore/qmimedata.h>
28
30
31
32class QStyleSheet;
33class QTextDocument;
35class QAbstractScrollArea;
36class QEvent;
37class QTimerEvent;
38class QTransform;
39
41{
43 Q_DECLARE_PRIVATE(QQuickTextControl)
44public:
45 explicit QQuickTextControl(QTextDocument *doc, QObject *parent = nullptr);
46 virtual ~QQuickTextControl();
47
48 QTextDocument *document() const;
49 void setDocument(QTextDocument *doc);
50
51 void setTextCursor(const QTextCursor &cursor);
52 QTextCursor textCursor() const;
53
54 void setTextInteractionFlags(Qt::TextInteractionFlags flags);
55 Qt::TextInteractionFlags textInteractionFlags() const;
56
57 QString toPlainText() const;
58
59#if QT_CONFIG(texthtmlparser)
60 QString toHtml() const;
61#endif
62#if QT_CONFIG(textmarkdownwriter)
63 QString toMarkdown() const;
64#endif
65
66 bool hasImState() const;
67 bool overwriteMode() const;
68 void setOverwriteMode(bool overwrite);
69 bool cursorVisible() const;
70 void setCursorVisible(bool visible);
71 QRectF anchorRect() const;
72 QRectF cursorRect(const QTextCursor &cursor) const;
73 QRectF cursorRect() const;
76
77 QString hoveredLink() const;
78 QString anchorAt(const QPointF &pos) const;
79 QTextBlock blockWithMarkerAt(const QPointF &pos) const;
80
82
83 void setAcceptRichText(bool accept);
84
86
87 bool canPaste() const;
88
89 void setCursorIsFocusIndicator(bool b);
90 void setWordSelectionEnabled(bool enabled);
91#if QT_VERSION < QT_VERSION_CHECK(7, 0, 0)
92 void setTouchDragSelectionEnabled(bool enabled);
93#endif
94
95 void updateCursorRectangle(bool force);
96
97 virtual int hitTest(const QPointF &point, Qt::HitTestAccuracy accuracy) const;
98 virtual QRectF blockBoundingRect(const QTextBlock &block) const;
99
100 QString preeditText() const;
101
102public Q_SLOTS:
103 void setPlainText(const QString &text);
104 void setMarkdownText(const QString &text);
105 void setHtml(const QString &text);
106
107#if QT_CONFIG(clipboard)
108 void cut();
109 void copy();
111#endif
112
113 void undo();
114 void redo();
115 void clear();
116
117 void selectAll();
118
122 void contentsChange(int from, int charsRemoved, int charsAdded);
123 void undoAvailable(bool b);
124 void redoAvailable(bool b);
126 void copyAvailable(bool b);
129 void overwriteModeChanged(bool overwriteMode);
130
131 // control signals
135 void linkActivated(const QString &link);
136 void linkHovered(const QString &link);
139
140public:
141 virtual void processEvent(QEvent *e, const QTransform &transform);
142 void processEvent(QEvent *e, const QPointF &coordinateOffset = QPointF());
143
144#if QT_CONFIG(im)
145 virtual QVariant inputMethodQuery(Qt::InputMethodQuery property) const;
146 Q_INVOKABLE QVariant inputMethodQuery(Qt::InputMethodQuery query, const QVariant &argument) const;
147#endif
148
149 virtual QMimeData *createMimeDataFromSelection() const;
150 virtual bool canInsertFromMimeData(const QMimeData *source) const;
151 virtual void insertFromMimeData(const QMimeData *source);
152
153 bool cursorOn() const;
154
155protected:
156 void timerEvent(QTimerEvent *e) override;
157
158 bool event(QEvent *e) override;
159
160private:
161 Q_DISABLE_COPY(QQuickTextControl)
162 Q_PRIVATE_SLOT(d_func(), void _q_updateCurrentCharFormatAndSelection())
163 Q_PRIVATE_SLOT(d_func(), void _q_updateCursorPosChanged(const QTextCursor &))
164};
165
166
167// also used by QLabel
169{
170public:
171 inline QQuickTextEditMimeData(const QTextDocumentFragment &aFragment) : fragment(aFragment) {}
172
173 QStringList formats() const override;
174
175protected:
176 QVariant retrieveData(const QString &mimeType, QMetaType type) const override;
177
178private:
179 void setup() const;
180
181 mutable QTextDocumentFragment fragment;
182};
183
185
186#endif // QQuickTextControl_H
Mode
\keyword clipboard mode
Definition qclipboard.h:27
\inmodule QtCore
Definition qcoreevent.h:45
\inmodule QtCore
Definition qmetatype.h:341
\inmodule QtCore
Definition qmimedata.h:16
\inmodule QtCore
Definition qobject.h:103
virtual void timerEvent(QTimerEvent *event)
This event handler can be reimplemented in a subclass to receive timer events for the object.
Definition qobject.cpp:1470
\inmodule QtCore\reentrant
Definition qpoint.h:217
void currentCharFormatChanged(const QTextCharFormat &format)
void linkHovered(const QString &link)
void contentsChange(int from, int charsRemoved, int charsAdded)
void setCursorWidth(int width)
void cursorPositionChanged()
void redoAvailable(bool b)
QRectF selectionRect() const
void preeditTextChanged()
void markerHovered(bool marker)
void copyAvailable(bool b)
void undoAvailable(bool b)
void cursorRectangleChanged()
void overwriteModeChanged(bool overwriteMode)
void updateCursorRequest()
QRectF selectionRect(const QTextCursor &cursor) const
void linkActivated(const QString &link)
QQuickTextEditMimeData(const QTextDocumentFragment &aFragment)
\inmodule QtCore\reentrant
Definition qrect.h:484
\inmodule QtCore
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\reentrant
\reentrant \inmodule QtGui
Definition qtextcursor.h:30
MoveMode
\value MoveAnchor Moves the anchor to the same position as the cursor itself.
Definition qtextcursor.h:47
MoveOperation
\value NoMove Keep the cursor where it is
Definition qtextcursor.h:61
\reentrant \inmodule QtGui
\inmodule QtCore
Definition qcoreevent.h:366
The QTransform class specifies 2D transformations of a coordinate system.
Definition qtransform.h:20
\inmodule QtCore
Definition qvariant.h:65
b clear()
QString text
QCursor cursor
EGLint EGLint * formats
Combined button and popup list for selecting options.
InputMethodQuery
HitTestAccuracy
Definition qnamespace.h:203
static jboolean cut(JNIEnv *, jobject)
static jboolean copy(JNIEnv *, jobject)
static jboolean paste(JNIEnv *, jobject)
static jboolean selectAll(JNIEnv *, jobject)
static QString toPlainText(const QString &text)
const char * mimeType
GLboolean GLboolean GLboolean b
GLenum mode
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLint GLsizei width
GLenum type
GLbitfield flags
const GLchar * marker
GLint GLsizei GLsizei GLenum format
GLsizei GLsizei GLchar * source
struct _cl_event * event
GLuint GLenum GLenum transform
GLenum query
#define Q_AUTOTEST_EXPORT
#define Q_OBJECT
#define Q_INVOKABLE
#define Q_SLOTS
#define Q_PRIVATE_SLOT(d, signature)
#define Q_SIGNALS
const char property[13]
Definition qwizard.cpp:101
stack undo()
edit textCursor().insertText(text)
[0]
QDBusArgument argument