From 5fbdd7bf0994f43ad4783f7ff574e11642321016 Mon Sep 17 00:00:00 2001 From: Markus Mohrhard Date: Wed, 26 Oct 2011 01:00:05 +0200 Subject: add local range names to ScDocFunc --- sc/source/ui/docshell/docfunc.cxx | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'sc/source/ui/docshell/docfunc.cxx') diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx index e484fcd75699..b2d0536bd50b 100644 --- a/sc/source/ui/docshell/docfunc.cxx +++ b/sc/source/ui/docshell/docfunc.cxx @@ -4476,9 +4476,9 @@ bool ScDocFunc::UnmergeCells( const ScCellMergeOption& rOption, sal_Bool bRecord //------------------------------------------------------------------------ -bool ScDocFunc::ModifyRangeNames( const ScRangeName& rNewRanges ) +bool ScDocFunc::ModifyRangeNames( const ScRangeName& rNewRanges, SCTAB nTab ) { - return SetNewRangeNames( new ScRangeName(rNewRanges) ); + return SetNewRangeNames( new ScRangeName(rNewRanges), nTab ); } void ScDocFunc::ModifyAllRangeNames( const ScRangeName* pGlobal, const ScRangeName::TabNameCopyMap& rTabs ) @@ -4509,7 +4509,7 @@ void ScDocFunc::ModifyAllRangeNames( const ScRangeName* pGlobal, const ScRangeNa SFX_APP()->Broadcast(SfxSimpleHint(SC_HINT_AREAS_CHANGED)); } -bool ScDocFunc::SetNewRangeNames( ScRangeName* pNewRanges, bool bModifyDoc ) // takes ownership of pNewRanges +bool ScDocFunc::SetNewRangeNames( ScRangeName* pNewRanges, bool bModifyDoc, SCTAB nTab ) // takes ownership of pNewRanges { ScDocShellModificator aModificator( rDocShell ); @@ -4519,11 +4519,19 @@ bool ScDocFunc::SetNewRangeNames( ScRangeName* pNewRanges, bool bModifyDoc ) if (bUndo) { - ScRangeName* pOld = pDoc->GetRangeName(); + ScRangeName* pOld; + if (nTab >=0) + { + pOld = pDoc->GetRangeName(nTab); + } + else + { + pOld = pDoc->GetRangeName(); + } ScRangeName* pUndoRanges = new ScRangeName(*pOld); ScRangeName* pRedoRanges = new ScRangeName(*pNewRanges); rDocShell.GetUndoManager()->AddUndoAction( - new ScUndoRangeNames( &rDocShell, pUndoRanges, pRedoRanges ) ); + new ScUndoRangeNames( &rDocShell, pUndoRanges, pRedoRanges, nTab ) ); } // #i55926# While loading XML, formula cells only have a single string token, @@ -4533,7 +4541,10 @@ bool ScDocFunc::SetNewRangeNames( ScRangeName* pNewRanges, bool bModifyDoc ) if ( bCompile ) pDoc->CompileNameFormula( sal_True ); // CreateFormulaString - pDoc->SetRangeName( pNewRanges ); // takes ownership + if (nTab >= 0) + pDoc->SetRangeName( nTab, pNewRanges ); // takes ownership + else + pDoc->SetRangeName( pNewRanges ); // takes ownership if ( bCompile ) pDoc->CompileNameFormula( false ); // CompileFormulaString -- cgit