diff options
author | Jim Raykowski <raykowj@gmail.com> | 2024-05-05 22:13:54 -0800 |
---|---|---|
committer | Jim Raykowski <raykowj@gmail.com> | 2024-05-07 18:07:26 +0200 |
commit | 9ccdb4c63445ad9ca7bdba869e1bb967b7f622c8 (patch) | |
tree | 0345b651e969919806606c0bf08a5592fd3d4dfa /sw/source/uibase/utlui | |
parent | 83d3f9b819ee23efa314953fc2fde4412d90a60b (diff) |
tdf#160598 follow up to make delete key work
Adds delete key handling for delete all footnotes/endnotes from the
Navigator.
Change-Id: Ic1d49377631344ac5e6fdc81c07eebde0470a6be
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167180
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
Tested-by: Jenkins
Diffstat (limited to 'sw/source/uibase/utlui')
-rw-r--r-- | sw/source/uibase/utlui/content.cxx | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/sw/source/uibase/utlui/content.cxx b/sw/source/uibase/utlui/content.cxx index 3e5a2faa8043..5642ff20a790 100644 --- a/sw/source/uibase/utlui/content.cxx +++ b/sw/source/uibase/utlui/content.cxx @@ -4769,13 +4769,27 @@ IMPL_LINK(SwContentTree, KeyInputHdl, const KeyEvent&, rEvent, bool) else if(aCode.GetCode() == KEY_DELETE && 0 == aCode.GetModifier()) { std::unique_ptr<weld::TreeIter> xEntry(m_xTreeView->make_iterator()); - if (m_xTreeView->get_selected(xEntry.get()) && lcl_IsContent(*xEntry, *m_xTreeView)) + if (!m_pActiveShell->GetView().GetDocShell()->IsReadOnly() + && m_xTreeView->get_selected(xEntry.get())) { - assert(dynamic_cast<SwContent*>(weld::fromId<SwTypeNumber*>(m_xTreeView->get_id(*xEntry)))); - if (weld::fromId<SwContent*>(m_xTreeView->get_id(*xEntry))->GetParent()->IsDeletable() && - !m_pActiveShell->GetView().GetDocShell()->IsReadOnly()) + if (lcl_IsContent(*xEntry, *m_xTreeView)) + { + assert(dynamic_cast<SwContent*>(weld::fromId<SwTypeNumber*>(m_xTreeView->get_id(*xEntry)))); + if (weld::fromId<SwContent*>(m_xTreeView->get_id(*xEntry))->GetParent()->IsDeletable()) + { + EditEntry(*xEntry, EditEntryMode::DELETE); + } + } + else { - EditEntry(*xEntry, EditEntryMode::DELETE); + SwContentType* pContentType + = weld::fromId<SwContentType*>(m_xTreeView->get_id(*xEntry)); + if (pContentType->GetMemberCount() + && (pContentType->GetType() == ContentTypeId::FOOTNOTE + || pContentType->GetType() == ContentTypeId::ENDNOTE)) + { + ExecuteContextMenuAction("deleteallfootnotes"); + } } } } |