summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qtextmarkdownimporter.cpp
diff options
context:
space:
mode:
authorRainer Keller <Rainer.Keller@qt.io>2020-01-07 09:13:21 +0100
committerRainer Keller <Rainer.Keller@qt.io>2020-01-13 09:25:39 +0100
commit76fbe75abee7d77911467d56630176f777e8ed78 (patch)
tree3f04e6aa0203fca2166d89ef9e32eab3fe261c25 /src/gui/text/qtextmarkdownimporter.cpp
parent18e06c37e10943f4b4f6d57b7044b9bce3a23202 (diff)
Remove empty block at beginning of imported markdown
An empty QTextDocument already contains a block; so when the formatting is fully determined, if the document is still empty, then instead of inserting a new block, we can set formatting on the cursor, which affects the pre-existing block, before inserting text. This avoids leaving a blank line (the default block) above the inserted content. Fixes: QTBUG-81060 Change-Id: I14e45e300a602493aa59680417d74d4c2b25862d Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/gui/text/qtextmarkdownimporter.cpp')
-rw-r--r--src/gui/text/qtextmarkdownimporter.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/gui/text/qtextmarkdownimporter.cpp b/src/gui/text/qtextmarkdownimporter.cpp
index 78d18a714b..88965046ce 100644
--- a/src/gui/text/qtextmarkdownimporter.cpp
+++ b/src/gui/text/qtextmarkdownimporter.cpp
@@ -207,7 +207,12 @@ int QTextMarkdownImporter::cbEnterBlock(int blockType, void *det)
charFmt.setFontWeight(QFont::Bold);
blockFmt.setHeadingLevel(int(detail->level));
m_needsInsertBlock = false;
- m_cursor->insertBlock(blockFmt, charFmt);
+ if (m_doc->isEmpty()) {
+ m_cursor->setBlockFormat(blockFmt);
+ m_cursor->setCharFormat(charFmt);
+ } else {
+ m_cursor->insertBlock(blockFmt, charFmt);
+ }
qCDebug(lcMD, "H%d", detail->level);
} break;
case MD_BLOCK_LI: {
@@ -592,7 +597,12 @@ void QTextMarkdownImporter::insertBlock()
blockFormat.setMarker(m_markerType);
if (!m_listStack.isEmpty())
blockFormat.setIndent(m_listStack.count());
- m_cursor->insertBlock(blockFormat, charFormat);
+ if (m_doc->isEmpty()) {
+ m_cursor->setBlockFormat(blockFormat);
+ m_cursor->setCharFormat(charFormat);
+ } else {
+ m_cursor->insertBlock(blockFormat, charFormat);
+ }
if (m_needsInsertList) {
m_listStack.push(m_cursor->createList(m_listFormat));
} else if (!m_listStack.isEmpty() && m_listItem) {