include/svx/sdr/contact/viewcontact.hxx | 5 +++++ svx/source/sdr/contact/viewcontact.cxx | 9 ++++++++- svx/source/sdr/contact/viewobjectcontact.cxx | 9 +++------ 3 files changed, 16 insertions(+), 7 deletions(-)
New commits: commit a53c693564f95acdbf6686e00b86671c0e068c48 Author: Caolán McNamara <caolan.mcnam...@collabora.com> AuthorDate: Wed Aug 2 17:09:19 2023 +0100 Commit: Caolán McNamara <caolan.mcnam...@collabora.com> CommitDate: Thu Aug 3 09:52:36 2023 +0200 Related: cool#6911 refactor for an optimization no change intended here Change-Id: I34b72776b1a05979fbe3a02ff1548b6aa8a183df Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155268 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com> diff --git a/include/svx/sdr/contact/viewcontact.hxx b/include/svx/sdr/contact/viewcontact.hxx index ffdc6d055008..1491d0a1401d 100644 --- a/include/svx/sdr/contact/viewcontact.hxx +++ b/include/svx/sdr/contact/viewcontact.hxx @@ -30,6 +30,7 @@ class SdrObject; namespace sdr::contact { +class DisplayInfo; class ObjectContact; class ViewObjectContact; @@ -146,6 +147,10 @@ public: // delete all existing VOCs by purpose, but can also be used for other purposes. // It is always possible to delete the VOCs, these are re-created on demand void flushViewObjectContacts(bool bWithHierarchy = true); + + void getPrimitive2DSequenceHierarchyOfIndex( + sal_uInt32 a, DisplayInfo& rDisplayInfo, ObjectContact& rObjectContact, + drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor); }; } diff --git a/svx/source/sdr/contact/viewcontact.cxx b/svx/source/sdr/contact/viewcontact.cxx index 2a5d73e509c3..3529f98cf385 100644 --- a/svx/source/sdr/contact/viewcontact.cxx +++ b/svx/source/sdr/contact/viewcontact.cxx @@ -290,6 +290,13 @@ void ViewContact::flushViewObjectContacts(bool bWithHierarchy) // delete local VOCs deleteAllVOCs(); } -} +void ViewContact::getPrimitive2DSequenceHierarchyOfIndex( + sal_uInt32 a, DisplayInfo& rDisplayInfo, ObjectContact& rObjectContact, + drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) +{ + const ViewObjectContact& rCandidate(GetViewContact(a).GetViewObjectContact(rObjectContact)); + rCandidate.getPrimitive2DSequenceHierarchy(rDisplayInfo, rVisitor); +} +} /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/sdr/contact/viewobjectcontact.cxx b/svx/source/sdr/contact/viewobjectcontact.cxx index 3f2ce8dc34fa..91ee66dff1ae 100644 --- a/svx/source/sdr/contact/viewobjectcontact.cxx +++ b/svx/source/sdr/contact/viewobjectcontact.cxx @@ -564,14 +564,11 @@ void ViewObjectContact::getPrimitive2DSequenceHierarchy(DisplayInfo& rDisplayInf void ViewObjectContact::getPrimitive2DSequenceSubHierarchy(DisplayInfo& rDisplayInfo, drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const { - const sal_uInt32 nSubHierarchyCount(GetViewContact().GetObjectCount()); + ViewContact& rViewContact = GetViewContact(); + const sal_uInt32 nSubHierarchyCount(rViewContact.GetObjectCount()); for(sal_uInt32 a(0); a < nSubHierarchyCount; a++) - { - const ViewObjectContact& rCandidate(GetViewContact().GetViewContact(a).GetViewObjectContact(GetObjectContact())); - - rCandidate.getPrimitive2DSequenceHierarchy(rDisplayInfo, rVisitor); - } + rViewContact.getPrimitive2DSequenceHierarchyOfIndex(a, rDisplayInfo, GetObjectContact(), rVisitor); } // Support getting a GridOffset per object and view for non-linear ViewToDevice