summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2013-02-12 09:23:05 +0200
committerNoel Grandin <noel@peralex.com>2013-02-12 10:14:45 +0200
commit4b51374a7021d52f7f1be1861e2ee6a011b30ecd (patch)
tree77a0121f0eda201befd57a5848bd08aa906473f0 /vcl
parent53ec703c14470cb18845fc4483ec36c13b0d744e (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.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
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;
}
}
}