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.ku...@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.ku...@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 >
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits