diff options
author | Justin Luth <justin_luth@sil.org> | 2020-07-03 11:45:24 +0300 |
---|---|---|
committer | Szymon Kłos <szymon.klos@collabora.com> | 2020-08-11 15:05:29 +0200 |
commit | 95ba7d3eb0a1d78958d43573d73669935364f481 (patch) | |
tree | 08a11d9220c8db54b9636068ebed254b302839e8 /svx | |
parent | 4a31a63c5e4d4dac01426581c39bc1ef9278f6cb (diff) |
tdf#100772 sd: add uno:DeleteTable to non-NB menus
Delete Row and Delete Column were there, but no option to delete table,
so that major omission was fixed for Draw and Impress.
The notebookbar looks very incomplete. Also, I didn't really
understand the pop-out menu configuration, and at least in the
one case there didn't seem to be a good space to add delete table.
So I left the notebookbar completely alone.
Change-Id: I5d6c98e3238bc545a02325edfd62f5d937ac6371
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97821
Tested-by: Jenkins
Tested-by: Maxim Monastirsky <momonasmon@gmail.com>
Reviewed-by: Justin Luth <justin_luth@sil.org>
Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100205
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100465
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/sdi/svx.sdi | 17 | ||||
-rw-r--r-- | svx/source/table/tablecontroller.cxx | 16 |
2 files changed, 31 insertions, 2 deletions
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi index e3cbeaa3adfc..8e43464f8b4a 100644 --- a/svx/sdi/svx.sdi +++ b/svx/sdi/svx.sdi @@ -11179,6 +11179,23 @@ SfxVoidItem DeleteColumns SID_TABLE_DELETE_COL GroupId = SfxGroupId::Table; ] +SfxVoidItem DeleteTable SID_TABLE_DELETE_TABLE +() +[ + AutoUpdate = FALSE, + FastCall = TRUE, + ReadOnlyDoc = FALSE, + Toggle = FALSE, + Container = FALSE, + RecordAbsolute = FALSE, + RecordPerSet; + + AccelConfig = TRUE, + MenuConfig = TRUE, + ToolBoxConfig = TRUE, + GroupId = SfxGroupId::Table; +] + SfxVoidItem SelectTable SID_TABLE_SELECT_ALL () [ diff --git a/svx/source/table/tablecontroller.cxx b/svx/source/table/tablecontroller.cxx index d5d0468c530f..48a73e528143 100644 --- a/svx/source/table/tablecontroller.cxx +++ b/svx/source/table/tablecontroller.cxx @@ -471,6 +471,10 @@ void SvxTableController::GetState( SfxItemSet& rSet ) if( !mxTable.is() || !hasSelectedCells() || (!comphelper::LibreOfficeKit::isActive() && mxTable->getColumnCount() <= 1) ) rSet.DisableItem(SID_TABLE_DELETE_COL); break; + case SID_TABLE_DELETE_TABLE: + if( !mxTable.is() ) + rSet.DisableItem(SID_TABLE_DELETE_TABLE); + break; case SID_TABLE_MERGE_CELLS: if( !mxTable.is() || !hasSelectedCells() ) rSet.DisableItem(SID_TABLE_MERGE_CELLS); @@ -784,10 +788,17 @@ void SvxTableController::onInsert( sal_uInt16 nSId, const SfxItemSet* pArgs ) void SvxTableController::onDelete( sal_uInt16 nSId ) { sdr::table::SdrTableObj* pTableObj = mxTableObj.get(); - if( !pTableObj ) + if( !pTableObj || !mxTable.is() ) return; - if( mxTable.is() && hasSelectedCells() ) + if( nSId == SID_TABLE_DELETE_TABLE ) + { + if( pTableObj->IsTextEditActive() ) + mrView.SdrEndTextEdit(true); + + mrView.DeleteMarkedObj(); + } + else if( hasSelectedCells() ) { CellPos aStart, aEnd; getSelectedCells( aStart, aEnd ); @@ -969,6 +980,7 @@ void SvxTableController::Execute( SfxRequest& rReq ) break; case SID_TABLE_DELETE_ROW: case SID_TABLE_DELETE_COL: + case SID_TABLE_DELETE_TABLE: onDelete( nSId ); break; case SID_TABLE_SELECT_ALL: |