From a3eb70238396f1fb8147daa63725a453970cd435 Mon Sep 17 00:00:00 2001 From: Ujjawal Kumar Date: Thu, 19 Feb 2026 23:29:16 +0530 Subject: [PATCH] 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 Tested-by: Jenkins CollaboraOffice Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201495 Reviewed-by: Mike Kaganski Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202307 Tested-by: Jenkins Reviewed-by: Michael Stahl --- vcl/qt5/QtTransferable.cxx | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/vcl/qt5/QtTransferable.cxx b/vcl/qt5/QtTransferable.cxx index e4cdd7d3466c..3abe8b9de19c 100644 --- a/vcl/qt5/QtTransferable.cxx +++ b/vcl/qt5/QtTransferable.cxx @@ -54,9 +54,9 @@ css::uno::Sequence SAL_CALL QtTransferable::getTr return css::uno::Sequence(); 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 aMimeTypeSeq(nMimeTypeSeqSize); auto pMimeTypeSeq = aMimeTypeSeq.getArray(); @@ -90,6 +90,7 @@ css::uno::Sequence 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; @@ -119,6 +120,15 @@ css::uno::Sequence SAL_CALL QtTransferable::getTr nMimeTypeCount++; } + if (bHavePlainText) + { + aFlavor.MimeType = "text/markdown"; + aFlavor.DataType = cppu::UnoType::get(); + assert(nMimeTypeCount < nMimeTypeSeqSize); + pMimeTypeSeq[nMimeTypeCount] = aFlavor; + nMimeTypeCount++; + } + aMimeTypeSeq.realloc(nMimeTypeCount); return aMimeTypeSeq; @@ -139,7 +149,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