diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-03-02 10:01:45 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-03-02 15:47:49 +0100 |
commit | 0ab136c65ee184bf1cd790ee7347cd572fdf56aa (patch) | |
tree | 3495e03202d6ac3c025a230c9364790d47614dd8 /sc/source/filter | |
parent | 052423984614911c7b711dba106315b1b67e7047 (diff) |
forcepoint #15 notify FormatsContext if Format deleted
Change-Id: Icb7b0c3b1fc3d38e2d7e44e0a8bdb03529c5b41d
Reviewed-on: https://gerrit.libreoffice.org/50621
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sc/source/filter')
-rw-r--r-- | sc/source/filter/xml/xmlcondformat.cxx | 9 | ||||
-rw-r--r-- | sc/source/filter/xml/xmlcondformat.hxx | 3 |
2 files changed, 11 insertions, 1 deletions
diff --git a/sc/source/filter/xml/xmlcondformat.cxx b/sc/source/filter/xml/xmlcondformat.cxx index f7b43c5cced4..be215df81d72 100644 --- a/sc/source/filter/xml/xmlcondformat.cxx +++ b/sc/source/filter/xml/xmlcondformat.cxx @@ -49,13 +49,20 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL ScXMLConditio return pContext; } +IMPL_LINK(ScXMLConditionalFormatsContext, FormatDeletedHdl, ScConditionalFormat*, pFormat, void) +{ + mvCondFormatData.erase(std::remove_if(mvCondFormatData.begin(), mvCondFormatData.end(), + [pFormat](CondFormatData& r){ return r.mpFormat == pFormat; }), + mvCondFormatData.end()); +} + void SAL_CALL ScXMLConditionalFormatsContext::endFastElement( sal_Int32 /*nElement*/ ) { ScDocument* pDoc = GetScImport().GetDocument(); SCTAB nTab = GetScImport().GetTables().GetCurrentSheet(); ScConditionalFormatList* pCondFormatList = pDoc->GetCondFormList(nTab); - bool bDeleted = !pCondFormatList->CheckAllEntries(); + bool bDeleted = !pCondFormatList->CheckAllEntries(LINK(this, ScXMLConditionalFormatsContext, FormatDeletedHdl)); SAL_WARN_IF(bDeleted, "sc", "conditional formats have been deleted because they contained empty range info"); diff --git a/sc/source/filter/xml/xmlcondformat.hxx b/sc/source/filter/xml/xmlcondformat.hxx index fc253081ff0d..ed979d273985 100644 --- a/sc/source/filter/xml/xmlcondformat.hxx +++ b/sc/source/filter/xml/xmlcondformat.hxx @@ -12,6 +12,7 @@ #include <array> #include <memory> +#include <tools/link.hxx> #include <xmloff/xmlictxt.hxx> #include "xmlimprt.hxx" #include "importcontext.hxx" @@ -41,6 +42,8 @@ private: SCTAB mnTab; }; + DECL_LINK(FormatDeletedHdl, ScConditionalFormat*, void); + public: ScXMLConditionalFormatsContext( ScXMLImport& rImport ); |