fdo#75815: Adjust external references here too.
Adjusting external references are much simpler than adjusting internal ones since we don't need to worry about deleted references etc. Change-Id: I82111e383e1fc6976ef08c1438c3dd916a249af6
This commit is contained in:
@@ -2751,6 +2751,25 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnShift( const sc::RefUpdateCon
|
|||||||
rRef.SetRange(aAbs, aNewPos);
|
rRef.SetRange(aAbs, aNewPos);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case svExternalSingleRef:
|
||||||
|
{
|
||||||
|
// For external reference, just reset the reference with
|
||||||
|
// respect to the new cell position.
|
||||||
|
ScToken* pToken = static_cast<ScToken*>(*p);
|
||||||
|
ScSingleRefData& rRef = pToken->GetSingleRef();
|
||||||
|
ScAddress aAbs = rRef.toAbs(rOldPos);
|
||||||
|
rRef.SetAddress(aAbs, aNewPos);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case svExternalDoubleRef:
|
||||||
|
{
|
||||||
|
// Same as above.
|
||||||
|
ScToken* pToken = static_cast<ScToken*>(*p);
|
||||||
|
ScComplexRefData& rRef = pToken->GetDoubleRef();
|
||||||
|
ScRange aAbs = rRef.toAbs(rOldPos);
|
||||||
|
rRef.SetRange(aAbs, aNewPos);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case svIndex:
|
case svIndex:
|
||||||
{
|
{
|
||||||
const formula::FormulaToken* pToken = *p;
|
const formula::FormulaToken* pToken = *p;
|
||||||
|
Reference in New Issue
Block a user