sfx2/source/doc/objstor.cxx | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+)
New commits: commit a24a4cc1838e3a2d55261a8edf6cb63186f4c38f Author: Michael Stahl <michael.st...@cib.de> AuthorDate: Fri Jul 10 14:30:34 2020 +0200 Commit: Thorsten Behrens <thorsten.behr...@cib.de> CommitDate: Fri Jul 10 22:22:32 2020 +0200 tdf#134582 sfx2: when storing, set Version on embedded object storage This previously wasn't needed because there was only one version for which it was checked (1.2) but since commit a541cd91951eca15e40764244b34c72b347f9f26 there's a second version so when loading an existing embedded object in one version and storing it in another, the Version must be updated so the attribute in META-INF/manifest.xml matches the one in content.xml. Change-Id: Ic2fc303c6f6bc254050d531d578029377976ecb5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98521 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.st...@cib.de> (cherry picked from commit 519d96fd8b83ef4c61576d87b58f97b7e6e6e3c6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98459 Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de> diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx index 846e68700814..308ab1dfd0d4 100644 --- a/sfx2/source/doc/objstor.cxx +++ b/sfx2/source/doc/objstor.cxx @@ -969,6 +969,36 @@ bool SfxObjectShell::DoSave() pImpl->bIsSaving = true; + if (IsOwnStorageFormat(*GetMedium())) + { + SvtSaveOptions::ODFSaneDefaultVersion nDefVersion = SvtSaveOptions::ODFSVER_013; + if (!utl::ConfigManager::IsFuzzing()) + { + SvtSaveOptions aSaveOpt; + nDefVersion = aSaveOpt.GetODFSaneDefaultVersion(); + } + uno::Reference<beans::XPropertySet> const xProps(GetMedium()->GetStorage(), uno::UNO_QUERY); + assert(xProps.is()); + if (nDefVersion >= SvtSaveOptions::ODFSVER_012) // property exists only since ODF 1.2 + { + try // tdf#134582 set Version on embedded objects as they + { // could have been loaded with a different/old version + if (SvtSaveOptions::ODFSVER_013 <= nDefVersion) + { + xProps->setPropertyValue("Version", uno::makeAny<OUString>(ODFVER_013_TEXT)); + } + else + { + xProps->setPropertyValue("Version", uno::makeAny<OUString>(ODFVER_012_TEXT)); + } + } + catch (uno::Exception&) + { + TOOLS_WARN_EXCEPTION("sfx.doc", "SfxObjectShell::DoSave"); + } + } + } + uno::Sequence< beans::NamedValue > aEncryptionData; if ( IsPackageStorageFormat_Impl( *GetMedium() ) ) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits