diff options
author | Noel Grandin <noel@peralex.com> | 2013-02-12 09:23:05 +0200 |
---|---|---|
committer | Noel Grandin <noel@peralex.com> | 2013-02-12 10:14:45 +0200 |
commit | 4b51374a7021d52f7f1be1861e2ee6a011b30ecd (patch) | |
tree | 77a0121f0eda201befd57a5848bd08aa906473f0 /vcl | |
parent | 53ec703c14470cb18845fc4483ec36c13b0d744e (diff) |
fdo#46808, Adapt ui::dialogs::FilePicker UNO service to new style
Change-Id: I1cafbfc53994e5d74241042dbd1d292ddbda67d5
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/gdi/print3.cxx | 75 | ||||
-rw-r--r-- | vcl/unx/kde/UnxFilePicker.cxx | 10 | ||||
-rw-r--r-- | vcl/unx/kde/UnxFilePicker.hxx | 22 | ||||
-rw-r--r-- | vcl/unx/kde4/KDE4FilePicker.cxx | 11 | ||||
-rw-r--r-- | vcl/unx/kde4/KDE4FilePicker.hxx | 21 | ||||
-rw-r--r-- | vcl/win/source/gdi/salprn.cxx | 46 |
6 files changed, 67 insertions, 118 deletions
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; } } } |