summaryrefslogtreecommitdiff
path: root/comphelper
diff options
context:
space:
mode:
authorArmin Le Grand <alg@apache.org>2014-08-07 09:59:26 +0000
committerEike Rathke <erack@redhat.com>2014-08-13 10:49:51 -0500
commita1910529662accd48460b9761293fef0583fb6fe (patch)
tree7c837183d34ca51f9e745311e2cbe8ed9a80d6e3 /comphelper
parent7829f390995c663a7d7d9c14def46f0de70e2598 (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.cxx36
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: */