diff options
author | Armin Le Grand <alg@apache.org> | 2014-08-07 09:59:26 +0000 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2014-08-13 10:49:51 -0500 |
commit | a1910529662accd48460b9761293fef0583fb6fe (patch) | |
tree | 7c837183d34ca51f9e745311e2cbe8ed9a80d6e3 /comphelper | |
parent | 7829f390995c663a7d7d9c14def46f0de70e2598 (diff) |
Resolves: #i125386# secured user request and changed some bools to bitfield
(cherry picked from commit 5e3cbe056c19bea5018dbf1fd4b2bc8f8b030ff3)
Conflicts:
comphelper/inc/comphelper/embeddedobjectcontainer.hxx
comphelper/source/container/embeddedobjectcontainer.cxx
sfx2/source/appl/linkmgr2.cxx
svtools/source/misc/embedhlp.cxx
Change-Id: I7e9b20a87ca6afe8cb91c577860a6c6b72368ee9
(cherry picked from commit d005acae3aa315921f2c331612131626c470bd22)
Reviewed-on: https://gerrit.libreoffice.org/10884
Reviewed-by: David Tardon <dtardon@redhat.com>
Tested-by: David Tardon <dtardon@redhat.com>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Reviewed-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'comphelper')
-rw-r--r-- | comphelper/source/container/embeddedobjectcontainer.cxx | 36 |
1 files changed, 28 insertions, 8 deletions
diff --git a/comphelper/source/container/embeddedobjectcontainer.cxx b/comphelper/source/container/embeddedobjectcontainer.cxx index 9437893adaa0..d7813d733e5b 100644 --- a/comphelper/source/container/embeddedobjectcontainer.cxx +++ b/comphelper/source/container/embeddedobjectcontainer.cxx @@ -85,7 +85,10 @@ struct EmbedImpl uno::WeakReference < uno::XInterface > m_xModel; //EmbeddedObjectContainerNameMap maTempObjectContainer; //uno::Reference < embed::XStorage > mxTempStorage; - bool bOwnsStorage; + + /// bitfield + bool mbOwnsStorage : 1; + bool mbUserAllowsLinkUpdate : 1; const uno::Reference < embed::XStorage >& GetReplacements(); }; @@ -116,7 +119,8 @@ EmbeddedObjectContainer::EmbeddedObjectContainer() { pImpl = new EmbedImpl; pImpl->mxStorage = ::comphelper::OStorageHelper::GetTemporaryStorage(); - pImpl->bOwnsStorage = true; + pImpl->mbOwnsStorage = true; + pImpl->mbUserAllowsLinkUpdate = true; pImpl->mpTempObjectContainer = 0; } @@ -124,7 +128,8 @@ EmbeddedObjectContainer::EmbeddedObjectContainer( const uno::Reference < embed:: { pImpl = new EmbedImpl; pImpl->mxStorage = rStor; - pImpl->bOwnsStorage = false; + pImpl->mbOwnsStorage = false; + pImpl->mbUserAllowsLinkUpdate = true; pImpl->mpTempObjectContainer = 0; } @@ -132,7 +137,8 @@ EmbeddedObjectContainer::EmbeddedObjectContainer( const uno::Reference < embed:: { pImpl = new EmbedImpl; pImpl->mxStorage = rStor; - pImpl->bOwnsStorage = false; + pImpl->mbOwnsStorage = false; + pImpl->mbUserAllowsLinkUpdate = true; pImpl->mpTempObjectContainer = 0; pImpl->m_xModel = xModel; } @@ -141,11 +147,11 @@ void EmbeddedObjectContainer::SwitchPersistence( const uno::Reference < embed::X { ReleaseImageSubStorage(); - if ( pImpl->bOwnsStorage ) + if ( pImpl->mbOwnsStorage ) pImpl->mxStorage->dispose(); pImpl->mxStorage = rStor; - pImpl->bOwnsStorage = false; + pImpl->mbOwnsStorage = false; } bool EmbeddedObjectContainer::CommitImageSubStorage() @@ -201,7 +207,7 @@ EmbeddedObjectContainer::~EmbeddedObjectContainer() { ReleaseImageSubStorage(); - if ( pImpl->bOwnsStorage ) + if ( pImpl->mbOwnsStorage ) pImpl->mxStorage->dispose(); delete pImpl->mpTempObjectContainer; @@ -1360,7 +1366,7 @@ bool EmbeddedObjectContainer::StoreAsChildren(bool _bOasisFormat,bool _bCreateEm xStream = GetGraphicStream( xObj, &aMediaType ); } - if ( !xStream.is() ) + if ( !xStream.is() && getUserAllowsLinkUpdate() ) { // the image must be regenerated // TODO/LATER: another aspect could be used @@ -1649,6 +1655,20 @@ bool EmbeddedObjectContainer::SetPersistentEntries(const uno::Reference< embed:: } return bError; } + +bool EmbeddedObjectContainer::getUserAllowsLinkUpdate() const +{ + return pImpl->mbUserAllowsLinkUpdate; +} + +void EmbeddedObjectContainer::setUserAllowsLinkUpdate(bool bNew) +{ + if(pImpl->mbUserAllowsLinkUpdate != bNew) + { + pImpl->mbUserAllowsLinkUpdate = bNew; + } +} + } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |