Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
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// Qt-Security score:significant reason:default
4
5#ifndef QQUICKTEXTCONTROL_P_H
6#define QQUICKTEXTCONTROL_P_H
7
8//
9// W A R N I N G
10// -------------
11//
12// This file is not part of the Qt API. It exists purely as an
13// implementation detail. This header file may change from version to
14// version without notice, or even be removed.
15//
16// We mean it.
17//
18
19#include <QtGui/qtextdocument.h>
20#include <QtGui/qtextoption.h>
21#include <QtGui/qtextcursor.h>
22#include <QtGui/qtextformat.h>
23#include <QtCore/qrect.h>
24#include <QtGui/qabstracttextdocumentlayout.h>
25#include <QtGui/qtextdocumentfragment.h>
26#include <QtGui/qclipboard.h>
27#include <QtGui/private/qinputcontrol_p.h>
28#include <QtCore/qmimedata.h>
29
30QT_BEGIN_NAMESPACE
31
32
33class QStyleSheet;
34class QTextDocument;
36class QAbstractScrollArea;
37class QEvent;
38class QTimerEvent;
39class QTransform;
40
41class Q_AUTOTEST_EXPORT QQuickTextControl : public QInputControl
42{
43 Q_OBJECT
44 Q_DECLARE_PRIVATE(QQuickTextControl)
45public:
46 explicit QQuickTextControl(QTextDocument *doc, QObject *parent = nullptr);
47 virtual ~QQuickTextControl();
48
49 QTextDocument *document() const;
50 void setDocument(QTextDocument *doc);
51
52 void setTextCursor(const QTextCursor &cursor);
53 QTextCursor textCursor() const;
54
55 void setTextInteractionFlags(Qt::TextInteractionFlags flags);
56 Qt::TextInteractionFlags textInteractionFlags() const;
57
58 QString toPlainText() const;
59
60#if QT_CONFIG(texthtmlparser)
61 QString toHtml() const;
62#endif
63#if QT_CONFIG(textmarkdownwriter)
64 QString toMarkdown() const;
65#endif
66
67 bool hasImState() const;
68 bool overwriteMode() const;
69 void setOverwriteMode(bool overwrite);
70 bool cursorVisible() const;
71 void setCursorVisible(bool visible);
72 QRectF anchorRect() const;
73 QRectF cursorRect(const QTextCursor &cursor) const;
74 QRectF cursorRect() const;
75 QRectF selectionRect(const QTextCursor &cursor) const;
76 QRectF selectionRect() const;
77
78 QString hoveredLink() const;
79 QString hoveredToolTip() const;
80 QString anchorAt(const QPointF &pos) const;
81 QTextCharFormat charFormatAt(const QPointF &pos) const;
82 QTextBlock blockWithMarkerAt(const QPointF &pos) const;
83
84 void setCursorWidth(int width);
85
86 void setAcceptRichText(bool accept);
87
88 void moveCursor(QTextCursor::MoveOperation op, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor);
89
90 bool canPaste() const;
91
92 void setCursorIsFocusIndicator(bool b);
93 void setWordSelectionEnabled(bool enabled);
94#if QT_VERSION < QT_VERSION_CHECK(7, 0, 0)
95 void setTouchDragSelectionEnabled(bool enabled);
96#endif
97
98 void updateCursorRectangle(bool force);
99
100 virtual int hitTest(const QPointF &point, Qt::HitTestAccuracy accuracy) const;
101 virtual QRectF blockBoundingRect(const QTextBlock &block) const;
102
103 QString preeditText() const;
104
105public Q_SLOTS:
106 void setPlainText(const QString &text);
107 void setMarkdownText(const QString &text);
108 void setHtml(const QString &text);
109
110#if QT_CONFIG(clipboard)
111 void cut();
112 void copy();
113 void paste(QClipboard::Mode mode = QClipboard::Clipboard);
114#endif
115
116 void undo();
117 void redo();
118 void clear();
119
120 void selectAll();
121
122Q_SIGNALS:
123 void textChanged();
124 void preeditTextChanged();
125 void contentsChange(int from, int charsRemoved, int charsAdded);
126 void undoAvailable(bool b);
127 void redoAvailable(bool b);
128 void currentCharFormatChanged(const QTextCharFormat &format);
129 void copyAvailable(bool b);
130 void selectionChanged();
131 void cursorPositionChanged();
132 void overwriteModeChanged(bool overwriteMode);
133
134 // control signals
135 void updateCursorRequest();
136 void updateRequest();
137 void cursorRectangleChanged();
138 void linkActivated(const QString &link);
139 void linkHovered(const QString &link);
140 void markerClicked();
141 void markerHovered(bool marker);
142 void hoveredToolTipChanged();
143
144public:
145 virtual void processEvent(QEvent *e, const QTransform &transform);
146 void processEvent(QEvent *e, const QPointF &coordinateOffset = QPointF());
147
148#if QT_CONFIG(im)
149 virtual QVariant inputMethodQuery(Qt::InputMethodQuery property) const;
150 Q_INVOKABLE QVariant inputMethodQuery(Qt::InputMethodQuery query, const QVariant &argument) const;
151#endif
152
153 virtual QMimeData *createMimeDataFromSelection() const;
154 virtual bool canInsertFromMimeData(const QMimeData *source) const;
155 virtual void insertFromMimeData(const QMimeData *source);
156
157 bool cursorOn() const;
158
159 bool isBeingEdited();
160
161protected:
162 void timerEvent(QTimerEvent *e) override;
163
164 bool event(QEvent *e) override;
165
166private:
167 Q_DISABLE_COPY(QQuickTextControl)
168 Q_PRIVATE_SLOT(d_func(), void _q_updateCurrentCharFormatAndSelection())
169 Q_PRIVATE_SLOT(d_func(), void _q_updateCursorPosChanged(const QTextCursor &))
170};
171
172
173// also used by QLabel
175{
176public:
177 inline QQuickTextEditMimeData(const QTextDocumentFragment &aFragment) : fragment(aFragment) {}
178
179 QStringList formats() const override;
180
181protected:
182 QVariant retrieveData(const QString &mimeType, QMetaType type) const override;
183
184private:
185 void setup() const;
186
187 mutable QTextDocumentFragment fragment;
188};
189
190QT_END_NAMESPACE
191
192#endif // QQuickTextControl_H
\inmodule QtCore\reentrant
Definition qpoint.h:232
void selectionChanged(bool forceEmitSelectionChanged=false)
void extendWordwiseSelection(int suggestedNewPosition, qreal mouseXPosition)
QRectF rectForPosition(int position) const
void extendBlockwiseSelection(int suggestedNewPosition)
void setBlinkingCursorEnabled(bool enable)
void setCursorPosition(int pos, QTextCursor::MoveMode mode=QTextCursor::MoveAnchor)
QQuickTextEditMimeData(const QTextDocumentFragment &aFragment)
QVariant retrieveData(const QString &mimeType, QMetaType type) const override
Returns a variant with the given type containing data for the MIME type specified by mimeType.
QStringList formats() const override
Returns a list of formats supported by the object.
#define qApp
const int textCursorWidth