vcl/qt5/QtTransferable.cxx |   18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

New commits:
commit 3ea5be4d93746e893e4963e5ddc2d028ce18c4e8
Author:     Ujjawal Kumar <[email protected]>
AuthorDate: Thu Feb 19 23:29:16 2026 +0530
Commit:     Thorsten Behrens <[email protected]>
CommitDate: Sun Feb 22 22:04:58 2026 +0100

    Add markdown under paste special for backends requiring qt
    
    Change-Id: Ib03e95e32337b86f3c565d098d2efe7b6ed517ab
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199880
    Reviewed-by: Thorsten Behrens <[email protected]>
    Tested-by: Jenkins CollaboraOffice <[email protected]>

diff --git a/vcl/qt5/QtTransferable.cxx b/vcl/qt5/QtTransferable.cxx
index 6d4f002ec2d0..0c43ef9c1413 100644
--- a/vcl/qt5/QtTransferable.cxx
+++ b/vcl/qt5/QtTransferable.cxx
@@ -56,9 +56,9 @@ css::uno::Sequence<css::datatransfer::DataFlavor> SAL_CALL 
QtTransferable::getTr
         return css::uno::Sequence<css::datatransfer::DataFlavor>();
 
     QStringList aFormatList(m_pMimeData->formats());
-    // we might add the UTF-16 mime text variant later
-    const int nMimeTypeSeqSize = aFormatList.size() + 1;
-    bool bHaveNoCharset = false, bHaveUTF16 = false, bHaveUTF8 = false;
+    // we might add the UTF-16 mime text variant later and if plaintext is 
available then add markdown as well
+    const int nMimeTypeSeqSize = aFormatList.size() + 2;
+    bool bHaveNoCharset = false, bHaveUTF16 = false, bHaveUTF8 = false, 
bHavePlainText = false;
     css::uno::Sequence<css::datatransfer::DataFlavor> 
aMimeTypeSeq(nMimeTypeSeqSize);
     auto pMimeTypeSeq = aMimeTypeSeq.getArray();
 
@@ -79,6 +79,7 @@ css::uno::Sequence<css::datatransfer::DataFlavor> SAL_CALL 
QtTransferable::getTr
         bool bIsNoCharset = false, bIsUTF16 = false, bIsUTF8 = false;
         if (lcl_textMimeInfo(toOUString(rMimeType), bIsNoCharset, bIsUTF16, 
bIsUTF8))
         {
+            bHavePlainText = true;
             bHaveNoCharset |= bIsNoCharset;
             bHaveUTF16 |= bIsUTF16;
             bHaveUTF8 |= bIsUTF8;
@@ -108,6 +109,15 @@ css::uno::Sequence<css::datatransfer::DataFlavor> SAL_CALL 
QtTransferable::getTr
         nMimeTypeCount++;
     }
 
+    if (bHavePlainText)
+    {
+        aFlavor.MimeType = "text/markdown";
+        aFlavor.DataType = cppu::UnoType<OUString>::get();
+        assert(nMimeTypeCount < nMimeTypeSeqSize);
+        pMimeTypeSeq[nMimeTypeCount] = aFlavor;
+        nMimeTypeCount++;
+    }
+
     aMimeTypeSeq.realloc(nMimeTypeCount);
 
     return aMimeTypeSeq;
@@ -128,7 +138,7 @@ css::uno::Any SAL_CALL 
QtTransferable::getTransferData(const css::datatransfer::
     if (!isDataFlavorSupported(rFlavor))
         return aAny;
 
-    if (rFlavor.MimeType == "text/plain;charset=utf-16")
+    if (rFlavor.MimeType == "text/plain;charset=utf-16" || rFlavor.MimeType == 
"text/markdown")
     {
         OUString aString;
         // use existing UTF-16 encoded MIME data if present

Reply via email to