summaryrefslogtreecommitdiff
path: root/sc/source/filter
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-03-02 10:01:45 +0000
committerCaolán McNamara <caolanm@redhat.com>2018-03-02 15:47:49 +0100
commit0ab136c65ee184bf1cd790ee7347cd572fdf56aa (patch)
tree3495e03202d6ac3c025a230c9364790d47614dd8 /sc/source/filter
parent052423984614911c7b711dba106315b1b67e7047 (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.cxx9
-rw-r--r--sc/source/filter/xml/xmlcondformat.hxx3
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 );