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
qtextdocument.h
Go to the documentation of this file.
1// Copyright (C) 2019 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 QTEXTDOCUMENT_H
5#define QTEXTDOCUMENT_H
6
7#include <QtGui/qtguiglobal.h>
8#include <QtCore/qobject.h>
9#include <QtCore/qsize.h>
10#include <QtCore/qrect.h>
11#include <QtCore/qvariant.h>
12#include <QtGui/qfont.h>
13#include <QtCore/qurl.h>
14#include <QtCore/qcontainerfwd.h>
15Q_MOC_INCLUDE(<QtGui/qtextcursor.h>)
16
18
19
21class QTextListFormat;
22class QRect;
23class QPainter;
26class QPoint;
27class QTextObject;
28class QTextFormat;
29class QTextFrame;
30class QTextBlock;
31class QVariant;
32class QRectF;
33class QTextOption;
34class QTextCursor;
35
36namespace Qt
37{
38#if QT_GUI_REMOVED_SINCE(6, 7)
39 Q_GUI_EXPORT bool mightBeRichText(const QString&);
40#endif
41 Q_GUI_EXPORT bool mightBeRichText(QAnyStringView);
42 Q_GUI_EXPORT QString convertFromPlainText(const QString &plain, WhiteSpaceMode mode = WhiteSpacePre);
43}
44
45class Q_GUI_EXPORT QAbstractUndoItem
46{
47public:
48 virtual ~QAbstractUndoItem() = 0;
49 virtual void undo() = 0;
50 virtual void redo() = 0;
51};
52
56
58
59class Q_GUI_EXPORT QTextDocument : public QObject
60{
62
63 Q_PROPERTY(bool undoRedoEnabled READ isUndoRedoEnabled WRITE setUndoRedoEnabled)
64 Q_PROPERTY(bool modified READ isModified WRITE setModified DESIGNABLE false)
65 Q_PROPERTY(QSizeF pageSize READ pageSize WRITE setPageSize)
66 Q_PROPERTY(QFont defaultFont READ defaultFont WRITE setDefaultFont)
67 Q_PROPERTY(bool useDesignMetrics READ useDesignMetrics WRITE setUseDesignMetrics)
68 Q_PROPERTY(bool layoutEnabled READ isLayoutEnabled WRITE setLayoutEnabled)
70 Q_PROPERTY(qreal textWidth READ textWidth WRITE setTextWidth)
71 Q_PROPERTY(int blockCount READ blockCount)
72 Q_PROPERTY(qreal indentWidth READ indentWidth WRITE setIndentWidth)
73#ifndef QT_NO_CSSPARSER
74 Q_PROPERTY(QString defaultStyleSheet READ defaultStyleSheet WRITE setDefaultStyleSheet)
75#endif
76 Q_PROPERTY(int maximumBlockCount READ maximumBlockCount WRITE setMaximumBlockCount)
77 Q_PROPERTY(qreal documentMargin READ documentMargin WRITE setDocumentMargin)
78 QDOC_PROPERTY(QTextOption defaultTextOption READ defaultTextOption WRITE setDefaultTextOption)
79 Q_PROPERTY(QUrl baseUrl READ baseUrl WRITE setBaseUrl NOTIFY baseUrlChanged)
80
81public:
82 explicit QTextDocument(QObject *parent = nullptr);
83 explicit QTextDocument(const QString &text, QObject *parent = nullptr);
85
86 QTextDocument *clone(QObject *parent = nullptr) const;
87
88 bool isEmpty() const;
89 virtual void clear();
90
91 void setUndoRedoEnabled(bool enable);
92 bool isUndoRedoEnabled() const;
93
94 bool isUndoAvailable() const;
95 bool isRedoAvailable() const;
96
97 int availableUndoSteps() const;
98 int availableRedoSteps() const;
99
100 int revision() const;
101
102 void setDocumentLayout(QAbstractTextDocumentLayout *layout);
103 QAbstractTextDocumentLayout *documentLayout() const;
104
111 void setMetaInformation(MetaInformation info, const QString &);
112 QString metaInformation(MetaInformation info) const;
113
114#ifndef QT_NO_TEXTHTMLPARSER
115 QString toHtml() const;
116 void setHtml(const QString &html);
117#endif
118
119#if QT_CONFIG(textmarkdownwriter) || QT_CONFIG(textmarkdownreader)
120 enum MarkdownFeature {
121 MarkdownNoHTML = 0x0020 | 0x0040,
122 MarkdownDialectCommonMark = 0,
123 MarkdownDialectGitHub = 0x0004 | 0x0008 | 0x0400 | 0x0100 | 0x0200 | 0x0800 | 0x4000 | 0x100000
124 };
125 Q_DECLARE_FLAGS(MarkdownFeatures, MarkdownFeature)
126 Q_FLAG(MarkdownFeatures)
127#endif
128
129#if QT_CONFIG(textmarkdownwriter)
130 QString toMarkdown(MarkdownFeatures features = MarkdownDialectGitHub) const;
131#endif
132
133#if QT_CONFIG(textmarkdownreader)
134 void setMarkdown(const QString &markdown, MarkdownFeatures features = MarkdownDialectGitHub);
135#endif
136
137 QString toRawText() const;
138 QString toPlainText() const;
139 void setPlainText(const QString &text);
140
141 QChar characterAt(int pos) const;
142
144 {
145 FindBackward = 0x00001,
146 FindCaseSensitively = 0x00002,
147 FindWholeWords = 0x00004
148 };
149 Q_DECLARE_FLAGS(FindFlags, FindFlag)
150
151 QTextCursor find(const QString &subString, int from = 0, FindFlags options = FindFlags()) const;
152 QTextCursor find(const QString &subString, const QTextCursor &cursor, FindFlags options = FindFlags()) const;
153
154#if QT_CONFIG(regularexpression)
155 QTextCursor find(const QRegularExpression &expr, int from = 0, FindFlags options = FindFlags()) const;
156 QTextCursor find(const QRegularExpression &expr, const QTextCursor &cursor, FindFlags options = FindFlags()) const;
157#endif
158
159 QTextFrame *frameAt(int pos) const;
160 QTextFrame *rootFrame() const;
161
162 QTextObject *object(int objectIndex) const;
163 QTextObject *objectForFormat(const QTextFormat &) const;
164
165 QTextBlock findBlock(int pos) const;
166 QTextBlock findBlockByNumber(int blockNumber) const;
167 QTextBlock findBlockByLineNumber(int blockNumber) const;
168 QTextBlock begin() const;
169 QTextBlock end() const;
170
171 QTextBlock firstBlock() const;
172 QTextBlock lastBlock() const;
173
174 void setPageSize(const QSizeF &size);
175 QSizeF pageSize() const;
176
177 void setDefaultFont(const QFont &font);
178 QFont defaultFont() const;
179
180 void setSuperScriptBaseline(qreal baseline);
181 qreal superScriptBaseline() const;
182
183 void setSubScriptBaseline(qreal baseline);
184 qreal subScriptBaseline() const;
185
186 void setBaselineOffset(qreal baseline);
187 qreal baselineOffset() const;
188
189 int pageCount() const;
190
191 bool isModified() const;
192
193#ifndef QT_NO_PRINTER
194 void print(QPagedPaintDevice *printer) const;
195#endif
196
198 UnknownResource = 0,
199 HtmlResource = 1,
200 ImageResource = 2,
201 StyleSheetResource = 3,
202 MarkdownResource = 4,
203
204 UserResource = 100
205 };
207
208 QVariant resource(int type, const QUrl &name) const;
209 void addResource(int type, const QUrl &name, const QVariant &resource);
210
211 using ResourceProvider = std::function<QVariant(const QUrl&)>;
212
213 QTextDocument::ResourceProvider resourceProvider() const;
214 void setResourceProvider(const ResourceProvider &provider);
215
216 static QTextDocument::ResourceProvider defaultResourceProvider();
217 static void setDefaultResourceProvider(const ResourceProvider &provider);
218
219 QList<QTextFormat> allFormats() const;
220
221 void markContentsDirty(int from, int length);
222
223 void setUseDesignMetrics(bool b);
224 bool useDesignMetrics() const;
225
226 void setLayoutEnabled(bool b);
227 bool isLayoutEnabled() const;
228
229 void drawContents(QPainter *painter, const QRectF &rect = QRectF());
230
231 void setTextWidth(qreal width);
232 qreal textWidth() const;
233
234 qreal idealWidth() const;
235
236 qreal indentWidth() const;
237 void setIndentWidth(qreal width);
238
239 qreal documentMargin() const;
240 void setDocumentMargin(qreal margin);
241
242 void adjustSize();
243 QSizeF size() const;
244
245 int blockCount() const;
246 int lineCount() const;
247 int characterCount() const;
248
249#ifndef QT_NO_CSSPARSER
250 void setDefaultStyleSheet(const QString &sheet);
251 QString defaultStyleSheet() const;
252#endif
253
254 void undo(QTextCursor *cursor);
255 void redo(QTextCursor *cursor);
256
257 enum Stacks {
258 UndoStack = 0x01,
259 RedoStack = 0x02,
260 UndoAndRedoStacks = UndoStack | RedoStack
261 };
262 void clearUndoRedoStacks(Stacks historyToClear = UndoAndRedoStacks);
263
264 int maximumBlockCount() const;
265 void setMaximumBlockCount(int maximum);
266
267 QTextOption defaultTextOption() const;
268 void setDefaultTextOption(const QTextOption &option);
269
270 QUrl baseUrl() const;
271 void setBaseUrl(const QUrl &url);
272
273 Qt::CursorMoveStyle defaultCursorMoveStyle() const;
274 void setDefaultCursorMoveStyle(Qt::CursorMoveStyle style);
275
277 void contentsChange(int from, int charsRemoved, int charsAdded);
279 void undoAvailable(bool);
280 void redoAvailable(bool);
284 void blockCountChanged(int newBlockCount);
285 void baseUrlChanged(const QUrl &url);
287
288public Q_SLOTS:
289 void undo();
290 void redo();
291 void appendUndoItem(QAbstractUndoItem *);
292 void setModified(bool m = true);
293
294protected:
295 virtual QTextObject *createObject(const QTextFormat &f);
296 Q_INVOKABLE virtual QVariant loadResource(int type, const QUrl &name);
297
299private:
300 Q_DISABLE_COPY(QTextDocument)
301 Q_DECLARE_PRIVATE(QTextDocument)
302 friend class QTextObjectPrivate;
303};
304
306
308
309#endif // QTEXTDOCUMENT_H
virtual ~QAbstractUndoItem()=0
virtual void undo()=0
virtual void redo()=0
\inmodule QtCore
\inmodule QtCore
\reentrant
Definition qfont.h:22
\inmodule QtCore
Definition qobject.h:103
\inmodule QtGui
The QPainter class performs low-level painting on widgets and other paint devices.
Definition qpainter.h:46
\inmodule QtCore\reentrant
Definition qpoint.h:25
\inmodule QtCore\reentrant
Definition qrect.h:484
\inmodule QtCore\reentrant
Definition qrect.h:30
\inmodule QtCore \reentrant
\inmodule QtCore
Definition qsize.h:208
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\reentrant
\reentrant \inmodule QtGui
Definition qtextcursor.h:30
\reentrant \inmodule QtGui
ResourceType
This enum describes the types of resources that can be loaded by QTextDocument's loadResource() funct...
void contentsChange(int from, int charsRemoved, int charsAdded)
This signal is emitted whenever the document's content changes; for example, when text is inserted or...
FindFlag
This enum describes the options available to QTextDocument's find function.
MetaInformation
This enum describes the different types of meta information that can be added to a document.
Stacks
\value UndoStack The undo stack.
void redoAvailable(bool)
This signal is emitted whenever redo operations become available (available is true) or unavailable (...
void undoCommandAdded()
void modificationChanged(bool m)
This signal is emitted whenever the content of the document changes in a way that affects the modific...
void baseUrlChanged(const QUrl &url)
void undoAvailable(bool)
This signal is emitted whenever undo operations become available (available is true) or unavailable (...
void cursorPositionChanged(const QTextCursor &cursor)
This signal is emitted whenever the position of a cursor changed due to an editing operation.
void contentsChanged()
This signal is emitted whenever the document's content changes; for example, when text is inserted or...
void documentLayoutChanged()
std::function< QVariant(const QUrl &)> ResourceProvider
void blockCountChanged(int newBlockCount)
\reentrant
Definition qtextformat.h:90
\reentrant
Definition qtextobject.h:81
\reentrant
Definition qtextobject.h:25
\reentrant
Definition qtextoption.h:18
\inmodule QtCore
Definition qurl.h:94
\inmodule QtCore
Definition qvariant.h:65
b clear()
QString text
QCursor cursor
rect
[4]
Combined button and popup list for selecting options.
Definition qcompare.h:63
Q_GUI_EXPORT QString convertFromPlainText(const QString &plain, WhiteSpaceMode mode=WhiteSpacePre)
Converts the plain text string plain to an HTML-formatted paragraph while preserving most of its look...
Q_GUI_EXPORT bool mightBeRichText(QAnyStringView)
Returns true if the string text is likely to be rich text; otherwise returns false.
CursorMoveStyle
static QString toPlainText(const QString &text)
#define Q_DECLARE_FLAGS(Flags, Enum)
Definition qflags.h:174
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
Definition qflags.h:194
GLboolean GLboolean GLboolean b
GLenum mode
const GLfloat * m
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLuint GLuint end
GLenum GLuint GLenum GLsizei length
GLuint object
[3]
GLfloat GLfloat f
GLint GLsizei width
GLenum type
GLboolean enable
GLuint name
GLuint GLenum option
QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator begin(const QRegularExpressionMatchIterator &iterator)
#define Q_ENUM(x)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_FLAG(x)
#define Q_INVOKABLE
#define Q_SLOTS
#define Q_MOC_INCLUDE(...)
#define QDOC_PROPERTY(text)
#define Q_SIGNALS
double qreal
Definition qtypes.h:187
#define explicit
QUrl url("example.com")
[constructor-url-reference]
QUrl baseUrl
QVBoxLayout * layout
QPainter painter(this)
[7]
stack undo()
QHostInfo info
[0]