37 QTextCopyHelper(
const QTextCursor &_source,
const QTextCursor &_destination,
bool forceCharFormat =
false,
const QTextCharFormat &fmt = QTextCharFormat());
42 void appendFragments(
int pos,
int endPos);
43 int appendFragment(
int pos,
int endPos,
int objectIndex = -1);
44 int convertFormatIndex(
const QTextFormat &oldFormat,
int objectIndexToSet = -1);
45 inline int convertFormatIndex(
int oldFormatIndex,
int objectIndexToSet = -1)
46 {
return convertFormatIndex(src->formatCollection()->format(oldFormatIndex), objectIndexToSet); }
47 inline QTextFormat convertFormat(
const QTextFormat &fmt)
48 {
return dst->formatCollection()->format(convertFormatIndex(fmt)); }
53 int primaryCharFormatIndex;
56 QTextDocumentPrivate *dst;
57 QTextDocumentPrivate *src;
58 QTextFormatCollection &formatCollection;
59 const QString originalText;
60 QMap<
int,
int> objectIndexMap;
92 const QTextDocument *resourceProvider =
nullptr);
99 Table scanTable(
int tableNodeIdx);
101 enum ProcessNodeResult { ContinueWithNextNode, ContinueWithCurrentNode, ContinueWithNextSibling };
103 void appendBlock(
const QTextBlockFormat &format, QTextCharFormat charFmt = QTextCharFormat());
104 bool appendNodeText();
106 ProcessNodeResult processBlockNode();
107 ProcessNodeResult processSpecialNodes();
111 inline List() : listNode(0) {}
112 QTextListFormat format;
114 QPointer<QTextList> list;
123 QStringList namedAnchors;
128 struct TableCellIterator
130 inline TableCellIterator(QTextTable *t =
nullptr) : table(t), row(0), column(0) {}
132 inline TableCellIterator &operator++() {
136 const QTextTableCell cell = table->cellAt(row, column);
139 column += cell.columnSpan();
140 if (column >= table->columns()) {
144 }
while (row < table->rows() && table->cellAt(row, column).row() != row);
149 inline bool atEnd()
const {
return table ==
nullptr || row >= table->rows(); }
151 QTextTableCell cell()
const {
return table->cellAt(row, column); }
162 Table() : isTextFrame(
false), rows(0), columns(0), currentRow(0), lastIndent(0) {}
163 QPointer<QTextFrame> frame;
168 TableCellIterator currentCell;
174 struct RowColSpanInfo
177 int rowSpan, colSpan;
188 WhiteSpace compressNextWhitespace;
192 QTextHtmlParserNode::WhiteSpaceMode wsm;
195 bool forceBlockMerging;
198 const QTextHtmlParserNode *currentNode;
uint importedFromPlainText
~QTextDocumentFragmentPrivate()
void insert(QTextCursor &cursor) const
QTextDocumentFragmentPrivate(const QTextCursor &cursor=QTextCursor())
QTextHtmlImporter(QTextDocument *_doc, const QString &html, ImportMode mode, const QTextDocument *resourceProvider=nullptr)
static void getText(QString &text, QTextDocumentPrivate *priv, const QString &docText, int pos, int end)
static void setBlockCharFormatHelper(QTextDocumentPrivate *priv, int pos1, int pos2, const QTextCharFormat &format, QTextDocumentPrivate::FormatChangeMode changeMode)
#define QTextBeginningOfFrame
Q_DECLARE_TYPEINFO(QTextHtmlImporter::Table, Q_RELOCATABLE_TYPE)
Q_DECLARE_TYPEINFO(QTextHtmlImporter::TableCellIterator, Q_PRIMITIVE_TYPE)
Q_DECLARE_TYPEINFO(QTextHtmlImporter::RowColSpanInfo, Q_PRIMITIVE_TYPE)
Q_DECLARE_TYPEINFO(QTextHtmlImporter::List, Q_RELOCATABLE_TYPE)