desktop/source/lib/init.cxx             |   22 +++++++++++++++++++++-
 include/LibreOfficeKit/LibreOfficeKit.h |    8 ++++----
 2 files changed, 25 insertions(+), 5 deletions(-)

New commits:
commit b74163742ff1288ad9ea1ec8e83ac08faf686893
Author: Jan Holesovsky <ke...@collabora.com>
Date:   Thu Apr 21 19:04:58 2016 +0200

    lok: getPartHash should be at the end, it is a new API call.
    
    Also add it to the init.cxx so that it is actually used.
    
    Change-Id: I255411158d0822718116ac05aad1ee925a9a7a9a

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index d74ae31..ceb7f90 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -367,6 +367,7 @@ static unsigned char* 
doc_renderFont(LibreOfficeKitDocument* pThis,
                           const char *pFontName,
                           int* pFontWidth,
                           int* pFontHeight);
+static char* doc_getPartHash(LibreOfficeKitDocument* pThis, int nPart);
 
 LibLODocument_Impl::LibLODocument_Impl(const uno::Reference 
<css::lang::XComponent> &xComponent)
     : mxComponent(xComponent)
@@ -388,7 +389,6 @@ LibLODocument_Impl::LibLODocument_Impl(const uno::Reference 
<css::lang::XCompone
         m_pDocumentClass->setPart = doc_setPart;
         m_pDocumentClass->getPartName = doc_getPartName;
         m_pDocumentClass->setPartMode = doc_setPartMode;
-        m_pDocumentClass->renderFont = doc_renderFont;
         m_pDocumentClass->paintTile = doc_paintTile;
         m_pDocumentClass->getTileMode = doc_getTileMode;
         m_pDocumentClass->getDocumentSize = doc_getDocumentSize;
@@ -412,6 +412,9 @@ LibLODocument_Impl::LibLODocument_Impl(const uno::Reference 
<css::lang::XCompone
         m_pDocumentClass->getView = doc_getView;
         m_pDocumentClass->getViews = doc_getViews;
 
+        m_pDocumentClass->renderFont = doc_renderFont;
+        m_pDocumentClass->getPartHash = doc_getPartHash;
+
         gDocumentClass = m_pDocumentClass;
     }
     pClass = m_pDocumentClass.get();
@@ -905,6 +908,23 @@ static char* doc_getPartName(LibreOfficeKitDocument* 
pThis, int nPart)
 
 }
 
+static char* doc_getPartHash(LibreOfficeKitDocument* pThis, int nPart)
+{
+    ITiledRenderable* pDoc = getTiledRenderable(pThis);
+    if (!pDoc)
+    {
+        gImpl->maLastExceptionMsg = "Document doesn't support tiled rendering";
+        return nullptr;
+    }
+
+    OUString sHash = pDoc->getPartHash(nPart);
+    OString aString = OUStringToOString(sHash, RTL_TEXTENCODING_UTF8);
+    char* pMemory = static_cast<char*>(malloc(aString.getLength() + 1));
+    strcpy(pMemory, aString.getStr());
+    return pMemory;
+
+}
+
 static void doc_setPartMode(LibreOfficeKitDocument* pThis,
                             int nPartMode)
 {
diff --git a/include/LibreOfficeKit/LibreOfficeKit.h 
b/include/LibreOfficeKit/LibreOfficeKit.h
index 863e377..1281a21 100644
--- a/include/LibreOfficeKit/LibreOfficeKit.h
+++ b/include/LibreOfficeKit/LibreOfficeKit.h
@@ -118,10 +118,6 @@ struct _LibreOfficeKitDocumentClass
     char* (*getPartName) (LibreOfficeKitDocument* pThis,
                           int nPart);
 
-    /// @see lok::Document::getPartHash().
-    char* (*getPartHash) (LibreOfficeKitDocument* pThis,
-                          int nPart);
-
     /// @see lok::Document::setPartMode().
     void (*setPartMode) (LibreOfficeKitDocument* pThis,
                          int nMode);
@@ -228,6 +224,10 @@ struct _LibreOfficeKitDocumentClass
                        const char* pFontName,
                        int* pFontWidth,
                        int* pFontHeight);
+
+    /// @see lok::Document::getPartHash().
+    char* (*getPartHash) (LibreOfficeKitDocument* pThis,
+                          int nPart);
 #endif // defined LOK_USE_UNSTABLE_API || defined LIBO_INTERNAL_ONLY
 };
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to