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 7c3057c263312d0e20110230aa61f088b35ebdcc
Author:     Ujjawal Kumar <randomfores...@gmail.com>
AuthorDate: Mon Sep 15 19:42:00 2025 +0530
Commit:     Thorsten Behrens <thorsten.behr...@collabora.com>
CommitDate: Wed Sep 17 08:46:56 2025 +0200

    tdf#162153 Add missing task lists symbols
    
    Change-Id: I5c99fcc3ca621bd4058a05303908671a897722c9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190976
    Tested-by: Jenkins
    Reviewed-by: Thorsten Behrens <thorsten.behr...@collabora.com>

diff --git a/sw/source/filter/md/mdcallbcks.cxx 
b/sw/source/filter/md/mdcallbcks.cxx
index 108f9844f2f2..fe07fe5567c3 100644
--- a/sw/source/filter/md/mdcallbcks.cxx
+++ b/sw/source/filter/md/mdcallbcks.cxx
@@ -54,7 +54,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 82f96647f686..1b55156ad8b4 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 fc57b95e8472..5be6c75b60bd 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 },
@@ -123,7 +126,7 @@ class SwMarkdownParser
 
     void StartNumberedBulletList(MD_BLOCKTYPE aListType);
     void EndNumberedBulletList();
-    void StartNumberedBulletListItem();
+    void StartNumberedBulletListItem(MD_BLOCK_LI_DETAIL aDetail);
     void EndNumberedBulletListItem();
 
     void BeginHtmlBlock();

Reply via email to