summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-06-19 18:13:27 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-06-22 11:16:25 +0200
commit801f24f0b87c3d159cc68e1cbb2d4a7ebc34b5ea (patch)
tree82874b5156752f5b82a4bf95acd3f926c9f0ce54 /desktop
parent5095443d20dc8f474372fb217939526b11156917 (diff)
LOK: return used format in Document::getTextSelection()
This allows requesting text/html, with falling back to plain text if necessary. Conflicts: libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx Reviewed-on: https://gerrit.libreoffice.org/16377 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit af7cbebd8eed82b81e00e6c2e0dc6c2c467ad8e2) Change-Id: Ie6d4e0e173311ba018553043b6a869abf193bf6f
Diffstat (limited to 'desktop')
-rw-r--r--desktop/source/lib/init.cxx17
1 files changed, 14 insertions, 3 deletions
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 89fe2dbd366e..02994319c079 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -216,7 +216,8 @@ static void doc_setTextSelection (LibreOfficeKitDocument* pThis,
int nX,
int nY);
static char* doc_getTextSelection(LibreOfficeKitDocument* pThis,
- const char* pMimeType);
+ const char* pMimeType,
+ char** pUsedMimeType);
static void doc_setGraphicSelection (LibreOfficeKitDocument* pThis,
int nType,
int nX,
@@ -791,7 +792,7 @@ static void doc_setTextSelection(LibreOfficeKitDocument* pThis, int nType, int n
pDoc->setTextSelection(nType, nX, nY);
}
-static char* doc_getTextSelection(LibreOfficeKitDocument* pThis, const char* pMimeType)
+static char* doc_getTextSelection(LibreOfficeKitDocument* pThis, const char* pMimeType, char** pUsedMimeType)
{
ITiledRenderable* pDoc = getTiledRenderable(pThis);
if (!pDoc)
@@ -800,10 +801,20 @@ static char* doc_getTextSelection(LibreOfficeKitDocument* pThis, const char* pMi
return 0;
}
- OString aRet = pDoc->getTextSelection(pMimeType);
+ OString aUsedMimeType;
+ OString aRet = pDoc->getTextSelection(pMimeType, aUsedMimeType);
+ if (aUsedMimeType.isEmpty())
+ aRet = pDoc->getTextSelection("text/plain;charset=utf-8", aUsedMimeType);
char* pMemory = static_cast<char*>(malloc(aRet.getLength() + 1));
strcpy(pMemory, aRet.getStr());
+
+ if (pUsedMimeType)
+ {
+ *pUsedMimeType = static_cast<char*>(malloc(aUsedMimeType.getLength() + 1));
+ strcpy(*pUsedMimeType, aUsedMimeType.getStr());
+ }
+
return pMemory;
}