From 63e86506d500dd6f61e12a6d526bd2bc33995a20 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Sat, 8 Jun 2019 17:50:37 +0100 Subject: Resolves: tdf#120343 show pdf in async pdf export dialog callback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit not after dialog async exec begins, but defer to during that response callback Change-Id: I316022c01a87cf251d57b1007ae93fefddada776 Reviewed-on: https://gerrit.libreoffice.org/73716 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- sfx2/source/doc/guisaveas.cxx | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) (limited to 'sfx2') diff --git a/sfx2/source/doc/guisaveas.cxx b/sfx2/source/doc/guisaveas.cxx index 9be232c8d6f5..e14ed2bb7404 100644 --- a/sfx2/source/doc/guisaveas.cxx +++ b/sfx2/source/doc/guisaveas.cxx @@ -1286,6 +1286,21 @@ uno::Reference< css::frame::XModuleManager2 > const & SfxStoringHelper::GetModul return m_xModuleManager; } +namespace +{ + void LaunchPDFViewer(const INetURLObject& rURL) + { + // Launch PDF viewer + FilterConfigItem aItem( "Office.Common/Filter/PDF/Export/" ); + bool aViewPDF = aItem.ReadBool( "ViewPDFAfterExport", false ); + + if ( aViewPDF ) + { + uno::Reference xSystemShellExecute(SystemShellExecute::create(::comphelper::getProcessComponentContext())); + xSystemShellExecute->execute(rURL.GetMainURL(INetURLObject::DecodeMechanism::NONE), "", SystemShellExecuteFlags::URIS_ONLY); + } + } +} bool SfxStoringHelper::GUIStoreModel( const uno::Reference< frame::XModel >& xModel, const OUString& aSlotName, @@ -1636,6 +1651,11 @@ bool SfxStoringHelper::GUIStoreModel( const uno::Reference< frame::XModel >& xMo { SfxStoringHelper::SetDocInfoState(aModel.GetModel(), xOldDocProps); } + + // Launch PDF viewer + if (nStoreMode & PDFEXPORT_REQUESTED) + LaunchPDFViewer(aURL); + }; // use dispatch API to show document info dialog @@ -1657,19 +1677,10 @@ bool SfxStoringHelper::GUIStoreModel( const uno::Reference< frame::XModel >& xMo aModelData.GetStorable()->storeToURL( aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), aArgsSequence ); else aModelData.GetStorable()->storeAsURL( aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), aArgsSequence ); - } - - // Launch PDF viewer - if ( nStoreMode & PDFEXPORT_REQUESTED ) - { - FilterConfigItem aItem( "Office.Common/Filter/PDF/Export/" ); - bool aViewPDF = aItem.ReadBool( "ViewPDFAfterExport", false ); - if ( aViewPDF ) - { - uno::Reference xSystemShellExecute(SystemShellExecute::create( ::comphelper::getProcessComponentContext() ) ); - xSystemShellExecute->execute( aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), "", SystemShellExecuteFlags::URIS_ONLY ); - } + // Launch PDF viewer + if (nStoreMode & PDFEXPORT_REQUESTED) + LaunchPDFViewer(aURL); } return bDialogUsed; -- cgit v1.2.3