[Libreoffice-commits] .: Branch 'feature/unlimited-number-of-sheets' - sc/source

Markus Mohrhard mmohrhard at kemper.freedesktop.org
Mon May 23 17:46:30 PDT 2011


 sc/source/core/data/markdata.cxx |   18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

New commits:
commit 1e14e2d5cf2827edf17ea2ae9ec97aa5a8d232c0
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Tue May 24 02:45:41 2011 +0200

    fix wrong rework for ScMArkData::InsertTab and DeleteTab

diff --git a/sc/source/core/data/markdata.cxx b/sc/source/core/data/markdata.cxx
index 34edaec..edd5a6d 100644
--- a/sc/source/core/data/markdata.cxx
+++ b/sc/source/core/data/markdata.cxx
@@ -600,14 +600,24 @@ sal_Bool ScMarkData::HasAnyMultiMarks() const
     return false;		// nix
 }
 
-void ScMarkData::InsertTab( SCTAB nTab )//TODO:REWORK
+void ScMarkData::InsertTab( SCTAB nTab )
 {
-    maTabMarked.insert( nTab );
+    std::set<SCTAB> tabMarked(maTabMarked.begin(), maTabMarked.upper_bound(nTab));
+    tabMarked.insert( nTab );
+    std::set<SCTAB>::iterator it = maTabMarked.upper_bound(nTab);
+    for (; it != maTabMarked.end(); ++it)
+        tabMarked.insert(*it + 1);
+    maTabMarked.swap(tabMarked);
 }
 
-void ScMarkData::DeleteTab( SCTAB nTab )//TODO:REWORK
+void ScMarkData::DeleteTab( SCTAB nTab )
 {
-    maTabMarked.erase( nTab );
+    std::set<SCTAB> tabMarked(maTabMarked.begin(), maTabMarked.find(nTab));
+    tabMarked.erase( nTab );
+    std::set<SCTAB>::iterator it = maTabMarked.find(nTab);
+    for (; it != maTabMarked.end(); ++it)
+        tabMarked.insert(*it + 1);
+    maTabMarked.swap(tabMarked);
 }
 
 


More information about the Libreoffice-commits mailing list