sc/source/filter/inc/condformatbuffer.hxx | 2 +- sc/source/filter/oox/condformatbuffer.cxx | 1 - sc/source/filter/oox/condformatcontext.cxx | 6 ++++++ 3 files changed, 7 insertions(+), 2 deletions(-)
New commits: commit 550eb72343eaeacb8b3b80f12e3acb4d4a1431e5 Author: Henry Castro <hcas...@collabora.com> AuthorDate: Tue Mar 28 17:48:19 2023 -0400 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Wed Apr 12 18:53:12 2023 +0200 sc: filter: oox: do not insert rule too early The </cfRule> tag is a good place to do a post check the conditional format sanity. Signed-off-by: Henry Castro <hcas...@collabora.com> Change-Id: Id6e99c81011040ec47034e993490fae5c71d7e04 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149719 Reviewed-by: Andras Timar <andras.ti...@collabora.com> Tested-by: Andras Timar <andras.ti...@collabora.com> diff --git a/sc/source/filter/inc/condformatbuffer.hxx b/sc/source/filter/inc/condformatbuffer.hxx index 61271c08441d..0ff7006ee439 100644 --- a/sc/source/filter/inc/condformatbuffer.hxx +++ b/sc/source/filter/inc/condformatbuffer.hxx @@ -219,9 +219,9 @@ public: const ScRangeList& getRanges() const { return maModel.maRanges; } void setReadyForFinalize() { mbReadyForFinalize = true; } + void insertRule( CondFormatRuleRef const & xRule ); private: CondFormatRuleRef createRule(); - void insertRule( CondFormatRuleRef const & xRule ); private: typedef RefMap< sal_Int32, CondFormatRule > CondFormatRuleMap; diff --git a/sc/source/filter/oox/condformatbuffer.cxx b/sc/source/filter/oox/condformatbuffer.cxx index 01aa5a5e1c54..6a9b80482f3a 100644 --- a/sc/source/filter/oox/condformatbuffer.cxx +++ b/sc/source/filter/oox/condformatbuffer.cxx @@ -1108,7 +1108,6 @@ CondFormatRuleRef CondFormat::importCfRule( const AttributeList& rAttribs ) { CondFormatRuleRef xRule = createRule(); xRule->importCfRule( rAttribs ); - insertRule( xRule ); return xRule; } diff --git a/sc/source/filter/oox/condformatcontext.cxx b/sc/source/filter/oox/condformatcontext.cxx index 9c9a47065bac..ab72727d1429 100644 --- a/sc/source/filter/oox/condformatcontext.cxx +++ b/sc/source/filter/oox/condformatcontext.cxx @@ -201,6 +201,12 @@ void CondFormatContext::onEndElement() if(mxCondFmt) mxCondFmt->setReadyForFinalize(); break; + case XLS_TOKEN( cfRule ): + if (mxCondFmt && mxRule) + { + mxCondFmt->insertRule(mxRule); + } + break; } }