summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--basctl/source/basicide/baside2.cxx37
-rw-r--r--basctl/source/basicide/baside3.cxx41
-rw-r--r--basctl/source/basicide/moduldl2.cxx56
-rw-r--r--cui/source/dialogs/insdlg.cxx52
-rw-r--r--cui/source/options/personalization.cxx14
-rw-r--r--desktop/source/deployment/gui/dp_gui_dialog2.cxx16
-rw-r--r--fpicker/source/aqua/SalAquaFilePicker.hxx17
-rw-r--r--fpicker/source/aqua/SalAquaFilePicker.mm11
-rw-r--r--fpicker/source/win32/filepicker/FilePicker.cxx11
-rw-r--r--fpicker/source/win32/filepicker/FilePicker.hxx20
-rw-r--r--fpicker/source/win32/filepicker/VistaFilePicker.hxx18
-rw-r--r--offapi/UnoApi_offapi.mk3
-rw-r--r--offapi/com/sun/star/ui/dialogs/FilePicker.idl61
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFilePicker3.idl78
-rw-r--r--offapi/type_reference/types.rdbbin7440384 -> 7440384 bytes
-rw-r--r--sc/source/ui/xmlsource/xmlsourcedlg.cxx8
-rw-r--r--sdext/source/minimizer/fileopendialog.cxx25
-rw-r--r--sdext/source/minimizer/fileopendialog.hxx7
-rw-r--r--sfx2/inc/sfx2/filedlghelper.hxx1
-rw-r--r--sfx2/source/dialog/filedlghelper.cxx2
-rw-r--r--svtools/source/control/filectrl2.cxx56
-rw-r--r--vcl/source/gdi/print3.cxx75
-rw-r--r--vcl/unx/kde/UnxFilePicker.cxx10
-rw-r--r--vcl/unx/kde/UnxFilePicker.hxx22
-rw-r--r--vcl/unx/kde4/KDE4FilePicker.cxx11
-rw-r--r--vcl/unx/kde4/KDE4FilePicker.hxx21
-rw-r--r--vcl/win/source/gdi/salprn.cxx46
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
index cb5ccc0fac4b..720c3ecd6e50 100644
--- a/offapi/type_reference/types.rdb
+++ b/offapi/type_reference/types.rdb
Binary files differ
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;
}
}
}