diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2011-06-30 05:28:29 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2011-06-30 05:28:29 +0200 |
commit | cacc32f86fa18cb8262f5597b381c099117a3344 (patch) | |
tree | 68b7d36c5215c13f69c05050ae02020acff32044 | |
parent | 58d6a7a6acd32dbf6e58a0b2cce32080e808ed4e (diff) |
fix for fdo#38380: update local range names
local range names must be updated like global range names
-rw-r--r-- | sc/source/core/data/table1.cxx | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/sc/source/core/data/table1.cxx b/sc/source/core/data/table1.cxx index 0d0f57294..d316b499a 100644 --- a/sc/source/core/data/table1.cxx +++ b/sc/source/core/data/table1.cxx @@ -1301,6 +1301,12 @@ void ScTable::UpdateReference( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW bUpdated |= aCol[i].UpdateReference( eUpdateRefMode, nCol1, nRow1, nTab1, nCol2, nRow2, nTab2, nDx, nDy, nDz, pUndoDoc ); + if (mpRangeName) + { + ScRange aRange( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 );; + mpRangeName->UpdateReference( eUpdateRefMode, aRange, nDx, nDy, nDz ); + } + if ( bIncludeDraw ) UpdateDrawRef( eUpdateRefMode, nCol1, nRow1, nTab1, nCol2, nRow2, nTab2, nDx, nDy, nDz, bUpdateNoteCaptionPos ); @@ -1408,6 +1414,9 @@ void ScTable::UpdateInsertTab(SCTAB nTable, SCTAB nNewSheets) } for (SCCOL i=0; i <= MAXCOL; i++) aCol[i].UpdateInsertTab(nTable, nNewSheets); + if (mpRangeName) + mpRangeName->UpdateTabRef( nTable, 1, 0, nNewSheets); + if (IsStreamValid()) SetStreamValid(false); } @@ -1427,6 +1436,14 @@ void ScTable::UpdateDeleteTab( SCTAB nTable, sal_Bool bIsMove, ScTable* pRefUndo else for (i=0; i <= MAXCOL; i++) aCol[i].UpdateDeleteTab(nTable, bIsMove, NULL, nSheets); + if (mpRangeName) + { + for (SCTAB aTab = 0; aTab < nSheets; ++aTab) + { + mpRangeName->UpdateTabRef( nTable + aTab, 2 ); + } + } + if (IsStreamValid()) SetStreamValid(false); } @@ -1442,6 +1459,9 @@ void ScTable::UpdateMoveTab( SCTAB nOldPos, SCTAB nNewPos, SCTAB nTabNo, pProgress->SetState(pProgress->GetState() + aCol[i].GetCodeCount()); } + if (mpRangeName) + mpRangeName->UpdateTabRef(nOldPos, 3, nNewPos); + if (IsStreamValid()) SetStreamValid(false); if (pDBDataNoName) |