[Libreoffice-commits] core.git: 2 commits - include/vcl svtools/source vcl/source

Matúš Kukan matus.kukan at collabora.com
Wed Jan 8 06:02:36 PST 2014


 include/vcl/svapp.hxx          |    6 +++---
 svtools/source/uno/fpicker.cxx |   35 ++++++++++++++++++++++++-----------
 vcl/source/app/svapp.cxx       |   12 ++----------
 3 files changed, 29 insertions(+), 24 deletions(-)

New commits:
commit df002e39f7518036ae1c1d2afec7a525ef902327
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Wed Jan 8 09:12:17 2014 +0100

    These implementations could inherit from XInitialization too.
    
    Change-Id: I70493afcec837411b0f3c6d5165564d2cc0996db

diff --git a/svtools/source/uno/fpicker.cxx b/svtools/source/uno/fpicker.cxx
index a9d06ad..7a4b769 100644
--- a/svtools/source/uno/fpicker.cxx
+++ b/svtools/source/uno/fpicker.cxx
@@ -20,7 +20,8 @@
 #include "sal/types.h"
 #include "rtl/ustring.hxx"
 
-#include "com/sun/star/lang/XMultiComponentFactory.hpp"
+#include <com/sun/star/lang/XInitialization.hpp>
+#include <com/sun/star/lang/XMultiComponentFactory.hpp>
 
 #include "svtools/miscopt.hxx"
 #include "svl/pickerhistoryaccess.hxx"
@@ -57,7 +58,7 @@ extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
 com_sun_star_comp_svt_FilePicker_get_implementation(
         css::uno::XComponentContext *context, uno_Sequence * arguments)
 {
-    assert(arguments != 0 && arguments->nElements == 0); (void) arguments;
+    assert(arguments != 0);
     Reference< css::uno::XInterface > xResult;
     Reference< css::lang::XMultiComponentFactory > xFactory (context->getServiceManager());
     if (xFactory.is() && SvtMiscOptions().UseSystemFileDialog())
@@ -92,6 +93,14 @@ com_sun_star_comp_svt_FilePicker_get_implementation(
         // Add to FilePicker history.
         svt::addFilePicker (xResult);
     }
+    css::uno::Reference< css::lang::XInitialization > xx(xResult, css::uno::UNO_QUERY);
+    if (xx.is())
+    {
+        css::uno::Sequence<css::uno::Any> aArgs(
+                reinterpret_cast<css::uno::Any *>(arguments->elements),
+                arguments->nElements);
+        xx->initialize(aArgs);
+    }
     xResult->acquire();
     return xResult.get();
 }
@@ -117,7 +126,7 @@ extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
 com_sun_star_comp_svt_FolderPicker_get_implementation(
         css::uno::XComponentContext *context, uno_Sequence * arguments)
 {
-    assert(arguments != 0 && arguments->nElements == 0); (void) arguments;
+    assert(arguments != 0);
     Reference< css::uno::XInterface > xResult;
     Reference< css::lang::XMultiComponentFactory > xFactory (context->getServiceManager());
     if (xFactory.is() && SvtMiscOptions().UseSystemFileDialog())
@@ -149,6 +158,14 @@ com_sun_star_comp_svt_FolderPicker_get_implementation(
         // Add to FolderPicker history.
         svt::addFolderPicker (xResult);
     }
+    css::uno::Reference< css::lang::XInitialization > xx(xResult, css::uno::UNO_QUERY);
+    if (xx.is())
+    {
+        css::uno::Sequence<css::uno::Any> aArgs(
+                reinterpret_cast<css::uno::Any *>(arguments->elements),
+                arguments->nElements);
+        xx->initialize(aArgs);
+    }
     xResult->acquire();
     return xResult.get();
 }
commit 194bdbde25dd70988c94ff5e1af43b530d47d94b
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Wed Jan 8 09:08:08 2014 +0100

    Revert "make FilePicker::createWithMode not crash"
    
    This reverts commit 58ea27124af27bfac21a796b0d13d72354bd0dd3.
    It's probably better to fix it another way.

diff --git a/include/vcl/svapp.hxx b/include/vcl/svapp.hxx
index 57814e0..1620efa 100644
--- a/include/vcl/svapp.hxx
+++ b/include/vcl/svapp.hxx
@@ -389,9 +389,9 @@ public:
     /** Create a platform specific file picker, if one is available,
         otherwise return an empty reference
     */
-    static css::uno::Reference<css::ui::dialogs::XFilePicker2>
-        createFilePicker(const css::uno::Sequence<css::uno::Any>& rArguments,
-                         const css::uno::Reference<css::uno::XComponentContext>& rServiceManager);
+    static com::sun::star::uno::Reference< com::sun::star::ui::dialogs::XFilePicker2 >
+        createFilePicker( const com::sun::star::uno::Reference<
+                              com::sun::star::uno::XComponentContext >& rServiceManager );
 
     /** Create a platform specific folder picker, if one is available,
         otherwise return an empty reference
diff --git a/svtools/source/uno/fpicker.cxx b/svtools/source/uno/fpicker.cxx
index 1034baf..a9d06ad 100644
--- a/svtools/source/uno/fpicker.cxx
+++ b/svtools/source/uno/fpicker.cxx
@@ -57,22 +57,19 @@ extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
 com_sun_star_comp_svt_FilePicker_get_implementation(
         css::uno::XComponentContext *context, uno_Sequence * arguments)
 {
-    assert(arguments != 0 && (arguments->nElements == 0 || arguments->nElements == 1));
-    css::uno::Sequence<css::uno::Any> aArgs(reinterpret_cast<css::uno::Any *>(arguments->elements),
-        arguments->nElements);
+    assert(arguments != 0 && arguments->nElements == 0); (void) arguments;
     Reference< css::uno::XInterface > xResult;
     Reference< css::lang::XMultiComponentFactory > xFactory (context->getServiceManager());
     if (xFactory.is() && SvtMiscOptions().UseSystemFileDialog())
     {
-        xResult = Reference<css::uno::XInterface>(Application::createFilePicker(aArgs, context));
+        xResult = Reference< css::uno::XInterface >( Application::createFilePicker( context ) );
 
         if (!xResult.is())
         {
             try
             {
-                xResult = xFactory->createInstanceWithArgumentsAndContext(
+                xResult = xFactory->createInstanceWithContext (
                         FilePicker_getSystemPickerServiceName(),
-                        aArgs,
                         context);
             }
             catch (css::uno::Exception const &)
@@ -86,9 +83,8 @@ com_sun_star_comp_svt_FilePicker_get_implementation(
     if (!xResult.is() && xFactory.is())
     {
         // Always fall back to OfficeFilePicker.
-        xResult = xFactory->createInstanceWithArgumentsAndContext(
-                "com.sun.star.ui.dialogs.OfficeFilePicker",
-                aArgs,
+        xResult = xFactory->createInstanceWithContext (
+                OUString( "com.sun.star.ui.dialogs.OfficeFilePicker"),
                 context);
     }
     if (xResult.is())
diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
index 945229c..5e573d0 100644
--- a/vcl/source/app/svapp.cxx
+++ b/vcl/source/app/svapp.cxx
@@ -62,7 +62,6 @@
 #include "com/sun/star/uno/Reference.h"
 #include "com/sun/star/awt/XToolkit.hpp"
 #include "com/sun/star/uno/XNamingService.hpp"
-#include "com/sun/star/lang/XInitialization.hpp"
 #include "com/sun/star/lang/XMultiServiceFactory.hpp"
 #include "comphelper/solarmutex.hxx"
 #include "osl/process.h"
@@ -1648,17 +1647,10 @@ bool Application::hasNativeFileSelection()
 }
 
 Reference< ui::dialogs::XFilePicker2 >
-Application::createFilePicker(const uno::Sequence<uno::Any>& rArguments,
-    const Reference< uno::XComponentContext >& xSM)
+Application::createFilePicker( const Reference< uno::XComponentContext >& xSM )
 {
     ImplSVData* pSVData = ImplGetSVData();
-    Reference< ui::dialogs::XFilePicker2 > xRet(pSVData->mpDefInst->createFilePicker(xSM));
-    if (xRet.is() && rArguments.getLength())
-    {
-        uno::Reference<lang::XInitialization> xInit(xRet, uno::UNO_QUERY_THROW);
-        xInit->initialize(rArguments);
-    }
-    return xRet;
+    return pSVData->mpDefInst->createFilePicker( xSM );
 }
 
 Reference< ui::dialogs::XFolderPicker2 >


More information about the Libreoffice-commits mailing list