diff options
author | Vasily Melenchuk <vasily.melenchuk@cib.de> | 2022-04-04 18:05:18 +0300 |
---|---|---|
committer | Thorsten Behrens <thorsten.behrens@allotropia.de> | 2022-06-21 01:18:48 +0200 |
commit | 3ddf0f924b2b5fbb5f409e0c6cb59cf2e82e4854 (patch) | |
tree | a2a21b0b54ec10afb78cbf75485e28c740f6b06e /writerfilter | |
parent | 873b52f4c46c47ebe7d70374586a00488f3a4037 (diff) |
tdf#148361: docx sdt: cleanup databinding data after inserting
Databinding data is used only for current sdt block. It should
be clean up after usage to avoid impact on next sdt blocks.
Change-Id: I53f47dd655ed027d40eb518784dcae69813e612f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132524
Tested-by: Jenkins
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Vasily Melenchuk <vasily.melenchuk@cib.de>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132634
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
Tested-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/dmapper/SdtHelper.cxx | 17 | ||||
-rw-r--r-- | writerfilter/source/dmapper/SdtHelper.hxx | 3 |
2 files changed, 15 insertions, 5 deletions
diff --git a/writerfilter/source/dmapper/SdtHelper.cxx b/writerfilter/source/dmapper/SdtHelper.cxx index 71d1ffd7fc9f..8a5e769ad011 100644 --- a/writerfilter/source/dmapper/SdtHelper.cxx +++ b/writerfilter/source/dmapper/SdtHelper.cxx @@ -268,8 +268,7 @@ void SdtHelper::createDropDownControl() } // clean up - m_aDropDownItems.clear(); - setControlType(SdtControlType::unknown); + clear(); } void SdtHelper::createPlainTextControl() @@ -300,8 +299,7 @@ void SdtHelper::createPlainTextControl() uno::makeAny(getInteropGrabBagAndClear())); // clean up - m_aDropDownItems.clear(); - setControlType(SdtControlType::unknown); + clear(); } void SdtHelper::createDateContentControl() @@ -374,7 +372,7 @@ void SdtHelper::createDateContentControl() } } - setControlType(SdtControlType::unknown); + clear(); } void SdtHelper::createControlShape(awt::Size aSize, @@ -423,6 +421,15 @@ bool SdtHelper::containedInInteropGrabBag(const OUString& rValueName) return false; } +void SdtHelper::clear() +{ + m_aDropDownItems.clear(); + setControlType(SdtControlType::unknown); + m_sDataBindingPrefixMapping.clear(); + m_sDataBindingXPath.clear(); + m_sDataBindingStoreItemID.clear(); + m_aGrabBag.clear(); +} } // namespace dmapper } // namespace writerfilter diff --git a/writerfilter/source/dmapper/SdtHelper.hxx b/writerfilter/source/dmapper/SdtHelper.hxx index 330ffbbca88c..863c449a211e 100644 --- a/writerfilter/source/dmapper/SdtHelper.hxx +++ b/writerfilter/source/dmapper/SdtHelper.hxx @@ -111,6 +111,9 @@ class SdtHelper final : public virtual SvRefBase void loadPropertiesXMLs(); + /// Clear all collected attributes for futher reuse + void clear(); + public: explicit SdtHelper(DomainMapper_Impl& rDM_Impl, css::uno::Reference<css::uno::XComponentContext> const& xContext); |