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
qtextmarkdownwriter_p.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
QTEXTMARKDOWNWRITER_P_H
5
#
define
QTEXTMARKDOWNWRITER_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
/
private
/
qtguiglobal_p
.
h
>
19
#
include
<
QtCore
/
QTextStream
>
20
21
#
include
"qtextdocument_p.h"
22
#
include
"qtextdocumentwriter.h"
23
24
QT_BEGIN_NAMESPACE
25
26
class
QAbstractItemModel;
27
class
QTextTableCell;
28
29
class
Q_GUI_EXPORT
QTextMarkdownWriter
30
{
31
public
:
32
QTextMarkdownWriter(QTextStream &stream, QTextDocument::MarkdownFeatures features);
33
bool
writeAll(
const
QTextDocument *document);
34
#
if
QT_CONFIG
(
itemmodel
)
35
void
writeTable(
const
QAbstractItemModel *table);
36
#
endif
37
38
int
writeBlock(
const
QTextBlock &block,
bool
table,
bool
ignoreFormat,
bool
ignoreEmpty);
39
void
writeFrame(
const
QTextFrame *frame);
40
void
writeFrontMatter(
const
QString &fm);
41
42
private
:
43
struct
ListInfo {
44
bool
loose;
45
};
46
47
ListInfo listInfo(QTextList *list);
48
void
setLinePrefixForBlockQuote(
int
level);
49
int
measureCellWidth(
const
QTextTableCell &cell,
bool
ignoreFormat);
50
51
private
:
52
// The part of the writer's state that writeBlock() mutates as it goes.
53
// Grouped together so that measureCellWidth() can save, reset and restore
54
// it in one go.
55
struct
BlockState {
56
QString linePrefix;
57
QString codeBlockFence;
58
int
wrappedLineIndent = 0;
59
int
lastListIndent = 1;
60
bool
doubleNewlineWritten =
false
;
61
bool
linePrefixWritten =
false
;
62
bool
indentedCodeBlock =
false
;
63
bool
fencedCodeBlock =
false
;
64
};
65
66
// A pointer rather than a reference, because measureCellWidth() temporarily
67
// redirects output to a scratch stream; but it is never null.
68
QTextStream *m_stream;
69
70
QTextDocument::MarkdownFeatures m_features;
71
QMap<QTextList *, ListInfo> m_listInfo;
72
BlockState m_blockState;
73
};
74
75
QT_END_NAMESPACE
76
77
#
endif
// QTEXTMARKDOWNWRITER_P_H
QTextMarkdownWriter
Definition
qtextmarkdownwriter_p.h:30
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qCDebug
#define qCDebug(category,...)
Definition
qloggingcategory.h:162
Q_STATIC_LOGGING_CATEGORY
#define Q_STATIC_LOGGING_CATEGORY(name,...)
Definition
qloggingcategory.h:154
qtmw_Period
static const QChar qtmw_Period
Definition
qtextmarkdownwriter.cpp:36
qtmw_LineBreak
static const QChar qtmw_LineBreak
Definition
qtextmarkdownwriter.cpp:32
qtmw_Space
static const QChar qtmw_Space
Definition
qtextmarkdownwriter.cpp:28
qtmw_DoubleQuote
static const QChar qtmw_DoubleQuote
Definition
qtextmarkdownwriter.cpp:33
nearestWordWrapIndex
static int nearestWordWrapIndex(const QString &s, int before)
Definition
qtextmarkdownwriter.cpp:293
qtmw_Backtick
static const QChar qtmw_Backtick
Definition
qtextmarkdownwriter.cpp:34
qtmw_CarriageReturn
static const QChar qtmw_CarriageReturn
Definition
qtextmarkdownwriter.cpp:31
adjacentBackticksCount
static int adjacentBackticksCount(const QString &s)
Definition
qtextmarkdownwriter.cpp:312
createLinkTitle
static QString createLinkTitle(const QString &title)
Definition
qtextmarkdownwriter.cpp:418
isBlankLine
static bool isBlankLine(const QChar *begin, const QChar *end)
Definition
qtextmarkdownwriter.cpp:408
qtmw_Backslash
static const QChar qtmw_Backslash
Definition
qtextmarkdownwriter.cpp:35
maybeEscapeFirstChar
static void maybeEscapeFirstChar(QString &s)
Definition
qtextmarkdownwriter.cpp:336
qtmw_Tab
static const QChar qtmw_Tab
Definition
qtextmarkdownwriter.cpp:29
qtmw_Newline
static const QChar qtmw_Newline
Definition
qtextmarkdownwriter.cpp:30
findLineEnd
static LineEndPositions findLineEnd(const QChar *begin, const QChar *end)
Definition
qtextmarkdownwriter.cpp:385
escapeSpecialCharacters
static void escapeSpecialCharacters(QString &s)
Definition
qtextmarkdownwriter.cpp:361
LineEndPositions
Definition
qtextmarkdownwriter.cpp:380
LineEndPositions::nextLineBegin
const QChar * nextLineBegin
Definition
qtextmarkdownwriter.cpp:382
LineEndPositions::lineEnd
const QChar * lineEnd
Definition
qtextmarkdownwriter.cpp:381
qtbase
src
gui
text
qtextmarkdownwriter_p.h
Generated on
for Qt by
1.18.0