diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2012-11-12 07:16:05 +0100 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2012-11-12 07:22:07 +0100 |
commit | eb240530443b964ea45bf80a5e3711e11a3f09c5 (patch) | |
tree | 5758fff3a7b509fce21477dc185b4e47e02805f6 /sc/source/core/data/conditio.cxx | |
parent | 51533c729fc57dea539163f45fb5152a864467f0 (diff) |
remove conditional formats withiout range after import, related fdo#56983
Change-Id: I9a8c02369c3e5a12310a46229bdc1671f75593ad
Diffstat (limited to 'sc/source/core/data/conditio.cxx')
-rw-r--r-- | sc/source/core/data/conditio.cxx | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx index f164cc48aa40..ecece736a86a 100644 --- a/sc/source/core/data/conditio.cxx +++ b/sc/source/core/data/conditio.cxx @@ -1975,20 +1975,32 @@ void ScConditionalFormatList::UpdateMoveTab( SCTAB nOldPos, SCTAB nNewPos ) itr->UpdateMoveTab( nOldPos, nNewPos ); } -void ScConditionalFormatList::DeleteArea( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 ) +bool ScConditionalFormatList::CheckAllEntries() { - for( iterator itr = begin(); itr != end(); ++itr) - itr->DeleteArea( nCol1, nRow1, nCol2, nRow2 ); - + bool bValid = true; + // // need to check which must be deleted iterator itr = begin(); while(itr != end()) { if(itr->GetRange().empty()) + { + bValid = false; maConditionalFormats.erase(itr++); + } else ++itr; } + + return bValid; +} + +void ScConditionalFormatList::DeleteArea( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 ) +{ + for( iterator itr = begin(); itr != end(); ++itr) + itr->DeleteArea( nCol1, nRow1, nCol2, nRow2 ); + + CheckAllEntries(); } void ScConditionalFormatList::SourceChanged( const ScAddress& rAddr ) |