diff options
author | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-06-13 11:12:50 -0400 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2014-06-23 15:02:14 +0000 |
commit | 22cd19eeeb476c40b68bb1ff040fce6103fdeba4 (patch) | |
tree | c4550dfcfbc10ebb75e3b6130ca44d44a28484ec /comphelper | |
parent | a28256553dcc29d67c530b29727bfbf3ba6aa81a (diff) |
fdo#71076, fdo#71767: Preserve number formats when charts are copied.
(cherry picked from commit 1d38cb365543924f9c50014e6b2227e77de1d0c9)
Conflicts:
sd/source/ui/view/sdview3.cxx
xmloff/source/chart/SchXMLExport.cxx
Change-Id: If5ae8852152012483237e7602e56a0c46ea8748a
Reviewed-on: https://gerrit.libreoffice.org/9836
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Diffstat (limited to 'comphelper')
-rw-r--r-- | comphelper/source/container/embeddedobjectcontainer.cxx | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/comphelper/source/container/embeddedobjectcontainer.cxx b/comphelper/source/container/embeddedobjectcontainer.cxx index 50a304bd18da..9437893adaa0 100644 --- a/comphelper/source/container/embeddedobjectcontainer.cxx +++ b/comphelper/source/container/embeddedobjectcontainer.cxx @@ -487,7 +487,9 @@ void EmbeddedObjectContainer::AddEmbeddedObject( const ::com::sun::star::uno::Re } } -bool EmbeddedObjectContainer::StoreEmbeddedObject( const uno::Reference < embed::XEmbeddedObject >& xObj, OUString& rName, bool bCopy ) +bool EmbeddedObjectContainer::StoreEmbeddedObject( + const uno::Reference < embed::XEmbeddedObject >& xObj, OUString& rName, bool bCopy, + const OUString& rSrcShellID, const OUString& rDestShellID ) { uno::Reference < embed::XEmbedPersist > xPersist( xObj, uno::UNO_QUERY ); if ( rName.isEmpty() ) @@ -506,7 +508,14 @@ bool EmbeddedObjectContainer::StoreEmbeddedObject( const uno::Reference < embed: { uno::Sequence < beans::PropertyValue > aSeq; if ( bCopy ) - xPersist->storeToEntry( pImpl->mxStorage, rName, aSeq, aSeq ); + { + uno::Sequence<beans::PropertyValue> aObjArgs(2); + aObjArgs[0].Name = "SourceShellID"; + aObjArgs[0].Value <<= rSrcShellID; + aObjArgs[1].Name = "DestinationShellID"; + aObjArgs[1].Value <<= rDestShellID; + xPersist->storeToEntry(pImpl->mxStorage, rName, aSeq, aObjArgs); + } else { //TODO/LATER: possible optimization, don't store immediately @@ -529,7 +538,7 @@ bool EmbeddedObjectContainer::StoreEmbeddedObject( const uno::Reference < embed: bool EmbeddedObjectContainer::InsertEmbeddedObject( const uno::Reference < embed::XEmbeddedObject >& xObj, OUString& rName ) { // store it into the container storage - if ( StoreEmbeddedObject( xObj, rName, false ) ) + if (StoreEmbeddedObject(xObj, rName, false, OUString(), OUString())) { // remember object AddEmbeddedObject( xObj, rName ); @@ -683,7 +692,9 @@ bool EmbeddedObjectContainer::TryToCopyGraphReplacement( EmbeddedObjectContainer return bResult; } -uno::Reference < embed::XEmbeddedObject > EmbeddedObjectContainer::CopyAndGetEmbeddedObject( EmbeddedObjectContainer& rSrc, const uno::Reference < embed::XEmbeddedObject >& xObj, OUString& rName ) +uno::Reference < embed::XEmbeddedObject > EmbeddedObjectContainer::CopyAndGetEmbeddedObject( + EmbeddedObjectContainer& rSrc, const uno::Reference <embed::XEmbeddedObject>& xObj, OUString& rName, + const OUString& rSrcShellID, const OUString& rDestShellID ) { uno::Reference< embed::XEmbeddedObject > xResult; @@ -703,7 +714,7 @@ uno::Reference < embed::XEmbeddedObject > EmbeddedObjectContainer::CopyAndGetEmb rName = CreateUniqueObjectName(); // objects without persistence are not really stored by the method - if ( xObj.is() && StoreEmbeddedObject( xObj, rName, true ) ) + if (xObj.is() && StoreEmbeddedObject(xObj, rName, true, rSrcShellID, rDestShellID)) { xResult = Get_Impl( rName, xObj); if ( !xResult.is() ) |