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 <thorsten.behrens@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201495
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202307
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
This commit is contained in:
Ujjawal Kumar
2026-03-23 15:01:14 +01:00
committed by Michael Stahl
parent 0186a604d2
commit a3eb702383
+14 -4
View File
@@ -54,9 +54,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();
@@ -90,6 +90,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;
@@ -119,6 +120,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;
@@ -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