Qt 6.x
The Qt SDK
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
50 void setTextCursor(const QTextCursor &cursor);
51 QTextCursor textCursor() const;
52
53 void setTextInteractionFlags(Qt::TextInteractionFlags flags);
54 Qt::TextInteractionFlags textInteractionFlags() const;
55
56 QString toPlainText() const;
57
58#if QT_CONFIG(texthtmlparser)
59 QString toHtml() const;
60#endif
61#if QT_CONFIG(textmarkdownwriter)
62 QString toMarkdown() const;
63#endif
64
65 bool hasImState() const;
66 bool overwriteMode() const;
67 void setOverwriteMode(bool overwrite);
68 bool cursorVisible() const;
69 void setCursorVisible(bool visible);
70 QRectF anchorRect() const;
71 QRectF cursorRect(const QTextCursor &cursor) const;
72 QRectF cursorRect() const;
75
76 QString hoveredLink() const;
77 QString anchorAt(const QPointF &pos) const;
78 QTextBlock blockWithMarkerAt(const QPointF &pos) const;
79
81
82 void setAcceptRichText(bool accept);
83
85
86 bool canPaste() const;
87
88 void setCursorIsFocusIndicator(bool b);
89 void setWordSelectionEnabled(bool enabled);
90#if QT_VERSION < QT_VERSION_CHECK(7, 0, 0)
91 void setTouchDragSelectionEnabled(bool enabled);
92#endif
93
94 void updateCursorRectangle(bool force);
95
96 virtual int hitTest(const QPointF &point, Qt::HitTestAccuracy accuracy) const;
97 virtual QRectF blockBoundingRect(const QTextBlock &block) const;
98
99 QString preeditText() const;
100
101public Q_SLOTS:
102 void setPlainText(const QString &text);
103 void setMarkdownText(const QString &text);
104 void setHtml(const QString &text);
105
106#if QT_CONFIG(clipboard)
107 void cut();
108 void copy();
110#endif
111
112 void undo();
113 void redo();
114 void clear();
115
116 void selectAll();
117
121 void contentsChange(int from, int charsRemoved, int charsAdded);
122 void undoAvailable(bool b);
123 void redoAvailable(bool b);
125 void copyAvailable(bool b);
128 void overwriteModeChanged(bool overwriteMode);
129
130 // control signals
134 void linkActivated(const QString &link);
135 void linkHovered(const QString &link);
138
139public:
140 virtual void processEvent(QEvent *e, const QTransform &transform);
141 void processEvent(QEvent *e, const QPointF &coordinateOffset = QPointF());
142
143#if QT_CONFIG(im)
144 virtual QVariant inputMethodQuery(Qt::InputMethodQuery property) const;
145 Q_INVOKABLE QVariant inputMethodQuery(Qt::InputMethodQuery query, const QVariant &argument) const;
146#endif
147
148 virtual QMimeData *createMimeDataFromSelection() const;
149 virtual bool canInsertFromMimeData(const QMimeData *source) const;
150 virtual void insertFromMimeData(const QMimeData *source);
151
152 bool cursorOn() const;
153
154protected:
155 void timerEvent(QTimerEvent *e) override;
156
157 bool event(QEvent *e) override;
158
159private:
160 Q_DISABLE_COPY(QQuickTextControl)
161 Q_PRIVATE_SLOT(d_func(), void _q_updateCurrentCharFormatAndSelection())
162 Q_PRIVATE_SLOT(d_func(), void _q_updateCursorPosChanged(const QTextCursor &))
163};
164
165
166// also used by QLabel
168{
169public:
170 inline QQuickTextEditMimeData(const QTextDocumentFragment &aFragment) : fragment(aFragment) {}
171
172 QStringList formats() const override;
173
174protected:
175 QVariant retrieveData(const QString &mimeType, QMetaType type) const override;
176
177private:
178 void setup() const;
179
180 mutable QTextDocumentFragment fragment;
181};
182
184
185#endif // QQuickTextControl_H
Mode
\keyword clipboard mode
Definition qclipboard.h:27
\inmodule QtCore
Definition qcoreevent.h:45
\inmodule QtCore
Definition qmetatype.h:320
\inmodule QtCore
Definition qmimedata.h:16
\inmodule QtCore
Definition qobject.h:90
virtual void timerEvent(QTimerEvent *event)
This event handler can be reimplemented in a subclass to receive timer events for the object.
Definition qobject.cpp:1433
\inmodule QtCore\reentrant
Definition qpoint.h:214
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:483
\inmodule QtCore
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:127
\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:359
The QTransform class specifies 2D transformations of a coordinate system.
Definition qtransform.h:20
\inmodule QtCore
Definition qvariant.h:64
b clear()
QString text
QCursor cursor
double e
EGLint EGLint * formats
Combined button and popup list for selecting options.
InputMethodQuery
HitTestAccuracy
Definition qnamespace.h:202
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
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent