diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2019-05-07 17:25:59 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2019-05-08 20:28:20 +0000 |
commit | 6a58a68ae3feb27dca48ebb3274b748f784b3d12 (patch) | |
tree | d8c704201f38f6d9860ba339ca814a81e551b050 /src/gui/text | |
parent | c1721cc859cc58cf04b73ba3e8db51f628684b26 (diff) |
Remove 3rdparty include from QTextMarkdownImporter header file
It's a private header; but to be able to use it in a test, it has to
be as clean as a public header.
Change-Id: I868372406e62acc24051a6523fee89bb911a61f9
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Diffstat (limited to 'src/gui/text')
-rw-r--r-- | src/gui/text/qtextmarkdownimporter.cpp | 49 | ||||
-rw-r--r-- | src/gui/text/qtextmarkdownimporter_p.h | 45 |
2 files changed, 47 insertions, 47 deletions
diff --git a/src/gui/text/qtextmarkdownimporter.cpp b/src/gui/text/qtextmarkdownimporter.cpp index bcb0b777d4..2c520a71c9 100644 --- a/src/gui/text/qtextmarkdownimporter.cpp +++ b/src/gui/text/qtextmarkdownimporter.cpp @@ -46,6 +46,7 @@ #include <QTextDocumentFragment> #include <QTextList> #include <QTextTable> +#include "../../3rdparty/md4c/md4c.h" QT_BEGIN_NAMESPACE @@ -57,31 +58,31 @@ Q_LOGGING_CATEGORY(lcMD, "qt.text.markdown") static int CbEnterBlock(MD_BLOCKTYPE type, void *detail, void *userdata) { QTextMarkdownImporter *mdi = static_cast<QTextMarkdownImporter *>(userdata); - return mdi->cbEnterBlock(type, detail); + return mdi->cbEnterBlock(int(type), detail); } static int CbLeaveBlock(MD_BLOCKTYPE type, void *detail, void *userdata) { QTextMarkdownImporter *mdi = static_cast<QTextMarkdownImporter *>(userdata); - return mdi->cbLeaveBlock(type, detail); + return mdi->cbLeaveBlock(int(type), detail); } static int CbEnterSpan(MD_SPANTYPE type, void *detail, void *userdata) { QTextMarkdownImporter *mdi = static_cast<QTextMarkdownImporter *>(userdata); - return mdi->cbEnterSpan(type, detail); + return mdi->cbEnterSpan(int(type), detail); } static int CbLeaveSpan(MD_SPANTYPE type, void *detail, void *userdata) { QTextMarkdownImporter *mdi = static_cast<QTextMarkdownImporter *>(userdata); - return mdi->cbLeaveSpan(type, detail); + return mdi->cbLeaveSpan(int(type), detail); } static int CbText(MD_TEXTTYPE type, const MD_CHAR *text, MD_SIZE size, void *userdata) { QTextMarkdownImporter *mdi = static_cast<QTextMarkdownImporter *>(userdata); - return mdi->cbText(type, text, size); + return mdi->cbText(int(type), text, size); } static void CbDebugLog(const char *msg, void *userdata) @@ -131,15 +132,15 @@ void QTextMarkdownImporter::import(QTextDocument *doc, const QString &markdown) doc->clear(); qCDebug(lcMD) << "default font" << doc->defaultFont() << "mono font" << m_monoFont; QByteArray md = markdown.toUtf8(); - md_parse(md.constData(), md.size(), &callbacks, this); + md_parse(md.constData(), MD_SIZE(md.size()), &callbacks, this); delete m_cursor; m_cursor = nullptr; } -int QTextMarkdownImporter::cbEnterBlock(MD_BLOCKTYPE type, void *det) +int QTextMarkdownImporter::cbEnterBlock(int blockType, void *det) { - m_blockType = type; - switch (type) { + m_blockType = blockType; + switch (blockType) { case MD_BLOCK_P: { QTextBlockFormat blockFmt; int margin = m_doc->defaultFont().pointSize() / 2; @@ -157,10 +158,10 @@ int QTextMarkdownImporter::cbEnterBlock(MD_BLOCKTYPE type, void *det) MD_BLOCK_H_DETAIL *detail = static_cast<MD_BLOCK_H_DETAIL *>(det); QTextBlockFormat blockFmt; QTextCharFormat charFmt; - int sizeAdjustment = 4 - detail->level; // H1 to H6: +3 to -2 + int sizeAdjustment = 4 - int(detail->level); // H1 to H6: +3 to -2 charFmt.setProperty(QTextFormat::FontSizeAdjustment, sizeAdjustment); charFmt.setFontWeight(QFont::Bold); - blockFmt.setHeadingLevel(detail->level); + blockFmt.setHeadingLevel(int(detail->level)); m_cursor->insertBlock(blockFmt, charFmt); } break; case MD_BLOCK_LI: { @@ -258,10 +259,10 @@ int QTextMarkdownImporter::cbEnterBlock(MD_BLOCKTYPE type, void *det) return 0; // no error } -int QTextMarkdownImporter::cbLeaveBlock(MD_BLOCKTYPE type, void *detail) +int QTextMarkdownImporter::cbLeaveBlock(int blockType, void *detail) { Q_UNUSED(detail) - switch (type) { + switch (blockType) { case MD_BLOCK_UL: case MD_BLOCK_OL: m_listStack.pop(); @@ -304,10 +305,10 @@ int QTextMarkdownImporter::cbLeaveBlock(MD_BLOCKTYPE type, void *detail) return 0; // no error } -int QTextMarkdownImporter::cbEnterSpan(MD_SPANTYPE type, void *det) +int QTextMarkdownImporter::cbEnterSpan(int spanType, void *det) { QTextCharFormat charFmt; - switch (type) { + switch (spanType) { case MD_SPAN_EM: charFmt.setFontItalic(true); break; @@ -316,8 +317,8 @@ int QTextMarkdownImporter::cbEnterSpan(MD_SPANTYPE type, void *det) break; case MD_SPAN_A: { MD_SPAN_A_DETAIL *detail = static_cast<MD_SPAN_A_DETAIL *>(det); - QString url = QString::fromLatin1(detail->href.text, detail->href.size); - QString title = QString::fromLatin1(detail->title.text, detail->title.size); + QString url = QString::fromLatin1(detail->href.text, int(detail->href.size)); + QString title = QString::fromLatin1(detail->title.text, int(detail->title.size)); charFmt.setAnchorHref(url); charFmt.setAnchorNames(QStringList(title)); charFmt.setForeground(m_palette.link()); @@ -326,8 +327,8 @@ int QTextMarkdownImporter::cbEnterSpan(MD_SPANTYPE type, void *det) case MD_SPAN_IMG: { m_imageSpan = true; MD_SPAN_IMG_DETAIL *detail = static_cast<MD_SPAN_IMG_DETAIL *>(det); - QString src = QString::fromUtf8(detail->src.text, detail->src.size); - QString title = QString::fromUtf8(detail->title.text, detail->title.size); + QString src = QString::fromUtf8(detail->src.text, int(detail->src.size)); + QString title = QString::fromUtf8(detail->title.text, int(detail->title.size)); QTextImageFormat img; img.setName(src); qCDebug(lcMD) << "image" << src << "title" << title << "relative to" << m_doc->baseUrl(); @@ -346,7 +347,7 @@ int QTextMarkdownImporter::cbEnterSpan(MD_SPANTYPE type, void *det) return 0; // no error } -int QTextMarkdownImporter::cbLeaveSpan(MD_SPANTYPE type, void *detail) +int QTextMarkdownImporter::cbLeaveSpan(int spanType, void *detail) { Q_UNUSED(detail) QTextCharFormat charFmt; @@ -356,20 +357,20 @@ int QTextMarkdownImporter::cbLeaveSpan(MD_SPANTYPE type, void *detail) charFmt = m_spanFormatStack.top(); } m_cursor->setCharFormat(charFmt); - if (type == MD_SPAN_IMG) + if (spanType == int(MD_SPAN_IMG)) m_imageSpan = false; return 0; // no error } -int QTextMarkdownImporter::cbText(MD_TEXTTYPE type, const MD_CHAR *text, MD_SIZE size) +int QTextMarkdownImporter::cbText(int textType, const char *text, unsigned size) { if (m_imageSpan) return 0; // it's the alt-text static const QRegularExpression openingBracket(QStringLiteral("<[a-zA-Z]")); static const QRegularExpression closingBracket(QStringLiteral("(/>|</)")); - QString s = QString::fromUtf8(text, size); + QString s = QString::fromUtf8(text, int(size)); - switch (type) { + switch (textType) { case MD_TEXT_NORMAL: if (m_htmlTagDepth) { m_htmlAccumulator += s; diff --git a/src/gui/text/qtextmarkdownimporter_p.h b/src/gui/text/qtextmarkdownimporter_p.h index b73e744434..dee24a8e22 100644 --- a/src/gui/text/qtextmarkdownimporter_p.h +++ b/src/gui/text/qtextmarkdownimporter_p.h @@ -57,8 +57,6 @@ #include <QtGui/qtextlist.h> #include <QtCore/qstack.h> -#include "../../3rdparty/md4c/md4c.h" - QT_BEGIN_NAMESPACE class QTextCursor; @@ -69,22 +67,23 @@ class Q_GUI_EXPORT QTextMarkdownImporter { public: enum Feature { - FeatureCollapseWhitespace = MD_FLAG_COLLAPSEWHITESPACE, - FeaturePermissiveATXHeaders = MD_FLAG_PERMISSIVEATXHEADERS, - FeaturePermissiveURLAutoLinks = MD_FLAG_PERMISSIVEURLAUTOLINKS, - FeaturePermissiveMailAutoLinks = MD_FLAG_PERMISSIVEEMAILAUTOLINKS, - FeatureNoIndentedCodeBlocks = MD_FLAG_NOINDENTEDCODEBLOCKS, - FeatureNoHTMLBlocks = MD_FLAG_NOHTMLBLOCKS, - FeatureNoHTMLSpans = MD_FLAG_NOHTMLSPANS, - FeatureTables = MD_FLAG_TABLES, - FeatureStrikeThrough = MD_FLAG_STRIKETHROUGH, - FeaturePermissiveWWWAutoLinks = MD_FLAG_PERMISSIVEWWWAUTOLINKS, - FeatureTasklists = MD_FLAG_TASKLISTS, + // Must be kept in sync with MD_FLAG_* in md4c.h + FeatureCollapseWhitespace = 0x0001, // MD_FLAG_COLLAPSEWHITESPACE + FeaturePermissiveATXHeaders = 0x0002, // MD_FLAG_PERMISSIVEATXHEADERS + FeaturePermissiveURLAutoLinks = 0x0004, // MD_FLAG_PERMISSIVEURLAUTOLINKS + FeaturePermissiveMailAutoLinks = 0x0008, // MD_FLAG_PERMISSIVEEMAILAUTOLINKS + FeatureNoIndentedCodeBlocks = 0x0010, // MD_FLAG_NOINDENTEDCODEBLOCKS + FeatureNoHTMLBlocks = 0x0020, // MD_FLAG_NOHTMLBLOCKS + FeatureNoHTMLSpans = 0x0040, // MD_FLAG_NOHTMLSPANS + FeatureTables = 0x0100, // MD_FLAG_TABLES + FeatureStrikeThrough = 0x0200, // MD_FLAG_STRIKETHROUGH + FeaturePermissiveWWWAutoLinks = 0x0400, // MD_FLAG_PERMISSIVEWWWAUTOLINKS + FeatureTasklists = 0x0800, // MD_FLAG_TASKLISTS // composite flags - FeaturePermissiveAutoLinks = MD_FLAG_PERMISSIVEAUTOLINKS, - FeatureNoHTML = MD_FLAG_NOHTML, - DialectCommonMark = MD_DIALECT_COMMONMARK, - DialectGitHub = MD_DIALECT_GITHUB + FeaturePermissiveAutoLinks = FeaturePermissiveMailAutoLinks | FeaturePermissiveURLAutoLinks | FeaturePermissiveWWWAutoLinks, // MD_FLAG_PERMISSIVEAUTOLINKS + FeatureNoHTML = FeatureNoHTMLBlocks | FeatureNoHTMLSpans, // MD_FLAG_NOHTML + DialectCommonMark = 0, // MD_DIALECT_COMMONMARK + DialectGitHub = FeaturePermissiveAutoLinks | FeatureTables | FeatureStrikeThrough | FeatureTasklists // MD_DIALECT_GITHUB }; Q_DECLARE_FLAGS(Features, Feature) @@ -94,11 +93,11 @@ public: public: // MD4C callbacks - int cbEnterBlock(MD_BLOCKTYPE type, void* detail); - int cbLeaveBlock(MD_BLOCKTYPE type, void* detail); - int cbEnterSpan(MD_SPANTYPE type, void* detail); - int cbLeaveSpan(MD_SPANTYPE type, void* detail); - int cbText(MD_TEXTTYPE type, const MD_CHAR* text, MD_SIZE size); + int cbEnterBlock(int blockType, void* detail); + int cbLeaveBlock(int blockType, void* detail); + int cbEnterSpan(int spanType, void* detail); + int cbLeaveSpan(int spanType, void* detail); + int cbText(int textType, const char* text, unsigned size); private: QTextDocument *m_doc = nullptr; @@ -115,7 +114,7 @@ private: int m_tableRowCount = 0; int m_tableCol = -1; // because relative cell movements (e.g. m_cursor->movePosition(QTextCursor::NextCell)) don't work Features m_features; - MD_BLOCKTYPE m_blockType = MD_BLOCK_DOC; + int m_blockType = 0; bool m_emptyList = false; // true when the last thing we did was insertList bool m_imageSpan = false; }; |