summaryrefslogtreecommitdiff
path: root/sw/source/uibase/utlui
diff options
context:
space:
mode:
authorJim Raykowski <raykowj@gmail.com>2024-05-05 22:13:54 -0800
committerJim Raykowski <raykowj@gmail.com>2024-05-07 18:07:26 +0200
commit9ccdb4c63445ad9ca7bdba869e1bb967b7f622c8 (patch)
tree0345b651e969919806606c0bf08a5592fd3d4dfa /sw/source/uibase/utlui
parent83d3f9b819ee23efa314953fc2fde4412d90a60b (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.cxx24
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");
+ }
}
}
}