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();

Reply via email to