sc/source/core/data/attarray.cxx | 12 ++++++++---- sc/source/core/data/table2.cxx | 3 +-- 2 files changed, 9 insertions(+), 6 deletions(-)
New commits: commit 2fffe4a50b6f541c1e43cf13a3a475caf94d203b Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Thu Jul 19 15:12:15 2018 +0200 Commit: Eike Rathke <er...@redhat.com> CommitDate: Fri Aug 31 17:47:31 2018 +0200 tdf#117781: don't remove already applied conditional format data ... when deduplicating; only add new range. Check not to add the same conditional format to a range more than once. Change-Id: I0702b8e1462784cc71666ddfa6442a2827f00af5 Reviewed-on: https://gerrit.libreoffice.org/57725 Tested-by: Jenkins Reviewed-by: Eike Rathke <er...@redhat.com> (cherry picked from commit e56eb9cb7ee80215c05d06f25349d7ab7ad06640) Reviewed-on: https://gerrit.libreoffice.org/59866 diff --git a/sc/source/core/data/attarray.cxx b/sc/source/core/data/attarray.cxx index d058b7e70b4f..3330cf14c10e 100644 --- a/sc/source/core/data/attarray.cxx +++ b/sc/source/core/data/attarray.cxx @@ -298,11 +298,15 @@ void ScAttrArray::AddCondFormat( SCROW nStartRow, SCROW nEndRow, sal_uInt32 nInd std::vector< sal_uInt32 > aCondFormatData; if(pItem) aCondFormatData = static_cast<const ScCondFormatItem*>(pItem)->GetCondFormatData(); - aCondFormatData.push_back(nIndex); + if (std::find(aCondFormatData.begin(), aCondFormatData.end(), nIndex) + == aCondFormatData.end()) + { + aCondFormatData.push_back(nIndex); - ScCondFormatItem aItem; - aItem.SetCondFormatData( aCondFormatData ); - pNewPattern->GetItemSet().Put( aItem ); + ScCondFormatItem aItem; + aItem.SetCondFormatData( aCondFormatData ); + pNewPattern->GetItemSet().Put( aItem ); + } } else { diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx index b7f95afebfed..e640b31622f4 100644 --- a/sc/source/core/data/table2.cxx +++ b/sc/source/core/data/table2.cxx @@ -569,14 +569,13 @@ bool CheckAndDeduplicateCondFormat(ScDocument* pDocument, ScConditionalFormat* p if (pOldFormat->EqualEntries(*pNewFormat, true)) { - pDocument->RemoveCondFormatData(pOldFormat->GetRange(), nTab, pOldFormat->GetKey()); const ScRangeList& rNewRangeList = pNewFormat->GetRange(); ScRangeList& rDstRangeList = pOldFormat->GetRangeList(); for (size_t i = 0; i < rNewRangeList.size(); ++i) { rDstRangeList.Join(rNewRangeList[i]); } - pDocument->AddCondFormatData(pOldFormat->GetRange(), nTab, pOldFormat->GetKey()); + pDocument->AddCondFormatData(rNewRangeList, nTab, pOldFormat->GetKey()); return true; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits