Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qquicktextdocument_p.h
Go to the documentation of this file.
1
// Copyright (C) 2018 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
QQUICKTEXTDOCUMENT_P_H
6
#
define
QQUICKTEXTDOCUMENT_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
"qquicktextdocument.h"
20
21
#
include
<
QtGui
/
qabstracttextdocumentlayout
.
h
>
22
#
include
<
QtGui
/
qtextdocument
.
h
>
23
#
include
<
QtGui
/
qtextdocumentfragment
.
h
>
24
#
include
<
QtGui
/
qtextformat
.
h
>
25
#
include
<
QtCore
/
qrect
.
h
>
26
#
include
<
QtCore
/
private
/
qobject_p_p
.
h
>
27
28
#
if
QT_CONFIG
(
mimetype
)
29
#
include
<
QtCore
/
qmimedatabase
.
h
>
30
#
endif
31
32
QT_BEGIN_NAMESPACE
33
34
class
QQuickPixmap;
35
class
QQuickTextEdit;
36
37
/*! \internal
38
QTextImageHandler would attempt to resolve relative paths, and load the
39
image itself if the document returns an invalid image from loadResource().
40
We replace it with this version instead, because Qt Quick's text resources
41
are resolved against the Text item's context, and because we override
42
intrinsicSize(). drawObject() is empty because we don't need to use this
43
handler to paint images: they get put into scene graph nodes instead.
44
*/
45
class
QQuickTextImageHandler
:
public
QObject
,
public
QTextObjectInterface
46
{
47
Q_OBJECT
48
Q_INTERFACES(QTextObjectInterface)
49
public
:
50
QQuickTextImageHandler
(
QObject
*
parent
=
nullptr
);
51
~
QQuickTextImageHandler
()
override
=
default
;
52
QSizeF
intrinsicSize
(QTextDocument *doc,
int
posInDocument,
const
QTextFormat &format)
override
;
53
void
drawObject
(QPainter *,
const
QRectF &, QTextDocument *,
int
,
const
QTextFormat &)
override
{ }
54
};
55
56
class
QQuickTextDocumentPrivate
:
public
QObjectPrivate
57
{
58
Q_DECLARE_PUBLIC(QQuickTextDocument)
59
public
:
60
static
QQuickTextDocumentPrivate
*
get
(
QQuickTextDocument
*
doc
) {
return
doc
->
d_func
(); }
61
static
const
QQuickTextDocumentPrivate
*
get
(
const
QQuickTextDocument
*
doc
) {
return
doc
->
d_func
(); }
62
63
void
load
();
64
void
writeTo
(
const
QUrl &fileUrl);
65
QTextDocument
*
document
()
const
;
66
void
setDocument
(QTextDocument *doc);
67
void
setStatus
(QQuickTextDocument::Status s,
const
QString &err);
68
69
// so far the QQuickItem given to the QQuickTextDocument ctor is always a QQuickTextEdit
70
QQuickTextEdit *
editor
=
nullptr
;
71
QUrl
url
;
72
QString
errorString
;
73
Qt
::
TextFormat
detectedFormat
=
Qt
::
AutoText
;
// url's extension, independent of TextEdit.textFormat
74
std
::
optional
<
QStringConverter
::
Encoding
>
encoding
;
// only relevant for HTML (Qt::RichText)
75
QQuickTextDocument
::
Status
status
=
QQuickTextDocument
::
Status
::
Null
;
76
};
77
78
namespace
QtPrivate
{
79
class
ProtectedLayoutAccessor
:
public
QAbstractTextDocumentLayout
80
{
81
public
:
82
inline
QTextCharFormat
formatAccessor
(
int
pos)
83
{
84
return
format(pos);
85
}
86
};
87
}
// namespace QtPrivate
88
89
QT_END_NAMESPACE
90
91
#
endif
// QQUICKTEXTDOCUMENT_P_H
QQuickTextDocumentPrivate
Definition
qquicktextdocument_p.h:57
QQuickTextDocumentPrivate::editor
QQuickTextEdit * editor
Definition
qquicktextdocument_p.h:70
QQuickTextDocumentPrivate::detectedFormat
Qt::TextFormat detectedFormat
Definition
qquicktextdocument_p.h:73
QQuickTextDocumentPrivate::document
QTextDocument * document() const
Definition
qquicktextdocument.cpp:439
QQuickTextDocumentPrivate::url
QUrl url
Definition
qquicktextdocument_p.h:71
QQuickTextDocumentPrivate::errorString
QString errorString
Definition
qquicktextdocument_p.h:72
QQuickTextDocumentPrivate::encoding
std::optional< QStringConverter::Encoding > encoding
Definition
qquicktextdocument_p.h:74
QQuickTextDocumentPrivate::setStatus
void setStatus(QQuickTextDocument::Status s, const QString &err)
Definition
qquicktextdocument.cpp:174
QQuickTextDocumentPrivate::setDocument
void setDocument(QTextDocument *doc)
Definition
qquicktextdocument.cpp:444
QQuickTextDocumentPrivate::writeTo
void writeTo(const QUrl &fileUrl)
Definition
qquicktextdocument.cpp:373
QQuickTextImageHandler
Definition
qquicktextdocument_p.h:46
QQuickTextImageHandler::~QQuickTextImageHandler
~QQuickTextImageHandler() override=default
QQuickTextImageHandler::drawObject
void drawObject(QPainter *, const QRectF &, QTextDocument *, int, const QTextFormat &) override
Draws this text object using the specified painter.
Definition
qquicktextdocument_p.h:53
QQuickTextImageHandler::intrinsicSize
QSizeF intrinsicSize(QTextDocument *doc, int posInDocument, const QTextFormat &format) override
The intrinsicSize() function returns the size of the text object represented by format in the given d...
Definition
qquicktextdocument.cpp:592
QtPrivate::ProtectedLayoutAccessor
Definition
qquicktextdocument_p.h:80
QtPrivate::ProtectedLayoutAccessor::formatAccessor
QTextCharFormat formatAccessor(int pos)
Definition
qquicktextdocument_p.h:82
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
QtPrivate
Definition
qalloc.h:29
qtdeclarative
src
quick
items
qquicktextdocument_p.h
Generated on
for Qt by
1.18.0