summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorJustin Luth <justin_luth@sil.org>2020-07-03 11:45:24 +0300
committerSzymon Kłos <szymon.klos@collabora.com>2020-08-11 15:05:29 +0200
commit95ba7d3eb0a1d78958d43573d73669935364f481 (patch)
tree08a11d9220c8db54b9636068ebed254b302839e8 /svx
parent4a31a63c5e4d4dac01426581c39bc1ef9278f6cb (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.sdi17
-rw-r--r--svx/source/table/tablecontroller.cxx16
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: