sw/source/filter/md/mdcallbcks.cxx | 2 +- sw/source/filter/md/swmd.cxx | 9 ++++++++- sw/source/filter/md/swmd.hxx | 5 ++++- 3 files changed, 13 insertions(+), 3 deletions(-)
New commits: commit 3045c762903ce18e9a342fac6ee3aca663ac42f5 Author: Ujjawal Kumar <randomfores...@gmail.com> AuthorDate: Mon Sep 15 19:42:00 2025 +0530 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Wed Sep 17 11:32:36 2025 +0200 tdf#162153 Add missing task lists symbols (cherry picked from commit 7c3057c263312d0e20110230aa61f088b35ebdcc) Change-Id: I5c99fcc3ca621bd4058a05303908671a897722c9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191068 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Miklos Vajna <vmik...@collabora.com> diff --git a/sw/source/filter/md/mdcallbcks.cxx b/sw/source/filter/md/mdcallbcks.cxx index dfc79b2b6be4..04de4197e344 100644 --- a/sw/source/filter/md/mdcallbcks.cxx +++ b/sw/source/filter/md/mdcallbcks.cxx @@ -51,7 +51,7 @@ int SwMarkdownParser::enter_block_callback(MD_BLOCKTYPE type, void* detail, void parser->StartNumberedBulletList(type); break; case MD_BLOCK_LI: - parser->StartNumberedBulletListItem(); + parser->StartNumberedBulletListItem(*static_cast<MD_BLOCK_LI_DETAIL*>(detail)); break; case MD_BLOCK_HR: parser->AddHR(); diff --git a/sw/source/filter/md/swmd.cxx b/sw/source/filter/md/swmd.cxx index e1a20a667d78..61115dd57abc 100644 --- a/sw/source/filter/md/swmd.cxx +++ b/sw/source/filter/md/swmd.cxx @@ -442,7 +442,7 @@ void SwMarkdownParser::EndNumberedBulletList() } } -void SwMarkdownParser::StartNumberedBulletListItem() +void SwMarkdownParser::StartNumberedBulletListItem(MD_BLOCK_LI_DETAIL aDetail) { sal_uInt8 nLevel = GetNumInfo().GetLevel(); sal_uInt16 nStart = GetNumInfo().GetNodeStartValue(nLevel); @@ -465,6 +465,13 @@ void SwMarkdownParser::StartNumberedBulletListItem() if (GetNumInfo().GetNumRule()) { aNumRuleName = GetNumInfo().GetNumRule()->GetName(); + + if (aDetail.is_task) + { + bool bChecked = (aDetail.task_mark == 'x' || aDetail.task_mark == 'X') ? true : false; + pTextNode->InsertText((bChecked ? Checkmark : Crossmark) + u" "_ustr, + SwContentIndex(pTextNode, 0)); + } } else { diff --git a/sw/source/filter/md/swmd.hxx b/sw/source/filter/md/swmd.hxx index a8da96dbe485..4b595c28b779 100644 --- a/sw/source/filter/md/swmd.hxx +++ b/sw/source/filter/md/swmd.hxx @@ -55,6 +55,9 @@ constexpr tools::Long MD_MAX_IMAGE_HEIGHT_IN_TWIPS = 5000; constexpr tools::Long MD_MIN_IMAGE_WIDTH_IN_TWIPS = 500; constexpr tools::Long MD_MIN_IMAGE_HEIGHT_IN_TWIPS = 500; +constexpr OUString Checkmark = u"\x2705"_ustr; +constexpr OUString Crossmark = u"\x274C"_ustr; + constexpr frozen::unordered_map<MD_ALIGN, SvxAdjust, 4> adjustMap = { { MD_ALIGN_DEFAULT, SvxAdjust::Left }, { MD_ALIGN_LEFT, SvxAdjust::Left }, @@ -122,7 +125,7 @@ class SwMarkdownParser void StartNumberedBulletList(MD_BLOCKTYPE aListType); void EndNumberedBulletList(); - void StartNumberedBulletListItem(); + void StartNumberedBulletListItem(MD_BLOCK_LI_DETAIL aDetail); void EndNumberedBulletListItem(); void BeginHtmlBlock();