summaryrefslogtreecommitdiff
path: root/sc/source/ui/docshell/docfunc.cxx
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2011-10-26 01:00:05 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2011-10-26 17:02:00 +0200
commit5fbdd7bf0994f43ad4783f7ff574e11642321016 (patch)
tree22c4e87dcf785f1a8b6dc2fd115590ba6e14a67a /sc/source/ui/docshell/docfunc.cxx
parent05d40c33b0d3e8d33912ad2b43ae8e31c6a1e443 (diff)
add local range names to ScDocFunc
Diffstat (limited to 'sc/source/ui/docshell/docfunc.cxx')
-rw-r--r--sc/source/ui/docshell/docfunc.cxx23
1 files changed, 17 insertions, 6 deletions
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