Kaydet (Commit) ec1b1af8 authored tarafından Eike Rathke's avatar Eike Rathke

add ReorderParam.mbHasHeaders to include in Undo range mark

Undo Sort did not select/mark the original range if it included header
row/column.

Change-Id: Ie4c800e7a44fd910c871731673093400c6400e4a
üst 3f28f670
......@@ -97,6 +97,7 @@ struct SC_DLLPUBLIC ReorderParam
bool mbPattern;
bool mbHiddenFiltered;
bool mbUpdateRefs;
bool mbHasHeaders;
/**
* Reorder the position indices such that it can be used to undo the
......
......@@ -1689,6 +1689,7 @@ void ScTable::Sort(
pUndo->mbPattern = rSortParam.bIncludePattern;
pUndo->mbHiddenFiltered = bKeepQuery;
pUndo->mbUpdateRefs = bUpdateRefs;
pUndo->mbHasHeaders = rSortParam.bHasHeader;
}
// Trim empty leading and trailing column ranges.
......
......@@ -44,7 +44,25 @@ void UndoSort::Execute( bool bUndo )
aParam.reverse();
rDoc.Reorder(aParam, NULL);
ScUndoUtil::MarkSimpleBlock(pDocShell, maParam.maSortRange);
if (maParam.mbHasHeaders)
{
ScRange aMarkRange( maParam.maSortRange);
if (maParam.mbByRow)
{
if (aMarkRange.aStart.Col() > 0)
aMarkRange.aStart.IncCol(-1);
}
else
{
if (aMarkRange.aStart.Row() > 0)
aMarkRange.aStart.IncRow(-1);
}
ScUndoUtil::MarkSimpleBlock(pDocShell, aMarkRange);
}
else
{
ScUndoUtil::MarkSimpleBlock(pDocShell, maParam.maSortRange);
}
rDoc.SetDirty(maParam.maSortRange, true);
if (!aParam.mbUpdateRefs)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment