diff options
27 files changed, 286 insertions, 433 deletions
diff --git a/basctl/source/basicide/baside2.cxx b/basctl/source/basicide/baside2.cxx index 4dcc13a9e1bd..7bcc2dccd359 100644 --- a/basctl/source/basicide/baside2.cxx +++ b/basctl/source/basicide/baside2.cxx @@ -34,6 +34,7 @@ #include <com/sun/star/script/ModuleType.hpp> #include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp> #include <com/sun/star/ui/dialogs/TemplateDescription.hpp> +#include <com/sun/star/ui/dialogs/FilePicker.hpp> #include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp> #include <com/sun/star/ui/dialogs/XFilterManager.hpp> #include <comphelper/processfactory.hxx> @@ -433,23 +434,15 @@ bool ModulWindow::LoadBasic() DBG_CHKTHIS( ModulWindow, 0 ); bool bDone = false; - Reference< lang::XMultiServiceFactory > xMSF( ::comphelper::getProcessServiceFactory() ); - Reference < XFilePicker > xFP; - if( xMSF.is() ) - { - Sequence <Any> aServiceType(1); - aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE; - xFP = Reference< XFilePicker >( xMSF->createInstanceWithArguments( - "com.sun.star.ui.dialogs.FilePicker", aServiceType ), UNO_QUERY ); - } + Reference< uno::XComponentContext > xContext( ::comphelper::getProcessComponentContext() ); + Reference < XFilePicker3 > xFP = FilePicker::createWithMode(xContext, TemplateDescription::FILEOPEN_SIMPLE); if ( !aCurPath.isEmpty() ) xFP->setDisplayDirectory ( aCurPath ); - Reference< XFilterManager > xFltMgr(xFP, UNO_QUERY); - xFltMgr->appendFilter( "BASIC" , "*.bas" ); - xFltMgr->appendFilter( IDE_RESSTR(RID_STR_FILTER_ALLFILES), OUString( FilterMask_All ) ); - xFltMgr->setCurrentFilter( "BASIC" ); + xFP->appendFilter( "BASIC" , "*.bas" ); + xFP->appendFilter( IDE_RESSTR(RID_STR_FILTER_ALLFILES), OUString( FilterMask_All ) ); + xFP->setCurrentFilter( "BASIC" ); if( xFP->execute() == RET_OK ) { @@ -487,15 +480,8 @@ bool ModulWindow::SaveBasicSource() DBG_CHKTHIS( ModulWindow, 0 ); bool bDone = false; - Reference< lang::XMultiServiceFactory > xMSF( ::comphelper::getProcessServiceFactory() ); - Reference < XFilePicker > xFP; - if( xMSF.is() ) - { - Sequence <Any> aServiceType(1); - aServiceType[0] <<= TemplateDescription::FILESAVE_AUTOEXTENSION_PASSWORD; - xFP = Reference< XFilePicker >( xMSF->createInstanceWithArguments( - "com.sun.star.ui.dialogs.FilePicker", aServiceType ), UNO_QUERY ); - } + Reference< uno::XComponentContext > xContext( ::comphelper::getProcessComponentContext() ); + Reference < XFilePicker3 > xFP = FilePicker::createWithMode(xContext, TemplateDescription::FILESAVE_AUTOEXTENSION_PASSWORD); Reference< XFilePickerControlAccess > xFPControl(xFP, UNO_QUERY); xFPControl->enableControl(ExtendedFilePickerElementIds::CHECKBOX_PASSWORD, false); @@ -506,10 +492,9 @@ bool ModulWindow::SaveBasicSource() if ( !aCurPath.isEmpty() ) xFP->setDisplayDirectory ( aCurPath ); - Reference< XFilterManager > xFltMgr(xFP, UNO_QUERY); - xFltMgr->appendFilter( "BASIC", "*.bas" ); - xFltMgr->appendFilter( IDE_RESSTR(RID_STR_FILTER_ALLFILES), OUString( FilterMask_All ) ); - xFltMgr->setCurrentFilter( "BASIC" ); + xFP->appendFilter( "BASIC", "*.bas" ); + xFP->appendFilter( IDE_RESSTR(RID_STR_FILTER_ALLFILES), OUString( FilterMask_All ) ); + xFP->setCurrentFilter( "BASIC" ); if( xFP->execute() == RET_OK ) { diff --git a/basctl/source/basicide/baside3.cxx b/basctl/source/basicide/baside3.cxx index 4d4e0bc9591e..a23b09cd3346 100644 --- a/basctl/source/basicide/baside3.cxx +++ b/basctl/source/basicide/baside3.cxx @@ -39,6 +39,7 @@ #include <com/sun/star/ucb/SimpleFileAccess.hpp> #include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp> #include <com/sun/star/ui/dialogs/TemplateDescription.hpp> +#include <com/sun/star/ui/dialogs/FilePicker.hpp> #include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp> #include <com/sun/star/ui/dialogs/XFilterManager.hpp> #include <comphelper/processfactory.hxx> @@ -689,15 +690,8 @@ bool DialogWindow::SaveDialog() DBG_CHKTHIS( DialogWindow, 0 ); bool bDone = false; - Reference< lang::XMultiServiceFactory > xMSF( ::comphelper::getProcessServiceFactory() ); - Reference < XFilePicker > xFP; - if( xMSF.is() ) - { - Sequence <Any> aServiceType(1); - aServiceType[0] <<= TemplateDescription::FILESAVE_AUTOEXTENSION_PASSWORD; - xFP = Reference< XFilePicker >( xMSF->createInstanceWithArguments( - "com.sun.star.ui.dialogs.FilePicker", aServiceType ), UNO_QUERY ); - } + Reference< XComponentContext > xContext( comphelper::getProcessComponentContext() ); + Reference < XFilePicker3 > xFP = FilePicker::createWithMode(xContext, TemplateDescription::FILESAVE_AUTOEXTENSION_PASSWORD); Reference< XFilePickerControlAccess > xFPControl(xFP, UNO_QUERY); xFPControl->enableControl(ExtendedFilePickerElementIds::CHECKBOX_PASSWORD, false); @@ -711,10 +705,9 @@ bool DialogWindow::SaveDialog() xFP->setDefaultName( OUString( GetName() ) ); OUString aDialogStr(IDE_RESSTR(RID_STR_STDDIALOGNAME)); - Reference< XFilterManager > xFltMgr(xFP, UNO_QUERY); - xFltMgr->appendFilter( aDialogStr, String( "*.xdl" ) ); - xFltMgr->appendFilter( IDE_RESSTR(RID_STR_FILTER_ALLFILES), String( FilterMask_All ) ); - xFltMgr->setCurrentFilter( aDialogStr ); + xFP->appendFilter( aDialogStr, String( "*.xdl" ) ); + xFP->appendFilter( IDE_RESSTR(RID_STR_FILTER_ALLFILES), String( FilterMask_All ) ); + xFP->setCurrentFilter( aDialogStr ); if( xFP->execute() == RET_OK ) { @@ -723,11 +716,10 @@ bool DialogWindow::SaveDialog() // export dialog model to xml Reference< container::XNameContainer > xDialogModel = GetDialog(); - Reference< XComponentContext > xContext( comphelper::getProcessComponentContext() ); Reference< XInputStreamProvider > xISP = ::xmlscript::exportDialogModel( xDialogModel, xContext, GetDocument().isDocument() ? GetDocument().getDocument() : Reference< frame::XModel >() ); Reference< XInputStream > xInput( xISP->createInputStream() ); - Reference< XSimpleFileAccess3 > xSFI( SimpleFileAccess::create(comphelper::getProcessComponentContext()) ); + Reference< XSimpleFileAccess3 > xSFI( SimpleFileAccess::create(xContext) ); Reference< XOutputStream > xOutput; try @@ -950,14 +942,8 @@ bool implImportDialog( Window* pWin, const OUString& rCurPath, const ScriptDocum bool bDone = false; Reference< lang::XMultiServiceFactory > xMSF( ::comphelper::getProcessServiceFactory() ); - Reference < XFilePicker > xFP; - if( xMSF.is() ) - { - Sequence <Any> aServiceType(1); - aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE; - xFP = Reference< XFilePicker >( xMSF->createInstanceWithArguments( - "com.sun.star.ui.dialogs.FilePicker", aServiceType ), UNO_QUERY ); - } + Reference< XComponentContext > xContext( comphelper::getComponentContext( xMSF ) ); + Reference < XFilePicker3 > xFP = FilePicker::createWithMode(xContext, TemplateDescription::FILEOPEN_SIMPLE); Reference< XFilePickerControlAccess > xFPControl(xFP, UNO_QUERY); xFPControl->enableControl(ExtendedFilePickerElementIds::CHECKBOX_PASSWORD, false); @@ -970,10 +956,9 @@ bool implImportDialog( Window* pWin, const OUString& rCurPath, const ScriptDocum xFP->setDisplayDirectory ( aCurPath ); OUString aDialogStr(IDE_RESSTR(RID_STR_STDDIALOGNAME)); - Reference< XFilterManager > xFltMgr(xFP, UNO_QUERY); - xFltMgr->appendFilter( aDialogStr, String( "*.xdl" ) ); - xFltMgr->appendFilter( IDE_RESSTR(RID_STR_FILTER_ALLFILES), String( FilterMask_All ) ); - xFltMgr->setCurrentFilter( aDialogStr ); + xFP->appendFilter( aDialogStr, String( "*.xdl" ) ); + xFP->appendFilter( IDE_RESSTR(RID_STR_FILTER_ALLFILES), String( FilterMask_All ) ); + xFP->setCurrentFilter( aDialogStr ); if( xFP->execute() == RET_OK ) { @@ -998,8 +983,6 @@ bool implImportDialog( Window* pWin, const OUString& rCurPath, const ScriptDocum if( xSFI->exists( aCurPath ) ) xInput = xSFI->openFileRead( aCurPath ); - Reference< XComponentContext > xContext( - comphelper::getComponentContext( xMSF ) ); ::xmlscript::importDialogModel( xInput, xDialogModel, xContext, rDocument.isDocument() ? rDocument.getDocument() : Reference< frame::XModel >() ); OUString aXmlDlgName; diff --git a/basctl/source/basicide/moduldl2.cxx b/basctl/source/basicide/moduldl2.cxx index 4437f64a7021..f07e1af64be5 100644 --- a/basctl/source/basicide/moduldl2.cxx +++ b/basctl/source/basicide/moduldl2.cxx @@ -45,7 +45,7 @@ #include <sot/storage.hxx> #include <com/sun/star/io/Pipe.hpp> -#include <com/sun/star/ui/dialogs/XFilePicker.hpp> +#include <com/sun/star/ui/dialogs/FilePicker.hpp> #include <com/sun/star/ui/dialogs/FolderPicker.hpp> #include <com/sun/star/ui/dialogs/XFilterManager.hpp> #include <com/sun/star/ui/dialogs/TemplateDescription.hpp> @@ -781,16 +781,10 @@ void LibPage::NewLib() void LibPage::InsertLib() { - // file open dialog Reference< lang::XMultiServiceFactory > xMSF( ::comphelper::getProcessServiceFactory() ); - Reference < XFilePicker > xFP; - if( xMSF.is() ) - { - Sequence <Any> aServiceType(1); - aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE; - xFP = Reference< XFilePicker >( xMSF->createInstanceWithArguments( - "com.sun.star.ui.dialogs.FilePicker", aServiceType ), UNO_QUERY ); - } + Reference< uno::XComponentContext > xContext( ::comphelper::getProcessComponentContext() ); + // file open dialog + Reference < XFilePicker3 > xFP = FilePicker::createWithMode(xContext, TemplateDescription::FILEOPEN_SIMPLE); xFP->setTitle( String( IDEResId( RID_STR_APPENDLIBS ) ) ); // filter @@ -852,27 +846,24 @@ void LibPage::InsertLib() aDlgURLObj.setBase( aDlgBase ); } - if ( xMSF.is() ) - { - Reference< XSimpleFileAccess3 > xSFA( SimpleFileAccess::create(comphelper::getProcessComponentContext()) ); + Reference< XSimpleFileAccess3 > xSFA( SimpleFileAccess::create(comphelper::getProcessComponentContext()) ); - OUString aModURL( aModURLObj.GetMainURL( INetURLObject::NO_DECODE ) ); - if ( xSFA->exists( aModURL ) ) - { - Sequence <Any> aSeqModURL(1); - aSeqModURL[0] <<= aModURL; - xModLibContImport = Reference< script::XLibraryContainer2 >( xMSF->createInstanceWithArguments( - "com.sun.star.script.DocumentScriptLibraryContainer", aSeqModURL ), UNO_QUERY ); - } + OUString aModURL( aModURLObj.GetMainURL( INetURLObject::NO_DECODE ) ); + if ( xSFA->exists( aModURL ) ) + { + Sequence <Any> aSeqModURL(1); + aSeqModURL[0] <<= aModURL; + xModLibContImport = Reference< script::XLibraryContainer2 >( xMSF->createInstanceWithArguments( + "com.sun.star.script.DocumentScriptLibraryContainer", aSeqModURL ), UNO_QUERY ); + } - OUString aDlgURL( aDlgURLObj.GetMainURL( INetURLObject::NO_DECODE ) ); - if ( xSFA->exists( aDlgURL ) ) - { - Sequence <Any> aSeqDlgURL(1); - aSeqDlgURL[0] <<= aDlgURL; - xDlgLibContImport = Reference< script::XLibraryContainer2 >( xMSF->createInstanceWithArguments( - "com.sun.star.script.DocumentDialogLibraryContainer", aSeqDlgURL ), UNO_QUERY ); - } + OUString aDlgURL( aDlgURLObj.GetMainURL( INetURLObject::NO_DECODE ) ); + if ( xSFA->exists( aDlgURL ) ) + { + Sequence <Any> aSeqDlgURL(1); + aSeqDlgURL[0] <<= aDlgURL; + xDlgLibContImport = Reference< script::XLibraryContainer2 >( xMSF->createInstanceWithArguments( + "com.sun.star.script.DocumentDialogLibraryContainer", aSeqDlgURL ), UNO_QUERY ); } if ( xModLibContImport.is() || xDlgLibContImport.is() ) @@ -1253,16 +1244,11 @@ Reference< XProgressHandler > OLibCommandEnvironment::getProgressHandler() void LibPage::ExportAsPackage( const String& aLibName ) { // file open dialog - Reference< lang::XMultiServiceFactory > xMSF( ::comphelper::getProcessServiceFactory() ); Reference< uno::XComponentContext > xContext( ::comphelper::getProcessComponentContext() ); Reference< task::XInteractionHandler2 > xHandler( task::InteractionHandler::createWithParent(xContext, 0) ); Reference< XSimpleFileAccess3 > xSFA = SimpleFileAccess::create(xContext); - Reference < XFilePicker > xFP; - Sequence <Any> aServiceType(1); - aServiceType[0] <<= TemplateDescription::FILESAVE_SIMPLE; - xFP = Reference< XFilePicker >( xMSF->createInstanceWithArguments( - "com.sun.star.ui.dialogs.FilePicker", aServiceType ), UNO_QUERY ); + Reference < XFilePicker3 > xFP = FilePicker::createWithMode(xContext, TemplateDescription::FILESAVE_SIMPLE); xFP->setTitle( String( IDEResId( RID_STR_EXPORTPACKAGE ) ) ); diff --git a/cui/source/dialogs/insdlg.cxx b/cui/source/dialogs/insdlg.cxx index 4163afc14d8d..36253d3b185d 100644 --- a/cui/source/dialogs/insdlg.cxx +++ b/cui/source/dialogs/insdlg.cxx @@ -19,7 +19,7 @@ #include <com/sun/star/ui/dialogs/TemplateDescription.hpp> #include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp> -#include <com/sun/star/ui/dialogs/XFilePicker.hpp> +#include <com/sun/star/ui/dialogs/FilePicker.hpp> #include <com/sun/star/ui/dialogs/XFilterManager.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/lang/XInitialization.hpp> @@ -112,40 +112,28 @@ IMPL_LINK_INLINE_END( SvInsertOleDlg, DoubleClickHdl, ListBox *, pListBox ) IMPL_LINK_NOARG(SvInsertOleDlg, BrowseHdl) { - Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() ); - if( xFactory.is() ) - { - Reference< XFilePicker > xFilePicker( xFactory->createInstance( "com.sun.star.ui.dialogs.FilePicker" ), UNO_QUERY ); - DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" ); + Reference< XComponentContext > xContext( ::comphelper::getProcessComponentContext() ); - Reference< XInitialization > xInit( xFilePicker, UNO_QUERY ); - Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY ); - if( xInit.is() && xFilePicker.is() && xFilterMgr.is() ) - { - Sequence< Any > aServiceType( 1 ); - aServiceType[0] <<= TemplateDescription::FILEOPEN_SIMPLE; - xInit->initialize( aServiceType ); + Reference< XFilePicker3 > xFilePicker = FilePicker::createWithMode(xContext, TemplateDescription::FILEOPEN_SIMPLE); - // add filter - try - { - xFilterMgr->appendFilter( - OUString(), - OUString( "*.*" ) - ); - } - catch( IllegalArgumentException& ) - { - DBG_ASSERT( 0, "caught IllegalArgumentException when registering filter\n" ); - } + // add filter + try + { + xFilePicker->appendFilter( + OUString(), + OUString( "*.*" ) + ); + } + catch( const IllegalArgumentException& ) + { + DBG_ASSERT( 0, "caught IllegalArgumentException when registering filter\n" ); + } - if( xFilePicker->execute() == ExecutableDialogResults::OK ) - { - Sequence< OUString > aPathSeq( xFilePicker->getFiles() ); - INetURLObject aObj( aPathSeq[0] ); - m_pEdFilepath->SetText( aObj.PathToFileName() ); - } - } + if( xFilePicker->execute() == ExecutableDialogResults::OK ) + { + Sequence< OUString > aPathSeq( xFilePicker->getFiles() ); + INetURLObject aObj( aPathSeq[0] ); + m_pEdFilepath->SetText( aObj.PathToFileName() ); } return 0; diff --git a/cui/source/options/personalization.cxx b/cui/source/options/personalization.cxx index 14e071f2dd8e..f1ba9801aac9 100644 --- a/cui/source/options/personalization.cxx +++ b/cui/source/options/personalization.cxx @@ -24,7 +24,7 @@ #include <com/sun/star/ucb/SimpleFileAccess.hpp> #include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp> #include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp> -#include <com/sun/star/ui/dialogs/XFilePicker.hpp> +#include <com/sun/star/ui/dialogs/FilePicker.hpp> #include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp> #include <com/sun/star/ui/dialogs/XFilterManager.hpp> @@ -209,13 +209,9 @@ void SvxPersonalizationTabPage::Reset( const SfxItemSet & ) IMPL_LINK( SvxPersonalizationTabPage, SelectBackground, PushButton*, /*pButton*/ ) { - uno::Reference< lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() ); - if ( !xFactory.is() ) - return 0; + uno::Reference< uno::XComponentContext > xContext( ::comphelper::getProcessComponentContext() ); - uno::Reference< ui::dialogs::XFilePicker > xFilePicker( xFactory->createInstance( "com.sun.star.ui.dialogs.FilePicker" ), uno::UNO_QUERY ); - if ( !xFilePicker.is() ) - return 0; + uno::Reference< ui::dialogs::XFilePicker3 > xFilePicker = ui::dialogs::FilePicker::createDefault(xContext); xFilePicker->setMultiSelectionMode( false ); @@ -223,9 +219,7 @@ IMPL_LINK( SvxPersonalizationTabPage, SelectBackground, PushButton*, /*pButton*/ if ( xController.is() ) xController->setValue( ui::dialogs::ExtendedFilePickerElementIds::CHECKBOX_PREVIEW, 0, uno::makeAny( sal_True ) ); - uno::Reference< ui::dialogs::XFilterManager > xFilterMgr( xFilePicker, uno::UNO_QUERY ); - if ( xFilterMgr.is() ) - xFilterMgr->appendFilter( "Background images (*.jpg;*.png)", "*.jpg;*.png" ); // TODO localize + xFilePicker->appendFilter( "Background images (*.jpg;*.png)", "*.jpg;*.png" ); // TODO localize while ( xFilePicker->execute() == ui::dialogs::ExecutableDialogResults::OK ) { diff --git a/desktop/source/deployment/gui/dp_gui_dialog2.cxx b/desktop/source/deployment/gui/dp_gui_dialog2.cxx index 696e5e7544e1..643e8512deb4 100644 --- a/desktop/source/deployment/gui/dp_gui_dialog2.cxx +++ b/desktop/source/deployment/gui/dp_gui_dialog2.cxx @@ -63,7 +63,7 @@ #include "com/sun/star/ui/dialogs/ExecutableDialogResults.hpp" #include "com/sun/star/ui/dialogs/TemplateDescription.hpp" -#include "com/sun/star/ui/dialogs/XFilePicker.hpp" +#include "com/sun/star/ui/dialogs/FilePicker.hpp" #include "com/sun/star/ui/dialogs/XFilterManager.hpp" #include "com/sun/star/uno/Any.hxx" @@ -886,12 +886,9 @@ bool ExtMgrDialog::acceptLicense( const uno::Reference< deployment::XPackage > & //------------------------------------------------------------------------------ uno::Sequence< OUString > ExtMgrDialog::raiseAddPicker() { - const uno::Any mode( static_cast< sal_Int16 >( ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE ) ); const uno::Reference< uno::XComponentContext > xContext( m_pManager->getContext() ); - const uno::Reference< ui::dialogs::XFilePicker > xFilePicker( - xContext->getServiceManager()->createInstanceWithArgumentsAndContext( - "com.sun.star.ui.dialogs.FilePicker", - uno::Sequence< uno::Any >( &mode, 1 ), xContext ), uno::UNO_QUERY_THROW ); + const uno::Reference< ui::dialogs::XFilePicker3 > xFilePicker = + ui::dialogs::FilePicker::createWithMode(xContext, ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE); xFilePicker->setTitle( m_sAddPackages ); if ( m_sLastFolderURL.Len() ) @@ -927,15 +924,14 @@ uno::Sequence< OUString > ExtMgrDialog::raiseAddPicker() } } - const uno::Reference< ui::dialogs::XFilterManager > xFilterManager( xFilePicker, uno::UNO_QUERY_THROW ); // All files at top: - xFilterManager->appendFilter( StrAllFiles::get(), "*.*" ); + xFilePicker->appendFilter( StrAllFiles::get(), "*.*" ); // then supported ones: t_string2string::const_iterator iPos( title2filter.begin() ); const t_string2string::const_iterator iEnd( title2filter.end() ); for ( ; iPos != iEnd; ++iPos ) { try { - xFilterManager->appendFilter( iPos->first, iPos->second ); + xFilePicker->appendFilter( iPos->first, iPos->second ); } catch (const lang::IllegalArgumentException & exc) { OSL_FAIL( ::rtl::OUStringToOString( @@ -943,7 +939,7 @@ uno::Sequence< OUString > ExtMgrDialog::raiseAddPicker() (void) exc; } } - xFilterManager->setCurrentFilter( sDefaultFilter ); + xFilePicker->setCurrentFilter( sDefaultFilter ); if ( xFilePicker->execute() != ui::dialogs::ExecutableDialogResults::OK ) return uno::Sequence<OUString>(); // cancelled diff --git a/fpicker/source/aqua/SalAquaFilePicker.hxx b/fpicker/source/aqua/SalAquaFilePicker.hxx index 608c185d1a9f..fbf7ac7b70f8 100644 --- a/fpicker/source/aqua/SalAquaFilePicker.hxx +++ b/fpicker/source/aqua/SalAquaFilePicker.hxx @@ -20,13 +20,9 @@ #ifndef _SALAQUAFILEPICKER_HXX_ #define _SALAQUAFILEPICKER_HXX_ -#include <cppuhelper/compbase8.hxx> -#include <com/sun/star/util/XCancellable.hpp> -#include <com/sun/star/lang/XInitialization.hpp> +#include <cppuhelper/compbase3.hxx> #include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/ui/dialogs/XFilePickerNotifier.hpp> -#include <com/sun/star/ui/dialogs/XFilterManager.hpp> -#include <com/sun/star/ui/dialogs/XFilterGroupManager.hpp> +#include <com/sun/star/ui/dialogs/XFilePicker3.hpp> #include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp> #include <com/sun/star/beans/StringPair.hpp> @@ -53,14 +49,9 @@ class SalAquaFilePicker : public SalAquaPicker, - public cppu::WeakComponentImplHelper8< - ::com::sun::star::ui::dialogs::XFilterManager, - ::com::sun::star::ui::dialogs::XFilterGroupManager, + public cppu::WeakComponentImplHelper3< + ::com::sun::star::ui::dialogs::XFilePicker3, ::com::sun::star::ui::dialogs::XFilePickerControlAccess, - ::com::sun::star::ui::dialogs::XFilePickerNotifier, - ::com::sun::star::lang::XInitialization, - ::com::sun::star::util::XCancellable, - ::com::sun::star::lang::XEventListener, ::com::sun::star::lang::XServiceInfo > { public: diff --git a/fpicker/source/aqua/SalAquaFilePicker.mm b/fpicker/source/aqua/SalAquaFilePicker.mm index fc7562b7d3c9..66355485bd41 100644 --- a/fpicker/source/aqua/SalAquaFilePicker.mm +++ b/fpicker/source/aqua/SalAquaFilePicker.mm @@ -92,11 +92,12 @@ namespace // constructor //----------------------------------------------------------------------------------------- -SalAquaFilePicker::SalAquaFilePicker( const uno::Reference<lang::XMultiServiceFactory>& xServiceMgr ) : -cppu::WeakComponentImplHelper8<XFilterManager, XFilterGroupManager, XFilePickerControlAccess, XFilePickerNotifier, - lang::XInitialization, util::XCancellable, lang::XEventListener, lang::XServiceInfo>( m_rbHelperMtx ) -, m_xServiceMgr( xServiceMgr ) -, m_pFilterHelper( NULL ) +SalAquaFilePicker::SalAquaFilePicker( const uno::Reference<lang::XMultiServiceFactory>& xServiceMgr ) + : cppu::WeakComponentImplHelper2< + XFilePicker3, + lang::XServiceInfo>( m_rbHelperMtx ) + , m_xServiceMgr( xServiceMgr ) + , m_pFilterHelper( NULL ) { DBG_PRINT_ENTRY(CLASS_NAME, __func__); diff --git a/fpicker/source/win32/filepicker/FilePicker.cxx b/fpicker/source/win32/filepicker/FilePicker.cxx index cc6691e8b1ad..09924f567c84 100644 --- a/fpicker/source/win32/filepicker/FilePicker.cxx +++ b/fpicker/source/win32/filepicker/FilePicker.cxx @@ -67,16 +67,9 @@ namespace //----------------------------------------------------------------------------------------- CFilePicker::CFilePicker( const uno::Reference<lang::XMultiServiceFactory>& xServiceMgr) : - cppu::WeakComponentImplHelper10< - XFilterManager, - XFilterGroupManager, - XFilePickerControlAccess, - XFilePickerNotifier, - XFilePreview, + cppu::WeakComponentImplHelper3< XFilePicker2, - lang::XInitialization, - util::XCancellable, - lang::XEventListener, + XFilePicker3, lang::XServiceInfo>(m_rbHelperMtx), m_xServiceMgr(xServiceMgr), m_aAsyncEventNotifier(rBHelper) diff --git a/fpicker/source/win32/filepicker/FilePicker.hxx b/fpicker/source/win32/filepicker/FilePicker.hxx index 4e84d4821277..059c81f273ad 100644 --- a/fpicker/source/win32/filepicker/FilePicker.hxx +++ b/fpicker/source/win32/filepicker/FilePicker.hxx @@ -20,17 +20,12 @@ #ifndef _FILEPICKER_HXX_ #define _FILEPICKER_HXX_ -#include <cppuhelper/compbase10.hxx> +#include <cppuhelper/compbase5.hxx> #include <osl/mutex.hxx> -#include <com/sun/star/lang/XInitialization.hpp> #include <com/sun/star/lang/XServiceInfo.hpp> #include <com/sun/star/ui/dialogs/XFilePicker2.hpp> -#include <com/sun/star/ui/dialogs/XFilePickerNotifier.hpp> -#include <com/sun/star/ui/dialogs/XFilterManager.hpp> -#include <com/sun/star/ui/dialogs/XFilterGroupManager.hpp> +#include <com/sun/star/ui/dialogs/XFilePicker3.hpp> #include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp> -#include <com/sun/star/ui/dialogs/XFilePreview.hpp> -#include <com/sun/star/util/XCancellable.hpp> #include "asynceventnotifier.hxx" #include "eventnotification.hxx" @@ -59,16 +54,11 @@ protected: class CFilePicker : public CFilePickerDummy, - public cppu::WeakComponentImplHelper10< - ::com::sun::star::ui::dialogs::XFilterManager, - ::com::sun::star::ui::dialogs::XFilterGroupManager, + public cppu::WeakComponentImplHelper5< + ::com::sun::star::ui::dialogs::XFilePicker2, + ::com::sun::star::ui::dialogs::XFilePicker3, ::com::sun::star::ui::dialogs::XFilePickerControlAccess, - ::com::sun::star::ui::dialogs::XFilePickerNotifier, ::com::sun::star::ui::dialogs::XFilePreview, - ::com::sun::star::ui::dialogs::XFilePicker2, - ::com::sun::star::lang::XInitialization, - ::com::sun::star::util::XCancellable, - ::com::sun::star::lang::XEventListener, ::com::sun::star::lang::XServiceInfo > { public: diff --git a/fpicker/source/win32/filepicker/VistaFilePicker.hxx b/fpicker/source/win32/filepicker/VistaFilePicker.hxx index 0fdd42de3529..edb7eaf0af3e 100644 --- a/fpicker/source/win32/filepicker/VistaFilePicker.hxx +++ b/fpicker/source/win32/filepicker/VistaFilePicker.hxx @@ -27,16 +27,11 @@ #include <com/sun/star/lang/XInitialization.hpp> #include <com/sun/star/lang/XServiceInfo.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/ui/dialogs/XFilePicker.hpp> #include <com/sun/star/ui/dialogs/XFilePicker2.hpp> -#include <com/sun/star/ui/dialogs/XFilePickerNotifier.hpp> -#include <com/sun/star/ui/dialogs/XFilterManager.hpp> -#include <com/sun/star/ui/dialogs/XFilterGroupManager.hpp> +#include <com/sun/star/ui/dialogs/XFilePicker3.hpp> #include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp> -#include <com/sun/star/ui/dialogs/XFilePreview.hpp> -#include <com/sun/star/util/XCancellable.hpp> -#include <cppuhelper/compbase10.hxx> +#include <cppuhelper/compbase5.hxx> #include <cppuhelper/basemutex.hxx> #include <rtl/ustring.hxx> @@ -48,16 +43,11 @@ namespace vista{ // types //----------------------------------------------------------------------------- -typedef ::cppu::WeakComponentImplHelper10< +typedef ::cppu::WeakComponentImplHelper5< css::ui::dialogs::XFilePicker2, - css::ui::dialogs::XFilterManager, - css::ui::dialogs::XFilterGroupManager, + css::ui::dialogs::XFilePicker3, css::ui::dialogs::XFilePickerControlAccess, - css::ui::dialogs::XFilePickerNotifier, css::ui::dialogs::XFilePreview, - css::lang::XInitialization, - css::util::XCancellable, - css::lang::XEventListener, css::lang::XServiceInfo > TVistaFilePickerBase; //----------------------------------------------------------------------------- diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk index e088dd5a84b6..1d7f4bb1ec59 100644 --- a/offapi/UnoApi_offapi.mk +++ b/offapi/UnoApi_offapi.mk @@ -348,6 +348,7 @@ $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/ui,\ WindowStateConfiguration \ )) $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/ui/dialogs,\ + FilePicker \ FolderPicker \ Wizard \ )) @@ -1480,7 +1481,6 @@ $(eval $(call gb_UnoApi_add_idlfiles_noheader,offapi,offapi/com/sun/star/ui,\ UIElementSettings \ )) $(eval $(call gb_UnoApi_add_idlfiles_noheader,offapi,offapi/com/sun/star/ui/dialogs,\ - FilePicker \ FilterOptionsDialog \ )) $(eval $(call gb_UnoApi_add_idlfiles_noheader,offapi,offapi/com/sun/star/util,\ @@ -3926,6 +3926,7 @@ $(eval $(call gb_UnoApi_add_idlfiles,offapi,offapi/com/sun/star/ui/dialogs,\ XExecutableDialog \ XFilePicker \ XFilePicker2 \ + XFilePicker3 \ XFilePickerControlAccess \ XFilePickerListener \ XFilePickerNotifier \ diff --git a/offapi/com/sun/star/ui/dialogs/FilePicker.idl b/offapi/com/sun/star/ui/dialogs/FilePicker.idl index 30809d2499b2..39cd65116c12 100644 --- a/offapi/com/sun/star/ui/dialogs/FilePicker.idl +++ b/offapi/com/sun/star/ui/dialogs/FilePicker.idl @@ -20,9 +20,7 @@ #ifndef __com_sun_star_ui_dialogs_FilePicker_idl__ #define __com_sun_star_ui_dialogs_FilePicker_idl__ -#include <com/sun/star/lang/XComponent.idl> -#include <com/sun/star/lang/XInitialization.idl> -#include <com/sun/star/util/XCancellable.idl> +#include <com/sun/star/ui/dialogs/XFilePicker3.idl> module com { module sun { module star { module ui { module dialogs { @@ -38,50 +36,9 @@ module com { module sun { module star { module ui { module dialogs { @see XFilePicker */ - published interface XFilePicker; - published interface XFilePickerNotifier; - published interface XFilePickerControlAccess; - published interface XFilterManager; - published interface XFilePreview; - published interface XFilterGroupManager; - -published service FilePicker +published service FilePicker : XFilePicker3 { - /** Allows to associate a help URL with the file picker instance. - */ - [optional, property] string HelpURL; - - /** Provides access to the basic FilePicker functionality. - */ - interface XFilePicker; - - /** Provides the ability to request notifications about changes. - */ - interface XFilePickerNotifier; - - /** Provides the ability to add different filter, query for the current - filters and set a current filter - */ - interface XFilterManager; - - /** Provides the ability to show a preview of a selected file - */ - [optional] interface XFilePreview; - - /** Provides the ability manage additional controls (checkboxes, listboxes etc.) - offered by an extended FilePicker, these controls extend the subset of - common controls that a FilePicker usually supports. - - @see com::sun::star::ui::dialogs::CommonFilePickerElementIds - @see com::sun::star::ui::dialogs::ExtendedFilePickerElementIds - - @deprecated - */ - [optional] interface XFilePickerControlAccess; - - /** An interface which allows manipulation of groups of filters - */ - [optional] interface XFilterGroupManager; + createDefault(); /** Provides the ability to choose between different custom templates that do extend the subset of common controls a FilePicker usually supports. @@ -99,17 +56,7 @@ published service FilePicker @see com::sun::star::ui::dialogs::TemplateDescription */ - [optional] interface com::sun::star::lang::XInitialization; - - /** For canceling a running dialog instance. - <p>This may be useful for automatic test tools for instance.</p> - */ - [optional] interface com::sun::star::util::XCancellable; - - /** For shutdown and listener support. - */ - interface com::sun::star::lang::XComponent; - + createWithMode([in] short Mode); }; diff --git a/offapi/com/sun/star/ui/dialogs/XFilePicker3.idl b/offapi/com/sun/star/ui/dialogs/XFilePicker3.idl new file mode 100644 index 000000000000..c33e8eb4cdbd --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFilePicker3.idl @@ -0,0 +1,78 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_dialogs_XFilePicker3_idl__ +#define __com_sun_star_ui_dialogs_XFilePicker3_idl__ + +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/util/XCancellable.idl> +#include <com/sun/star/ui/dialogs/XFilePicker.idl> +#include <com/sun/star/ui/dialogs/XFilePickerNotifier.idl> +#include <com/sun/star/ui/dialogs/XFilePickerControlAccess.idl> +#include <com/sun/star/ui/dialogs/XFilterManager.idl> +#include <com/sun/star/ui/dialogs/XFilePreview.idl> +#include <com/sun/star/ui/dialogs/XFilterGroupManager.idl> + + +module com { module sun { module star { module ui { module dialogs { + + +/** + Provides unified interface for FilePicker service. + + @since LibreOffice 4.1 +*/ +published interface XFilePicker3 +{ + interface XFilePicker; + + /** Provides the ability to request notifications about changes. + */ + interface XFilePickerNotifier; // extends XEventListener + + /** Provides the ability to add different filter, query for the current + filters and set a current filter + */ + interface XFilterManager; + + /** Provides the ability to show a preview of a selected file + */ + [optional] interface XFilePreview; + + /** An interface which allows manipulation of groups of filters + */ + interface XFilterGroupManager; + + /** For canceling a running dialog instance. + <p>This may be useful for automatic test tools for instance.</p> + */ + interface com::sun::star::util::XCancellable; + + /** For shutdown and listener support. + */ + interface com::sun::star::lang::XComponent; + +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/type_reference/types.rdb b/offapi/type_reference/types.rdb Binary files differindex cb5ccc0fac4b..720c3ecd6e50 100644 --- a/offapi/type_reference/types.rdb +++ b/offapi/type_reference/types.rdb diff --git a/sc/source/ui/xmlsource/xmlsourcedlg.cxx b/sc/source/ui/xmlsource/xmlsourcedlg.cxx index 00e62e932dea..9a366d759156 100644 --- a/sc/source/ui/xmlsource/xmlsourcedlg.cxx +++ b/sc/source/ui/xmlsource/xmlsourcedlg.cxx @@ -25,7 +25,7 @@ #include "sfx2/objsh.hxx" #include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/ui/dialogs/XFilePicker.hpp> +#include <com/sun/star/ui/dialogs/FilePicker.hpp> #include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp> using namespace com::sun::star; @@ -177,11 +177,7 @@ void ScXMLSourceDlg::SelectSourceFile() if (!xServiceMgr.is()) return; - uno::Reference<ui::dialogs::XFilePicker> xFilePicker( - xServiceMgr->createInstance("com.sun.star.ui.dialogs.FilePicker"), uno::UNO_QUERY); - - if (!xFilePicker.is()) - return; + uno::Reference<ui::dialogs::XFilePicker3> xFilePicker = ui::dialogs::FilePicker::createDefault( comphelper::getComponentContext(xServiceMgr) ); if (maSrcPath.isEmpty()) // Use default path. diff --git a/sdext/source/minimizer/fileopendialog.cxx b/sdext/source/minimizer/fileopendialog.cxx index 4f03d40a33fe..e341b5a2b21a 100644 --- a/sdext/source/minimizer/fileopendialog.cxx +++ b/sdext/source/minimizer/fileopendialog.cxx @@ -27,6 +27,7 @@ #include <com/sun/star/ui/dialogs/CommonFilePickerElementIds.hpp> #include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp> #include <com/sun/star/ui/dialogs/FilePreviewImageFormats.hpp> +#include <com/sun/star/ui/dialogs/FilePicker.hpp> #include <com/sun/star/ui/dialogs/ControlActions.hpp> #include <com/sun/star/ui/dialogs/TemplateDescription.hpp> #include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp> @@ -54,14 +55,9 @@ using namespace ::com::sun::star::container; using namespace ::com::sun::star::view; using namespace ::com::sun::star::ui::dialogs; -FileOpenDialog::FileOpenDialog( const Reference< XComponentContext >& rxMSF ) : - mxMSF( rxMSF ) +FileOpenDialog::FileOpenDialog( const Reference< XComponentContext >& rxContext ) { - Sequence< Any > aInitPropSeq( 1 ); - aInitPropSeq[ 0 ] <<= (sal_Int16)TemplateDescription::FILESAVE_AUTOEXTENSION; // TemplateDescription.FILEOPEN_SIMPLE - - mxFilePicker = Reference < XFilePicker >( mxMSF->getServiceManager()->createInstanceWithArgumentsAndContext( - OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ), aInitPropSeq, rxMSF ),UNO_QUERY_THROW ); + mxFilePicker = FilePicker::createWithMode( rxContext, TemplateDescription::FILESAVE_AUTOEXTENSION); mxFilePicker->setMultiSelectionMode( sal_False ); Reference< XFilePickerControlAccess > xAccess( mxFilePicker, UNO_QUERY ); @@ -77,8 +73,8 @@ FileOpenDialog::FileOpenDialog( const Reference< XComponentContext >& rxMSF ) : } // collecting a list of impress filters - Reference< XNameAccess > xFilters( mxMSF->getServiceManager()->createInstanceWithContext( - OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.document.FilterFactory" ) ), rxMSF ), UNO_QUERY_THROW ); + Reference< XNameAccess > xFilters( rxContext->getServiceManager()->createInstanceWithContext( + OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.document.FilterFactory" ) ), rxContext ), UNO_QUERY_THROW ); Sequence< OUString > aFilterList( xFilters->getElementNames() ); for ( int i = 0; i < aFilterList.getLength(); i++ ) { @@ -122,13 +118,12 @@ FileOpenDialog::FileOpenDialog( const Reference< XComponentContext >& rxMSF ) : } } - Reference< XNameAccess > xTypes( mxMSF->getServiceManager()->createInstanceWithContext( - OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.document.TypeDetection" ) ), rxMSF ), UNO_QUERY_THROW ); + Reference< XNameAccess > xTypes( rxContext->getServiceManager()->createInstanceWithContext( + OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.document.TypeDetection" ) ), rxContext ), UNO_QUERY_THROW ); Sequence< OUString > aTypeList( xFilters->getElementNames() ); // mxFilePicker->setDefaultName( ); - Reference< XFilterManager > xFilterManager( mxFilePicker, UNO_QUERY_THROW ); std::vector< FilterEntry >::iterator aIter( aFilterEntryList.begin() ); while( aIter != aFilterEntryList.end() ) { @@ -148,13 +143,13 @@ FileOpenDialog::FileOpenDialog( const Reference< XComponentContext >& rxMSF ) : } if ( aExtensions.getLength() ) { - xFilterManager->appendFilter( aIter->maUIName, aExtensions[ 0 ] ); + mxFilePicker->appendFilter( aIter->maUIName, aExtensions[ 0 ] ); if ( aIter->maFlags & 0x100 ) - xFilterManager->setCurrentFilter( aIter->maUIName ); + mxFilePicker->setCurrentFilter( aIter->maUIName ); } } } - catch ( Exception& ) + catch ( const Exception& ) { } aIter++; diff --git a/sdext/source/minimizer/fileopendialog.hxx b/sdext/source/minimizer/fileopendialog.hxx index 244a3b49a989..5611d29857eb 100644 --- a/sdext/source/minimizer/fileopendialog.hxx +++ b/sdext/source/minimizer/fileopendialog.hxx @@ -24,7 +24,7 @@ #include <vector> #include <com/sun/star/beans/StringPair.hpp> #include <com/sun/star/container/XNameAccess.hpp> -#include <com/sun/star/ui/dialogs/XFilePicker.hpp> +#include <com/sun/star/ui/dialogs/XFilePicker3.hpp> #include <com/sun/star/uno/XComponentContext.hpp> class FileOpenDialog @@ -42,13 +42,12 @@ class FileOpenDialog FilterEntry() : maFlags( 0 ) {} }; - com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext > mxMSF; - com::sun::star::uno::Reference < ::com::sun::star::ui::dialogs::XFilePicker > mxFilePicker; + com::sun::star::uno::Reference < ::com::sun::star::ui::dialogs::XFilePicker3 > mxFilePicker; std::vector< FilterEntry > aFilterEntryList; public : - FileOpenDialog( const com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >& rxMSF ); + FileOpenDialog( const com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >& rxContext ); ~FileOpenDialog(); sal_Int16 execute(); diff --git a/sfx2/inc/sfx2/filedlghelper.hxx b/sfx2/inc/sfx2/filedlghelper.hxx index 738f8e1e1338..30ab36ba6207 100644 --- a/sfx2/inc/sfx2/filedlghelper.hxx +++ b/sfx2/inc/sfx2/filedlghelper.hxx @@ -69,7 +69,6 @@ class Window; #define FILEDIALOG_FILTER_ALL "*.*" -#define FILE_OPEN_SERVICE_NAME "com.sun.star.ui.dialogs.FilePicker" #define FILE_OPEN_SERVICE_NAME_OOO "com.sun.star.ui.dialogs.OfficeFilePicker" namespace sfx2 { diff --git a/sfx2/source/dialog/filedlghelper.cxx b/sfx2/source/dialog/filedlghelper.cxx index cf072f25110f..ae44fac5b8fa 100644 --- a/sfx2/source/dialog/filedlghelper.cxx +++ b/sfx2/source/dialog/filedlghelper.cxx @@ -900,7 +900,7 @@ FileDialogHelper_Impl::FileDialogHelper_Impl( else if ( nDialog == SFX2_IMPL_DIALOG_OOO ) pServiceName = FILE_OPEN_SERVICE_NAME_OOO; else - pServiceName = FILE_OPEN_SERVICE_NAME; + pServiceName = "com.sun.star.ui.dialogs.FilePicker"; OUString aService = ::rtl::OUString::createFromAscii( pServiceName ); uno::Reference< XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() ); diff --git a/svtools/source/control/filectrl2.cxx b/svtools/source/control/filectrl2.cxx index 58e079b74838..cb48f4242c41 100644 --- a/svtools/source/control/filectrl2.cxx +++ b/svtools/source/control/filectrl2.cxx @@ -20,8 +20,7 @@ // this file contains code from filectrl.cxx which needs to be compiled with enabled exception hanling #include <svtools/filectrl.hxx> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/ui/dialogs/XFilePicker.hpp> +#include <com/sun/star/ui/dialogs/FilePicker.hpp> #include <comphelper/processfactory.hxx> #include <tools/urlobj.hxx> #include <osl/file.h> @@ -37,43 +36,36 @@ void FileControl::ImplBrowseFile( ) { XubString aNewText; - const ::rtl::OUString sServiceName( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" )); + Reference< XComponentContext > xContext = comphelper::getProcessComponentContext(); + Reference < dialogs::XFilePicker3 > xFilePicker = dialogs::FilePicker::createDefault( xContext ); + // transform the system notation text into a file URL + ::rtl::OUString sSystemNotation = GetText(), sFileURL; + oslFileError nError = osl_getFileURLFromSystemPath( sSystemNotation.pData, &sFileURL.pData ); + if ( nError == osl_File_E_INVAL ) + sFileURL = GetText(); // #97709# Maybe URL is already a file URL... - Reference< XMultiServiceFactory > xMSF = comphelper::getProcessServiceFactory(); - Reference < dialogs::XFilePicker > xFilePicker( xMSF->createInstance( sServiceName ), UNO_QUERY ); - if ( xFilePicker.is() ) + //#90430# Check if URL is really a file URL + ::rtl::OUString aTmp; + if ( osl_getSystemPathFromFileURL( sFileURL.pData, &aTmp.pData ) == osl_File_E_None ) { - // transform the system notation text into a file URL - ::rtl::OUString sSystemNotation = GetText(), sFileURL; - oslFileError nError = osl_getFileURLFromSystemPath( sSystemNotation.pData, &sFileURL.pData ); - if ( nError == osl_File_E_INVAL ) - sFileURL = GetText(); // #97709# Maybe URL is already a file URL... + // initially set this directory + xFilePicker->setDisplayDirectory( sFileURL ); + } - //#90430# Check if URL is really a file URL - ::rtl::OUString aTmp; - if ( osl_getSystemPathFromFileURL( sFileURL.pData, &aTmp.pData ) == osl_File_E_None ) - { - // initially set this directory - xFilePicker->setDisplayDirectory( sFileURL ); - } + if ( xFilePicker->execute() ) + { + Sequence < rtl::OUString > aPathSeq = xFilePicker->getFiles(); - if ( xFilePicker.is() && xFilePicker->execute() ) + if ( aPathSeq.getLength() ) { - Sequence < rtl::OUString > aPathSeq = xFilePicker->getFiles(); - - if ( aPathSeq.getLength() ) - { - aNewText = aPathSeq[0]; - INetURLObject aObj( aNewText ); - if ( aObj.GetProtocol() == INET_PROT_FILE ) - aNewText = aObj.PathToFileName(); - SetText( aNewText ); - maEdit.GetModifyHdl().Call( &maEdit ); - } + aNewText = aPathSeq[0]; + INetURLObject aObj( aNewText ); + if ( aObj.GetProtocol() == INET_PROT_FILE ) + aNewText = aObj.PathToFileName(); + SetText( aNewText ); + maEdit.GetModifyHdl().Call( &maEdit ); } } - else - ShowServiceNotAvailableError( this, sServiceName, sal_True ); } catch( const Exception& ) { diff --git a/vcl/source/gdi/print3.cxx b/vcl/source/gdi/print3.cxx index 3dd424a340f1..d47aa925dc31 100644 --- a/vcl/source/gdi/print3.cxx +++ b/vcl/source/gdi/print3.cxx @@ -33,7 +33,7 @@ #include "tools/urlobj.hxx" #include "com/sun/star/container/XNameAccess.hpp" -#include "com/sun/star/ui/dialogs/XFilePicker.hpp" +#include "com/sun/star/ui/dialogs/FilePicker.hpp" #include "com/sun/star/ui/dialogs/XFilterManager.hpp" #include "com/sun/star/ui/dialogs/TemplateDescription.hpp" #include "com/sun/star/ui/dialogs/ExecutableDialogResults.hpp" @@ -215,55 +215,42 @@ static rtl::OUString queryFile( Printer* pPrinter ) { rtl::OUString aResult; - uno::Reference< lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() ); - if( xFactory.is() ) - { - uno::Sequence< uno::Any > aTempl( 1 ); - aTempl.getArray()[0] <<= ui::dialogs::TemplateDescription::FILESAVE_AUTOEXTENSION; - uno::Reference< ui::dialogs::XFilePicker > xFilePicker( - xFactory->createInstanceWithArguments( - ::rtl::OUString( "com.sun.star.ui.dialogs.FilePicker" ), - aTempl ), uno::UNO_QUERY ); - DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" ); + uno::Reference< uno::XComponentContext > xContext( ::comphelper::getProcessComponentContext() ); + uno::Reference< ui::dialogs::XFilePicker3 > xFilePicker = ui::dialogs::FilePicker::createWithMode(xContext, ui::dialogs::TemplateDescription::FILESAVE_AUTOEXTENSION); - uno::Reference< ui::dialogs::XFilterManager > xFilterMgr( xFilePicker, uno::UNO_QUERY ); - if( xFilePicker.is() && xFilterMgr.is() ) - { - try - { + try + { #ifdef UNX - // add PostScript and PDF - bool bPS = true, bPDF = true; - if( pPrinter ) - { - if( pPrinter->GetCapabilities( PRINTER_CAPABILITIES_PDF ) ) - bPS = false; - else - bPDF = false; - } - if( bPS ) - xFilterMgr->appendFilter( OUString( "PostScript" ), OUString( "*.ps" ) ); - if( bPDF ) - xFilterMgr->appendFilter( OUString( "Portable Document Format" ), OUString( "*.pdf" ) ); + // add PostScript and PDF + bool bPS = true, bPDF = true; + if( pPrinter ) + { + if( pPrinter->GetCapabilities( PRINTER_CAPABILITIES_PDF ) ) + bPS = false; + else + bPDF = false; + } + if( bPS ) + xFilePicker->appendFilter( OUString( "PostScript" ), OUString( "*.ps" ) ); + if( bPDF ) + xFilePicker->appendFilter( OUString( "Portable Document Format" ), OUString( "*.pdf" ) ); #elif defined WNT (void)pPrinter; - xFilterMgr->appendFilter( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "*.PRN" ) ), ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "*.prn" ) ) ); + xFilePicker->appendFilter( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "*.PRN" ) ), ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "*.prn" ) ) ); #endif - // add arbitrary files - xFilterMgr->appendFilter(VclResId(SV_STDTEXT_ALLFILETYPES), "*.*"); - } - catch (const lang::IllegalArgumentException&) - { - SAL_WARN( "vcl.gdi", "caught IllegalArgumentException when registering filter" ); - } + // add arbitrary files + xFilePicker->appendFilter(VclResId(SV_STDTEXT_ALLFILETYPES), "*.*"); + } + catch (const lang::IllegalArgumentException&) + { + SAL_WARN( "vcl.gdi", "caught IllegalArgumentException when registering filter" ); + } - if( xFilePicker->execute() == ui::dialogs::ExecutableDialogResults::OK ) - { - uno::Sequence< ::rtl::OUString > aPathSeq( xFilePicker->getFiles() ); - INetURLObject aObj( aPathSeq[0] ); - aResult = aObj.PathToFileName(); - } - } + if( xFilePicker->execute() == ui::dialogs::ExecutableDialogResults::OK ) + { + uno::Sequence< ::rtl::OUString > aPathSeq( xFilePicker->getFiles() ); + INetURLObject aObj( aPathSeq[0] ); + aResult = aObj.PathToFileName(); } return aResult; } diff --git a/vcl/unx/kde/UnxFilePicker.cxx b/vcl/unx/kde/UnxFilePicker.cxx index 19c9e5fe81fe..16925551d348 100644 --- a/vcl/unx/kde/UnxFilePicker.cxx +++ b/vcl/unx/kde/UnxFilePicker.cxx @@ -87,16 +87,10 @@ namespace ////////////////////////////////////////////////////////////////////////// UnxFilePicker::UnxFilePicker( const uno::Reference<uno::XComponentContext>& ) - : cppu::WeakComponentImplHelper9< - XFilterManager, - XFilterGroupManager, - XFilePickerControlAccess, - XFilePickerNotifier, + : cppu::WeakComponentImplHelper3< // TODO XFilePreview, XFilePicker2, - lang::XInitialization, - util::XCancellable, - lang::XEventListener, + XFilePicker3, lang::XServiceInfo>( m_rbHelperMtx ), m_nFilePickerPid( -1 ), m_nFilePickerWrite( -1 ), diff --git a/vcl/unx/kde/UnxFilePicker.hxx b/vcl/unx/kde/UnxFilePicker.hxx index 8f11bf35c655..4eab1833f23a 100644 --- a/vcl/unx/kde/UnxFilePicker.hxx +++ b/vcl/unx/kde/UnxFilePicker.hxx @@ -20,21 +20,16 @@ #ifndef _UNXFILEPICKER_HXX_ #define _UNXFILEPICKER_HXX_ -#include <cppuhelper/compbase9.hxx> +#include <cppuhelper/compbase4.hxx> #include <osl/conditn.hxx> #include <osl/mutex.hxx> #include <rtl/ustrbuf.hxx> -#include <com/sun/star/lang/XInitialization.hpp> #include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/ui/dialogs/XFilePickerNotifier.hpp> -#include <com/sun/star/ui/dialogs/XFilterManager.hpp> -#include <com/sun/star/ui/dialogs/XFilterGroupManager.hpp> -#include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp> -#include <com/sun/star/ui/dialogs/XFilePreview.hpp> #include <com/sun/star/ui/dialogs/XFilePicker2.hpp> +#include <com/sun/star/ui/dialogs/XFilePicker3.hpp> +#include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp> #include <com/sun/star/uno/XComponentContext.hpp> -#include <com/sun/star/util/XCancellable.hpp> #include <list> @@ -51,16 +46,11 @@ protected: class UnxFilePicker : public UnxFilePickerDummy, - public cppu::WeakComponentImplHelper9< - ::com::sun::star::ui::dialogs::XFilterManager, - ::com::sun::star::ui::dialogs::XFilterGroupManager, - ::com::sun::star::ui::dialogs::XFilePickerControlAccess, - ::com::sun::star::ui::dialogs::XFilePickerNotifier, + public cppu::WeakComponentImplHelper4< ::com::sun::star::ui::dialogs::XFilePicker2, + ::com::sun::star::ui::dialogs::XFilePicker3, + ::com::sun::star::ui::dialogs::XFilePickerControlAccess, // TODO ::com::sun::star::ui::dialogs::XFilePreview, - ::com::sun::star::lang::XInitialization, - ::com::sun::star::util::XCancellable, - ::com::sun::star::lang::XEventListener, ::com::sun::star::lang::XServiceInfo > { protected: diff --git a/vcl/unx/kde4/KDE4FilePicker.cxx b/vcl/unx/kde4/KDE4FilePicker.cxx index 57594147a36e..3365991e9ea4 100644 --- a/vcl/unx/kde4/KDE4FilePicker.cxx +++ b/vcl/unx/kde4/KDE4FilePicker.cxx @@ -105,16 +105,9 @@ QString toQString(const rtl::OUString& s) ////////////////////////////////////////////////////////////////////////// KDE4FilePicker::KDE4FilePicker( const uno::Reference<uno::XComponentContext>& ) - : cppu::WeakComponentImplHelper9< - XFilterManager, - XFilterGroupManager, - XFilePickerControlAccess, - XFilePickerNotifier, -// TODO XFilePreview, + : cppu::WeakComponentImplHelper3< XFilePicker2, - lang::XInitialization, - util::XCancellable, - lang::XEventListener, + XFilePicker3, lang::XServiceInfo>( _helperMutex ), _resMgr( ResMgr::CreateResMgr("fps_office") ) { diff --git a/vcl/unx/kde4/KDE4FilePicker.hxx b/vcl/unx/kde4/KDE4FilePicker.hxx index 6b17e1ee7df3..04c15b5c9af2 100644 --- a/vcl/unx/kde4/KDE4FilePicker.hxx +++ b/vcl/unx/kde4/KDE4FilePicker.hxx @@ -19,17 +19,13 @@ #pragma once -#include <cppuhelper/compbase9.hxx> +#include <cppuhelper/compbase4.hxx> -#include <com/sun/star/lang/XInitialization.hpp> #include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/ui/dialogs/XFilePickerNotifier.hpp> -#include <com/sun/star/ui/dialogs/XFilterManager.hpp> -#include <com/sun/star/ui/dialogs/XFilterGroupManager.hpp> -#include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp> #include <com/sun/star/ui/dialogs/XFilePicker2.hpp> +#include <com/sun/star/ui/dialogs/XFilePicker3.hpp> +#include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp> #include <com/sun/star/uno/XComponentContext.hpp> -#include <com/sun/star/util/XCancellable.hpp> #include <osl/conditn.hxx> #include <osl/mutex.hxx> @@ -46,16 +42,11 @@ class QLayout; class ResMgr; class KDE4FilePicker : - public cppu::WeakComponentImplHelper9< - ::com::sun::star::ui::dialogs::XFilterManager, - ::com::sun::star::ui::dialogs::XFilterGroupManager, + public cppu::WeakComponentImplHelper4< + ::com::sun::star::ui::dialogs::XFilePicker2, + ::com::sun::star::ui::dialogs::XFilePicker3, ::com::sun::star::ui::dialogs::XFilePickerControlAccess, - ::com::sun::star::ui::dialogs::XFilePickerNotifier, // TODO ::com::sun::star::ui::dialogs::XFilePreview, - ::com::sun::star::ui::dialogs::XFilePicker2, - ::com::sun::star::lang::XInitialization, - ::com::sun::star::util::XCancellable, - ::com::sun::star::lang::XEventListener, ::com::sun::star::lang::XServiceInfo > { protected: diff --git a/vcl/win/source/gdi/salprn.cxx b/vcl/win/source/gdi/salprn.cxx index 9bc4b148a609..57440cd1b064 100644 --- a/vcl/win/source/gdi/salprn.cxx +++ b/vcl/win/source/gdi/salprn.cxx @@ -41,7 +41,7 @@ #include <com/sun/star/ui/dialogs/TemplateDescription.hpp> #include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp> -#include <com/sun/star/ui/dialogs/XFilePicker.hpp> +#include <com/sun/star/ui/dialogs/FilePicker.hpp> #include <com/sun/star/ui/dialogs/XFilterManager.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/lang/XInitialization.hpp> @@ -1600,33 +1600,27 @@ sal_Bool WinSalPrinter::StartJob( const rtl::OUString* pFileName, if( mpInfoPrinter->maPortName.equalsIgnoreAsciiCaseAsciiL( RTL_CONSTASCII_STRINGPARAM( "FILE:" ) ) && !(pFileName && !pFileName->isEmpty()) ) { - uno::Reference< lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() ); - if( xFactory.is() ) + uno::Reference< uno::XComponentContext > xContext( ::comphelper::getProcessComponentContext() ); + uno::Reference< XFilePicker3 > xFilePicker = FilePicker::createDefault(xContext); + + uno::Reference< XInitialization > xInit( xFilePicker, UNO_QUERY ); + uno::Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY ); + if( xInit.is() && xFilePicker.is() && xFilterMgr.is() ) { - uno::Reference< XFilePicker > xFilePicker( xFactory->createInstance( - OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ) ) ), - UNO_QUERY ); - DBG_ASSERT( xFilePicker.is(), "could not get FilePicker service" ); - - uno::Reference< XInitialization > xInit( xFilePicker, UNO_QUERY ); - uno::Reference< XFilterManager > xFilterMgr( xFilePicker, UNO_QUERY ); - if( xInit.is() && xFilePicker.is() && xFilterMgr.is() ) + Sequence< Any > aServiceType( 1 ); + aServiceType[0] <<= TemplateDescription::FILESAVE_SIMPLE; + xInit->initialize( aServiceType ); + if( xFilePicker->execute() == ExecutableDialogResults::OK ) { - Sequence< Any > aServiceType( 1 ); - aServiceType[0] <<= TemplateDescription::FILESAVE_SIMPLE; - xInit->initialize( aServiceType ); - if( xFilePicker->execute() == ExecutableDialogResults::OK ) - { - Sequence< OUString > aPathSeq( xFilePicker->getFiles() ); - INetURLObject aObj( aPathSeq[0] ); - // we're using ansi calls (StartDocA) so convert the string - aOutFileName = aObj.PathToFileName(); - } - else - { - mnError = SAL_PRINTER_ERROR_ABORT; - return FALSE; - } + Sequence< OUString > aPathSeq( xFilePicker->getFiles() ); + INetURLObject aObj( aPathSeq[0] ); + // we're using ansi calls (StartDocA) so convert the string + aOutFileName = aObj.PathToFileName(); + } + else + { + mnError = SAL_PRINTER_ERROR_ABORT; + return FALSE; } } } |