From e60529fdfe0502f64e3c975f71539b28146943e8 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Fri, 26 May 2017 15:44:37 +0200 Subject: fix impress slide context menu regression from 4a340e36e8d3713806719351f455711c1254a178 "loplugin:constantparam" Change-Id: I3dc34fd438ba7f057e52e888e3ea8053a0b3ea78 Reviewed-on: https://gerrit.libreoffice.org/38073 Reviewed-by: Michael Stahl Tested-by: Michael Stahl --- sfx2/source/doc/objmisc.cxx | 22 +++++++++++++++++++--- sfx2/source/doc/objstor.cxx | 2 +- 2 files changed, 20 insertions(+), 4 deletions(-) (limited to 'sfx2/source/doc') diff --git a/sfx2/source/doc/objmisc.cxx b/sfx2/source/doc/objmisc.cxx index f0f20c59ad9e..74a419b93c7f 100644 --- a/sfx2/source/doc/objmisc.cxx +++ b/sfx2/source/doc/objmisc.cxx @@ -1045,7 +1045,7 @@ void SfxObjectShell::InitOwnModel_Impl() } } -void SfxObjectShell::FinishedLoading() +void SfxObjectShell::FinishedLoading( SfxLoadedFlags nFlags ) { std::shared_ptr pFlt = pMedium->GetFilter(); if( pFlt ) @@ -1055,7 +1055,7 @@ void SfxObjectShell::FinishedLoading() bool bSetModifiedTRUE = false; const SfxStringItem* pSalvageItem = SfxItemSet::GetItem(pMedium->GetItemSet(), SID_DOC_SALVAGE, false); - if( !(pImpl->nLoadedFlags & SfxLoadedFlags::MAINDOCUMENT ) + if( ( nFlags & SfxLoadedFlags::MAINDOCUMENT ) && !(pImpl->nLoadedFlags & SfxLoadedFlags::MAINDOCUMENT ) && !(pImpl->nFlagsInProgress & SfxLoadedFlags::MAINDOCUMENT )) { pImpl->nFlagsInProgress |= SfxLoadedFlags::MAINDOCUMENT; @@ -1083,7 +1083,23 @@ void SfxObjectShell::FinishedLoading() pImpl->nFlagsInProgress &= ~SfxLoadedFlags::MAINDOCUMENT; } - pImpl->nLoadedFlags |= SfxLoadedFlags::MAINDOCUMENT; + if( ( nFlags & SfxLoadedFlags::IMAGES ) && !(pImpl->nLoadedFlags & SfxLoadedFlags::IMAGES ) + && !(pImpl->nFlagsInProgress & SfxLoadedFlags::IMAGES )) + { + pImpl->nFlagsInProgress |= SfxLoadedFlags::IMAGES; + uno::Reference xDocProps( + getDocProperties()); + const OUString url(xDocProps->getAutoloadURL()); + sal_Int32 delay(xDocProps->getAutoloadSecs()); + SetAutoLoad( INetURLObject(url), delay * 1000, + (delay > 0) || !url.isEmpty() ); + if( !bSetModifiedTRUE && IsEnableSetModified() ) + SetModified( false ); + Invalidate( SID_SAVEASDOC ); + pImpl->nFlagsInProgress &= ~SfxLoadedFlags::IMAGES; + } + + pImpl->nLoadedFlags |= nFlags; if ( pImpl->nFlagsInProgress == SfxLoadedFlags::NONE ) { diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx index f4db742b728e..759cc16b987c 100644 --- a/sfx2/source/doc/objstor.cxx +++ b/sfx2/source/doc/objstor.cxx @@ -830,7 +830,7 @@ bool SfxObjectShell::DoLoad( SfxMedium *pMed ) if ( !( pImpl->nLoadedFlags & SfxLoadedFlags::MAINDOCUMENT ) && ( !pMedium->GetFilter() || pMedium->GetFilter()->UsesStorage() ) ) - FinishedLoading(); + FinishedLoading( SfxLoadedFlags::MAINDOCUMENT ); if( IsOwnStorageFormat(*pMed) && pMed->GetFilter() ) { -- cgit