[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - svx/source
merttumer (via logerrit)
logerrit at kemper.freedesktop.org
Tue May 25 04:19:07 UTC 2021
svx/source/table/tablecontroller.cxx | 30 ++++++++++++++++++++++--------
1 file changed, 22 insertions(+), 8 deletions(-)
New commits:
commit 86fad1dfee9f6678cdca46c607c6a05306ac622e
Author: merttumer <mert.tumer at collabora.com>
AuthorDate: Mon May 17 05:52:01 2021 +0300
Commit: Mert Tumer <mert.tumer at collabora.com>
CommitDate: Tue May 25 06:18:33 2021 +0200
Implemented Delete key deletes the table when all the cells are selected
Change-Id: I8a17c73781a3399b214d5655b83036652933a90a
Signed-off-by: merttumer <mert.tumer at collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115689
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
diff --git a/svx/source/table/tablecontroller.cxx b/svx/source/table/tablecontroller.cxx
index 464d8290e572..eee8278090ed 100644
--- a/svx/source/table/tablecontroller.cxx
+++ b/svx/source/table/tablecontroller.cxx
@@ -1419,30 +1419,44 @@ bool SvxTableController::DeleteMarked()
SdrTableObj& rTableObj(*mxTableObj.get());
SdrModel& rModel(rTableObj.getSdrModelFromSdrObject());
const bool bUndo(rModel.IsUndoEnabled());
+ bool bDeleteTable = false;
if (bUndo)
rModel.BegUndo(SvxResId(STR_TABLE_DELETE_CELL_CONTENTS));
CellPos aStart, aEnd;
getSelectedCells( aStart, aEnd );
- for( sal_Int32 nRow = aStart.mnRow; nRow <= aEnd.mnRow; nRow++ )
+ const sal_Int32 nRemovedColumns = aEnd.mnCol - aStart.mnCol + 1;
+ const sal_Int32 nRemovedRows = aEnd.mnRow - aStart.mnRow + 1;
+ if( nRemovedColumns == mxTable->getColumnCount() && nRemovedRows == mxTable->getRowCount())
{
- for( sal_Int32 nCol = aStart.mnCol; nCol <= aEnd.mnCol; nCol++ )
+ bDeleteTable = true;
+ }
+ else
+ {
+ for( sal_Int32 nRow = aStart.mnRow; nRow <= aEnd.mnRow; nRow++ )
{
- CellRef xCell( dynamic_cast< Cell* >( mxTable->getCellByPosition( nCol, nRow ).get() ) );
- if (xCell.is() && xCell->hasText())
+ for( sal_Int32 nCol = aStart.mnCol; nCol <= aEnd.mnCol; nCol++ )
{
- if (bUndo)
- xCell->AddUndo();
- xCell->SetOutlinerParaObject(nullptr);
+ CellRef xCell( dynamic_cast< Cell* >( mxTable->getCellByPosition( nCol, nRow ).get() ) );
+ if (xCell.is() && xCell->hasText())
+ {
+ if (bUndo)
+ xCell->AddUndo();
+ xCell->SetOutlinerParaObject(nullptr);
+ }
}
}
}
+ if (bDeleteTable)
+ mrView.DeleteMarkedObj();
+
if (bUndo)
rModel.EndUndo();
- UpdateTableShape();
+ if (!bDeleteTable)
+ UpdateTableShape();
return true;
}
More information about the Libreoffice-commits
mailing list