table2.cxx (4d7c9de0) | table2.cxx (a54c2933) |
---|---|
1/************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance --- 141 unchanged lines hidden (view full) --- 150 if (pOutlineTable) 151 pOutlineTable->InsertRow( nStartRow, nSize ); 152 153 mpFilteredRows->insertSegment(nStartRow, nSize, true); 154 mpHiddenRows->insertSegment(nStartRow, nSize, true); 155 156 if (!maRowManualBreaks.empty()) 157 { | 1/************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance --- 141 unchanged lines hidden (view full) --- 150 if (pOutlineTable) 151 pOutlineTable->InsertRow( nStartRow, nSize ); 152 153 mpFilteredRows->insertSegment(nStartRow, nSize, true); 154 mpHiddenRows->insertSegment(nStartRow, nSize, true); 155 156 if (!maRowManualBreaks.empty()) 157 { |
158 std::set<SCROW>::reverse_iterator rit = maRowManualBreaks.rbegin(); 159 while (rit != maRowManualBreaks.rend()) | 158 std::vector<SCROW> aUpdatedBreaks; 159 160 while ( ! maRowManualBreaks.empty()) |
160 { | 161 { |
161 SCROW nRow = *rit; 162 if (nRow < nStartRow) 163 break; // while 164 else 165 { 166 maRowManualBreaks.erase( (++rit).base()); 167 maRowManualBreaks.insert( static_cast<SCROW>( nRow + nSize)); 168 } | 162 std::set<SCROW>::iterator aLast (--maRowManualBreaks.end()); 163 164 // Check if there are more entries that have to be processed. 165 if (*aLast < nStartRow) 166 break; 167 168 // Remember the updated break location and erase the entry. 169 aUpdatedBreaks.push_back(static_cast<SCROW>(*aLast + nSize)); 170 maRowManualBreaks.erase(aLast); |
169 } | 171 } |
172 173 // Insert the updated break locations. 174 if ( ! aUpdatedBreaks.empty()) 175 maRowManualBreaks.insert(aUpdatedBreaks.begin(), aUpdatedBreaks.end()); |
|
170 } 171 } 172 173 for (SCCOL j=nStartCol; j<=nEndCol; j++) 174 aCol[j].InsertRow( nStartRow, nSize ); 175 DecRecalcLevel( false ); 176 177 InvalidatePageBreaks(); --- 3142 unchanged lines hidden --- | 176 } 177 } 178 179 for (SCCOL j=nStartCol; j<=nEndCol; j++) 180 aCol[j].InsertRow( nStartRow, nSize ); 181 DecRecalcLevel( false ); 182 183 InvalidatePageBreaks(); --- 3142 unchanged lines hidden --- |