desktop/source/lib/init.cxx | 12 ++++++++++++ include/LibreOfficeKit/LibreOfficeKit.h | 3 +++ include/LibreOfficeKit/LibreOfficeKit.hxx | 13 +++++++++++++ libreofficekit/source/gtk/lokdocview.cxx | 8 ++++++++ 4 files changed, 36 insertions(+)
New commits: commit fa473730068767b131a22add3ea3d7f5f2cf9c8e Author: Pranav Kant <pran...@collabora.com> Date: Tue Jun 21 00:15:38 2016 +0530 lok: Expose LO version information Change-Id: Ided924e928c04385457c7a2e231fdf57e7e38970 diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 7a49c0b962d2..22c256f7105e 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -61,6 +61,7 @@ #include <vcl/sysdata.hxx> #include <vcl/virdev.hxx> #include <vcl/ITiledRenderable.hxx> +#include <unotools/configmgr.hxx> #include <unotools/syslocaleoptions.hxx> #include <unotools/mediadescriptor.hxx> #include <osl/module.hxx> @@ -307,6 +308,7 @@ static LibreOfficeKitDocument* lo_documentLoadWithOptions (LibreOfficeKit* pThi static void lo_registerCallback (LibreOfficeKit* pThis, LibreOfficeKitCallback pCallback, void* pData); +static char* lo_getVersionInfo(LibreOfficeKit* pThis); struct LibLibreOffice_Impl : public _LibreOfficeKit { @@ -324,6 +326,7 @@ struct LibLibreOffice_Impl : public _LibreOfficeKit if(!(m_pOfficeClass = gOfficeClass.lock())) { m_pOfficeClass.reset(new LibreOfficeKitClass); m_pOfficeClass->nSize = sizeof(LibreOfficeKitClass); + m_pOfficeClass->getVersionInfo = lo_getVersionInfo; m_pOfficeClass->destroy = lo_destroy; m_pOfficeClass->documentLoad = lo_documentLoad; @@ -979,6 +982,15 @@ static void lo_freeError(const char *pfree) free((void *) pfree); } +static char* lo_getVersionInfo(LibreOfficeKit* /*pThis*/) +{ + const OString sVersionStr = OUStringToOString(ReplaceStringHookProc("%PRODUCTNAME %PRODUCTVERSION %PRODUCTEXTENSION %BUILDID"), RTL_TEXTENCODING_UTF8); + + char* pVersion = static_cast<char*>(malloc(sVersionStr.getLength() + 1)); + strcpy(pVersion, sVersionStr.getStr()); + return pVersion; +} + static void force_c_locale() { // force locale (and resource files loaded) to en-US diff --git a/include/LibreOfficeKit/LibreOfficeKit.h b/include/LibreOfficeKit/LibreOfficeKit.h index 85b37d3e6f25..4553c2d1e818 100644 --- a/include/LibreOfficeKit/LibreOfficeKit.h +++ b/include/LibreOfficeKit/LibreOfficeKit.h @@ -58,6 +58,9 @@ struct _LibreOfficeKitClass void* pData); bool (*runMacro) (LibreOfficeKit *pThis, const char* pURL); + + /// @see lok::Office::getVersionInfo(). + char* (*getVersionInfo) (LibreOfficeKit* pThis); #endif }; diff --git a/include/LibreOfficeKit/LibreOfficeKit.hxx b/include/LibreOfficeKit/LibreOfficeKit.hxx index f70bfea3beac..67b1dd0b378b 100644 --- a/include/LibreOfficeKit/LibreOfficeKit.hxx +++ b/include/LibreOfficeKit/LibreOfficeKit.hxx @@ -312,6 +312,19 @@ public: { return mpThis->pClass->runMacro( mpThis, pURL ); } + + /** + * Get version information of the LOKit process + * + * @returns string containing version information in format: + * PRODUCT_NAME PRODUCT_VERSION PRODUCT_EXTENSION BUILD_ID + * + * Eg: LibreOffice 5.3 .0.0 alpha0 <commit hash> + */ + inline char* getVersionInfo() + { + return mpThis->pClass->getVersionInfo(mpThis); + } #endif // defined LOK_USE_UNSTABLE_API }; diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx index 79cc649fa369..bb83cae71420 100644 --- a/libreofficekit/source/gtk/lokdocview.cxx +++ b/libreofficekit/source/gtk/lokdocview.cxx @@ -1310,6 +1310,14 @@ SAL_DLLPUBLIC_EXPORT void lok_docview_post_command(LOKDocView* pDocView, const c pDocView->m_pImpl->m_pDocument->pClass->postUnoCommand(pDocView->m_pImpl->m_pDocument, pCommand, pArguments); } +SAL_DLLPUBLIC_EXPORT gchar* +lok_doc_view_get_version_info (LOKDocView* pDocView) +{ + LOKDocViewPrivate& priv = getPrivate(pDocView); + + return priv->m_pOffice->pClass->getVersionInfo(priv->m_pOffice); +} + SAL_DLLPUBLIC_EXPORT void lok_docview_post_key(GtkWidget* /*pWidget*/, GdkEventKey* pEvent, gpointer pData) { LOKDocView* pDocView = static_cast<LOKDocView *>(pData); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits