diff options
Diffstat (limited to 'src/gui/text/qtextdocumentfragment.cpp')
-rw-r--r-- | src/gui/text/qtextdocumentfragment.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/gui/text/qtextdocumentfragment.cpp b/src/gui/text/qtextdocumentfragment.cpp index 7d8b2eaa93..1b6e76c201 100644 --- a/src/gui/text/qtextdocumentfragment.cpp +++ b/src/gui/text/qtextdocumentfragment.cpp @@ -488,7 +488,8 @@ void QTextHtmlImporter::import() * means there was a tag closing in the input html */ if (currentNodeIdx > 0 && (currentNode->parent != currentNodeIdx - 1)) { - blockTagClosed = closeTag(); + const bool lastBlockTagClosed = closeTag(); + blockTagClosed = blockTagClosed || lastBlockTagClosed; // visually collapse subsequent block tags, but if the element after the closed block tag // is for example an inline element (!isBlock) we have to make sure we start a new paragraph by setting // hasBlock to false. @@ -540,6 +541,7 @@ void QTextHtmlImporter::import() appendBlock(block, currentNode->charFormat); + blockTagClosed = false; hasBlock = true; } @@ -575,14 +577,12 @@ bool QTextHtmlImporter::appendNodeText() if (wsm == QTextHtmlParserNode::WhiteSpacePre || wsm == QTextHtmlParserNode::WhiteSpacePreWrap) compressNextWhitespace = PreserveWhiteSpace; - QString text = currentNode->text; + const QString text = currentNode->text; QString textToInsert; textToInsert.reserve(text.size()); - for (int i = 0; i < text.size(); ++i) { - QChar ch = text.at(i); - + for (QChar ch : text) { if (ch.isSpace() && ch != QChar::Nbsp && ch != QChar::ParagraphSeparator) { @@ -699,6 +699,8 @@ QTextHtmlImporter::ProcessNodeResult QTextHtmlImporter::processSpecialNodes() listFmt.setNumberPrefix(currentNode->textListNumberPrefix); if (!currentNode->textListNumberSuffix.isNull()) listFmt.setNumberSuffix(currentNode->textListNumberSuffix); + if (currentNode->listStart != 1) + listFmt.setStart(currentNode->listStart); ++indent; if (currentNode->hasCssListIndent) @@ -1311,8 +1313,7 @@ QTextDocumentFragment QTextDocumentFragment::fromMarkdown(const QString &markdow QTextDocumentFragment res; res.d = new QTextDocumentFragmentPrivate; - QTextMarkdownImporter importer(features); - importer.import(res.d->doc, markdown); + QTextMarkdownImporter(res.d->doc, features).import(markdown); return res; } |