diff --git a/sfx2/source/appl/linkmgr2.cxx b/sfx2/source/appl/linkmgr2.cxx index 8a54ac946945..6d9bb0476e17 100644 --- a/sfx2/source/appl/linkmgr2.cxx +++ b/sfx2/source/appl/linkmgr2.cxx @@ -17,6 +17,9 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include + +#include #include #include #include @@ -278,6 +281,12 @@ bool LinkManager::GetDisplayNames( const SvBaseLink * pLink, return bRet; } +static void disallowAllLinksUpdate(SvBaseLink* pShellProvider) +{ + if (SfxObjectShell* pShell = pShellProvider->GetLinkManager()->GetPersist()) + pShell->getEmbeddedObjectContainer().setUserAllowsLinkUpdate(false); +} + void LinkManager::UpdateAllLinks( bool bAskUpdate, bool bUpdateGrfLinks, @@ -325,6 +334,13 @@ void LinkManager::UpdateAllLinks( if( bAskUpdate ) { + if (comphelper::LibreOfficeKit::isActive()) + { + // only one document in jail, no update possible + disallowAllLinksUpdate(pLink); + return; + } + OUString aMsg = SfxResId(STR_QUERY_UPDATE_LINKS); INetURLObject aURL(pPersist->getDocumentBaseURL()); aMsg = aMsg.replaceFirst("%{filename}", aURL.GetLastName()); @@ -336,14 +352,7 @@ void LinkManager::UpdateAllLinks( int nRet = xQueryBox->run(); if( RET_YES != nRet ) { - SfxObjectShell* pShell = pLink->GetLinkManager()->GetPersist(); - - if(pShell) - { - comphelper::EmbeddedObjectContainer& rEmbeddedObjectContainer = pShell->getEmbeddedObjectContainer(); - rEmbeddedObjectContainer.setUserAllowsLinkUpdate(false); - } - + disallowAllLinksUpdate(pLink); return ; // nothing should be updated } bAskUpdate = false; // once is enough