diff options
author | Maxim Monastirsky <momonasmon@gmail.com> | 2013-11-04 14:06:10 +0200 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2013-11-04 07:52:14 -0600 |
commit | 7722a5906d8f6765395205f5074f480ad365aa19 (patch) | |
tree | 46f9055432bd18414350bec0d4fe3ddc99907538 /sfx2/source/doc | |
parent | 9841ae6565c1b0b16ba4f46cce56c478ce7e900b (diff) |
fdo#68099 Move pdf viewer call to GUI related code
This change fixes two bugs:
1) In it's old location at PDFFilter::implExport, the pdf viewer is called
*before* the final file is actually written. It causes a problem under
Windows, because we use ShellExecute function which fails if the file
doesn't exist. Calling a function blocks execution, so we have no chance
to write the file before that function fails. (fdo#68099)
2) Being a part of the saving/filter code means that the pdf viewer will
open even when converting to a pdf in headless mode. It's definitely not
something that we want to happen.
Change-Id: I1a6f70ec76100ac9e008869aa57ad738ced3ab6c
Reviewed-on: https://gerrit.libreoffice.org/6565
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sfx2/source/doc')
-rw-r--r-- | sfx2/source/doc/guisaveas.cxx | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/sfx2/source/doc/guisaveas.cxx b/sfx2/source/doc/guisaveas.cxx index 79af8ed1b006..ddf8e07f347d 100644 --- a/sfx2/source/doc/guisaveas.cxx +++ b/sfx2/source/doc/guisaveas.cxx @@ -93,6 +93,10 @@ #include <officecfg/Office/Common.hxx> +#include <vcl/FilterConfigItem.hxx> +#include <com/sun/star/system/SystemShellExecute.hpp> +#include <com/sun/star/system/SystemShellExecuteFlags.hpp> + // flags that specify requested operation #define EXPORT_REQUESTED 1 #define PDFEXPORT_REQUESTED 2 @@ -114,6 +118,7 @@ const char aFilterDataString[] = "FilterData"; const char aFilterFlagsString[] = "FilterFlags"; using namespace ::com::sun::star; +using namespace css::system; namespace { //------------------------------------------------------------------------- @@ -1705,6 +1710,17 @@ sal_Bool SfxStoringHelper::GUIStoreModel( uno::Reference< frame::XModel > xModel aModelData.GetStorable()->storeAsURL( aURL.GetMainURL( INetURLObject::NO_DECODE ), aArgsSequence ); } + // Launch PDF viewer + if ( nStoreMode & PDFEXPORT_REQUESTED ) { + FilterConfigItem aItem( "Office.Common/Filter/PDF/Export/" ); + sal_Bool aViewPDF = aItem.ReadBool( "ViewPDFAfterExport", sal_False ); + + if ( aViewPDF==sal_True ) { + uno::Reference<XSystemShellExecute> xSystemShellExecute(SystemShellExecute::create( ::comphelper::getProcessComponentContext() ) ); + xSystemShellExecute->execute( aURL.GetMainURL( INetURLObject::NO_DECODE ), "", SystemShellExecuteFlags::URIS_ONLY ); + } + } + return bDialogUsed; } |