Kaydet (Commit) 5816c47a authored tarafından Dennis Francis's avatar Dennis Francis Kaydeden (comit) Eike Rathke

tdf#73006 : Put results in correct cells after Text to Columns

Change-Id: I7a1653424edd93b2de0597ce8a94aa5f4fa85622
Reviewed-on: https://gerrit.libreoffice.org/20258Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarEike Rathke <erack@redhat.com>
Tested-by: 's avatarEike Rathke <erack@redhat.com>
(cherry picked from commit d4c22dbb)
Reviewed-on: https://gerrit.libreoffice.org/20675
üst ffe150ce
......@@ -70,7 +70,7 @@
using namespace com::sun::star;
static bool lcl_GetTextToColumnsRange( const ScViewData* pData, ScRange& rRange )
static bool lcl_GetTextToColumnsRange( const ScViewData* pData, ScRange& rRange, bool bDoEmptyCheckOnly )
{
OSL_ENSURE( pData, "lcl_GetTextToColumnsRange: pData is null!" );
......@@ -100,11 +100,28 @@ static bool lcl_GetTextToColumnsRange( const ScViewData* pData, ScRange& rRange
const ScDocument* pDoc = pData->GetDocument();
OSL_ENSURE( pDoc, "lcl_GetTextToColumnsRange: pDoc is null!" );
if ( bRet && pDoc->IsBlockEmpty( rRange.aStart.Tab(), rRange.aStart.Col(),
rRange.aStart.Row(), rRange.aEnd.Col(),
rRange.aEnd.Row() ) )
if ( bDoEmptyCheckOnly )
{
bRet = false;
if ( bRet && pDoc->IsBlockEmpty( rRange.aStart.Tab(), rRange.aStart.Col(),
rRange.aStart.Row(), rRange.aEnd.Col(),
rRange.aEnd.Row() ) )
{
bRet = false;
}
}
else if ( bRet )
{
rRange.PutInOrder();
SCCOL nStartCol = rRange.aStart.Col(), nEndCol = rRange.aEnd.Col();
SCROW nStartRow = rRange.aStart.Row(), nEndRow = rRange.aEnd.Row();
bool bShrunk = false;
pDoc->ShrinkToUsedDataArea( bShrunk, rRange.aStart.Tab(), nStartCol, nStartRow,
nEndCol, nEndRow, false, false, true );
if ( bShrunk )
{
rRange.aStart.SetRow( nStartRow );
rRange.aEnd.SetRow( nEndRow );
}
}
return bRet;
......@@ -942,7 +959,7 @@ void ScCellShell::ExecuteDB( SfxRequest& rReq )
OSL_ENSURE( pData, "ScCellShell::ExecuteDB: SID_TEXT_TO_COLUMNS - pData is null!" );
ScRange aRange;
if ( lcl_GetTextToColumnsRange( pData, aRange ) )
if ( lcl_GetTextToColumnsRange( pData, aRange, false ) )
{
ScDocument* pDoc = pData->GetDocument();
OSL_ENSURE( pDoc, "ScCellShell::ExecuteDB: SID_TEXT_TO_COLUMNS - pDoc is null!" );
......@@ -1180,7 +1197,7 @@ void ScCellShell::GetDBState( SfxItemSet& rSet )
case SID_TEXT_TO_COLUMNS:
{
ScRange aRange;
if ( !lcl_GetTextToColumnsRange( pData, aRange ) )
if ( !lcl_GetTextToColumnsRange( pData, aRange, true ) )
{
rSet.DisableItem( nWhich );
}
......
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