sw/source/uibase/utlui/content.cxx |   24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

New commits:
commit 9ccdb4c63445ad9ca7bdba869e1bb967b7f622c8
Author:     Jim Raykowski <rayk...@gmail.com>
AuthorDate: Sun May 5 22:13:54 2024 -0800
Commit:     Jim Raykowski <rayk...@gmail.com>
CommitDate: Tue May 7 18:07:26 2024 +0200

    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 <rayk...@gmail.com>
    Tested-by: Jenkins

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");
+                }
             }
         }
     }

Reply via email to