[Libreoffice-commits] core.git: Branch 'feature/liblibo' - 2 commits - desktop/inc desktop/source smoketest/CppunitTest_liblibreoffice.mk smoketest/libtest.cxx

Jack Leigh leighman at gmx.se
Tue Mar 5 08:44:31 PST 2013


 desktop/inc/liblibreoffice.hxx          |    5 ++---
 desktop/inc/liblibreoffice_impl.hxx     |    7 ++-----
 desktop/source/lib/init.cxx             |   22 +++++++++++++++++++---
 desktop/source/lib/shim.cxx             |    3 ++-
 smoketest/CppunitTest_liblibreoffice.mk |   17 ++---------------
 smoketest/libtest.cxx                   |    6 +++++-
 6 files changed, 32 insertions(+), 28 deletions(-)

New commits:
commit 94a2596446bfdd9bddc3590b6e81c0e9052b7325
Author: Jack Leigh <leighman at gmx.se>
Date:   Tue Mar 5 14:29:26 2013 +0000

    liblibo: create XComponent for doc
    
    Change-Id: Ie07ac4a3e89a9a82a107612b81be18d3826c49e1

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index eb85bcb..ce7632f 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -13,11 +13,14 @@
 
 #include <tools/errinf.hxx>
 #include <osl/file.hxx>
+#include <osl/process.h>
 #include <rtl/strbuf.hxx>
 #include <rtl/bootstrap.hxx>
 #include <cppuhelper/bootstrap.hxx>
 #include <comphelper/processfactory.hxx>
 
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/frame/Desktop.hpp>
 #include <com/sun/star/lang/Locale.hpp>
 #include <com/sun/star/lang/XComponent.hpp>
 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
@@ -39,6 +42,19 @@ static uno::Reference<css::lang::XMultiComponentFactory> xFactory;
 LODocument *
 LibLibreOffice_Impl::documentLoad( const char *docUrl )
 {
+    OUString sUrl = OUString::createFromAscii (docUrl);
+    OUString sAbsoluteDocUrl, sWorkingDir, sDocPathUrl;
+
+    uno::Reference < css::frame::XDesktop2 > xComponentLoader =
+            css::frame::Desktop::create(xContext);
+
+    osl_getProcessWorkingDir(&sWorkingDir.pData);
+    osl::FileBase::getFileURLFromSystemPath(sUrl, sDocPathUrl);
+    osl::FileBase::getAbsoluteFileURL(sWorkingDir, sDocPathUrl, sAbsoluteDocUrl);
+
+    uno::Reference < css::lang::XComponent > xComponent = xComponentLoader->loadComponentFromURL(
+            sAbsoluteDocUrl, OUString("_blank"), 0,
+            uno::Sequence < css::beans::PropertyValue >());
     return NULL;
 }
 
@@ -131,4 +147,3 @@ LibLibreOffice_Impl::~LibLibreOffice_Impl ()
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
-
commit 0dce100c3b4255a959dc3ad957b86956a5bf22ce
Author: Michael Meeks <michael.meeks at suse.com>
Date:   Tue Mar 5 16:40:01 2013 +0000

    liblibo: misc. cleanup
    
    Change-Id: I40fc77f2a7a0fd01d3cec94a8b630dddc4637baf

diff --git a/desktop/inc/liblibreoffice.hxx b/desktop/inc/liblibreoffice.hxx
index 74f6769..48c0a24 100644
--- a/desktop/inc/liblibreoffice.hxx
+++ b/desktop/inc/liblibreoffice.hxx
@@ -10,16 +10,15 @@
 #ifndef _LIBLIBREOFFICE_HXX
 #define _LIBLIBREOFFICE_HXX
 
-typedef int loboolean;
 typedef struct _LODocument LODocument;
 
 class LibLibreOffice
 {
 public:
-    virtual loboolean initialize (const char *installPath) = 0;
+    virtual bool initialize (const char *installPath) = 0;
 
     virtual LODocument *documentLoad (const char *url) = 0;
-    virtual loboolean   documentSave (const char *url) = 0;
+    virtual bool   documentSave (const char *url) = 0;
 
     virtual ~LibLibreOffice () {};
 };
diff --git a/desktop/inc/liblibreoffice_impl.hxx b/desktop/inc/liblibreoffice_impl.hxx
index d7686eb..3f7783e 100644
--- a/desktop/inc/liblibreoffice_impl.hxx
+++ b/desktop/inc/liblibreoffice_impl.hxx
@@ -12,16 +12,13 @@
 
 #include "liblibreoffice.hxx"
 
-typedef int loboolean;
-typedef struct _LODocument LODocument;
-
 class LibLibreOffice_Impl : public LibLibreOffice
 {
 public:
-    virtual loboolean initialize (const char *installPath);
+    virtual bool        initialize (const char *installPath);
 
     virtual LODocument *documentLoad (const char *url);
-    virtual loboolean   documentSave (const char *url);
+    virtual bool        documentSave (const char *url);
 
     virtual ~LibLibreOffice_Impl ();
 };
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 4b47ac6..eb85bcb 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -42,7 +42,7 @@ LibLibreOffice_Impl::documentLoad( const char *docUrl )
     return NULL;
 }
 
-loboolean
+bool
 LibLibreOffice_Impl::documentSave( const char * )
 {
     return 1;
@@ -82,7 +82,7 @@ initialize_uno( const rtl::OUString &aUserProfileURL )
     xSFactory = uno::Reference<lang::XMultiServiceFactory>(xFactory, uno::UNO_QUERY_THROW);
 }
 
-loboolean
+bool
 LibLibreOffice_Impl::initialize( const char *app_path )
 {
     static bool bInitialized = false;
@@ -122,6 +122,7 @@ extern "C" {
 
 LibLibreOffice *liblibreoffice_hook(void)
 {
+    fprintf( stderr, "create libreoffice object\n" );
     return new LibLibreOffice_Impl();
 }
 
diff --git a/desktop/source/lib/shim.cxx b/desktop/source/lib/shim.cxx
index 4c8e61d..546d0da 100644
--- a/desktop/source/lib/shim.cxx
+++ b/desktop/source/lib/shim.cxx
@@ -41,13 +41,14 @@ SAL_DLLPUBLIC_EXPORT LibLibreOffice *lo_init( const char *install_path )
         fprintf( stderr, "failed to open library '%s'\n", imp_lib );
         return NULL;
     }
-    free( imp_lib );
 
     HookFunction *pSym = (HookFunction *) dlsym( dlhandle, "liblibreoffice_hook" );
     if( !pSym ) {
         fprintf( stderr, "failed to find hook in library '%s'\n", imp_lib );
         return NULL;
     }
+
+    free( imp_lib );
     return pSym();
 }
 
diff --git a/smoketest/CppunitTest_liblibreoffice.mk b/smoketest/CppunitTest_liblibreoffice.mk
index 2cd3456..8755fe8 100644
--- a/smoketest/CppunitTest_liblibreoffice.mk
+++ b/smoketest/CppunitTest_liblibreoffice.mk
@@ -15,29 +15,16 @@ $(eval $(call gb_CppunitTest_add_exception_objects,liblibreoffice,\
 	smoketest/libtest \
 ))
 
-$(eval $(call gb_CppunitTest_use_external,liblibreoffice,boost_headers))
-
-$(eval $(call gb_CppunitTest_use_api,liblibreoffice,\
-	offapi \
-	udkapi \
-))
-
 $(eval $(call gb_CppunitTest_use_libraries,liblibreoffice,\
-	cppu \
-	cppuhelper \
 	libreoffice \
-	sal \
-	unotest \
 ))
 
 ifeq ($(OS),MACOSX)
-liblibreoffice_SOFFICE_INST := path:$(DEVINSTALLDIR)/opt/LibreOffice.app/Contents/MacOS
+liblibreoffice_SOFFICE_INST := $(DEVINSTALLDIR)/opt/LibreOffice.app/Contents/MacOS
 else
-liblibreoffice_SOFFICE_INST := path:$(DEVINSTALLDIR)/opt/program
+liblibreoffice_SOFFICE_INST := $(DEVINSTALLDIR)/opt/program
 endif
 
-$(eval $(call gb_CppunitTest_use_ure,liblibreoffice))
-
 $(eval $(call gb_CppunitTest_add_arguments,liblibreoffice,\
 	-env:arg-soffice=$(liblibreoffice_SOFFICE_INST) \
 ))
diff --git a/smoketest/libtest.cxx b/smoketest/libtest.cxx
index 36c3a0c..cc71d08 100644
--- a/smoketest/libtest.cxx
+++ b/smoketest/libtest.cxx
@@ -46,7 +46,11 @@ void Test::test()
     rtl::Bootstrap::get( rtl::OUString( "arg-soffice" ), aArgSoffice );
     OString aInstall = OUStringToOString( aArgSoffice, RTL_TEXTENCODING_UTF8 );
     fprintf( stderr, "liblibreoffice test: '%s'\n", aInstall.getStr() );
-    assert (lo_init( aInstall.getStr() ));
+    LibLibreOffice *pOffice = lo_init( aInstall.getStr() );
+    CPPUNIT_ASSERT( pOffice != NULL );
+
+    bool bInited = pOffice->initialize( aInstall.getStr() );
+    CPPUNIT_ASSERT( bInited );
 }
 
 CPPUNIT_TEST_SUITE_REGISTRATION(Test);


More information about the Libreoffice-commits mailing list