From a83f71dfe38b953a145e7ddd0fe4bd66e6713c6e Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Mon, 30 Jun 2025 13:58:36 +0200 Subject: [PATCH] PageObjectLayouter can be held by unique_ptr Change-Id: I3323ca198d534d673772e7cdc10f04a12e6f9376 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187213 Reviewed-by: Noel Grandin Tested-by: Jenkins --- sd/source/ui/slidesorter/inc/view/SlsLayouter.hxx | 2 +- sd/source/ui/slidesorter/view/SlideSorterView.cxx | 3 +-- .../ui/slidesorter/view/SlsInsertionIndicatorOverlay.cxx | 2 +- sd/source/ui/slidesorter/view/SlsLayouter.cxx | 8 ++++---- sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx | 6 +++--- 5 files changed, 10 insertions(+), 11 deletions(-) diff --git a/sd/source/ui/slidesorter/inc/view/SlsLayouter.hxx b/sd/source/ui/slidesorter/inc/view/SlsLayouter.hxx index 3a5d31f1b2c7..2629d15b574f 100644 --- a/sd/source/ui/slidesorter/inc/view/SlsLayouter.hxx +++ b/sd/source/ui/slidesorter/inc/view/SlsLayouter.hxx @@ -66,7 +66,7 @@ public: const std::shared_ptr& rpTheme); ~Layouter(); - std::shared_ptr const & GetPageObjectLayouter() const; + PageObjectLayouter* GetPageObjectLayouter() const; /** Set the interval of valid column counts. When nMinimalColumnCount <= nMaximalColumnCount is not fulfilled then the call is ignored. @param nMinimalColumnCount diff --git a/sd/source/ui/slidesorter/view/SlideSorterView.cxx b/sd/source/ui/slidesorter/view/SlideSorterView.cxx index db01b437ec74..463a3bb38372 100644 --- a/sd/source/ui/slidesorter/view/SlideSorterView.cxx +++ b/sd/source/ui/slidesorter/view/SlideSorterView.cxx @@ -383,8 +383,7 @@ void SlideSorterView::Layout () pWindow->SetViewOrigin (aViewBox.TopLeft()); pWindow->SetViewSize (aViewBox.GetSize()); - std::shared_ptr pPageObjectLayouter( - mpLayouter->GetPageObjectLayouter()); + PageObjectLayouter* pPageObjectLayouter(mpLayouter->GetPageObjectLayouter()); if (pPageObjectLayouter) { const Size aNewPreviewSize (mpLayouter->GetPageObjectLayouter()->GetPreviewSize()); diff --git a/sd/source/ui/slidesorter/view/SlsInsertionIndicatorOverlay.cxx b/sd/source/ui/slidesorter/view/SlsInsertionIndicatorOverlay.cxx index a5f768bfb2f8..b6fa34d93ca9 100644 --- a/sd/source/ui/slidesorter/view/SlsInsertionIndicatorOverlay.cxx +++ b/sd/source/ui/slidesorter/view/SlsInsertionIndicatorOverlay.cxx @@ -105,7 +105,7 @@ void InsertionIndicatorOverlay::Create ( const sal_Int32 nSelectionCount) { view::Layouter& rLayouter (mrSlideSorter.GetView().GetLayouter()); - const std::shared_ptr& pPageObjectLayouter ( + view::PageObjectLayouter* pPageObjectLayouter ( rLayouter.GetPageObjectLayouter()); std::shared_ptr pTheme (mrSlideSorter.GetTheme()); const Size aOriginalPreviewSize (pPageObjectLayouter->GetPreviewSize()); diff --git a/sd/source/ui/slidesorter/view/SlsLayouter.cxx b/sd/source/ui/slidesorter/view/SlsLayouter.cxx index 81012c5c7b41..203e8a380bd8 100644 --- a/sd/source/ui/slidesorter/view/SlsLayouter.cxx +++ b/sd/source/ui/slidesorter/view/SlsLayouter.cxx @@ -59,7 +59,7 @@ public: /// rows. sal_Int32 mnMaxRowCount; Size maPageObjectSize; - std::shared_ptr mpPageObjectLayouter; + std::unique_ptr mpPageObjectLayouter; std::shared_ptr mpTheme; /** Specify how the gap between two page objects is associated with the @@ -303,9 +303,9 @@ Layouter::~Layouter() { } -std::shared_ptr const & Layouter::GetPageObjectLayouter() const +PageObjectLayouter* Layouter::GetPageObjectLayouter() const { - return mpImplementation->mpPageObjectLayouter; + return mpImplementation->mpPageObjectLayouter.get(); } void Layouter::SetColumnCount ( @@ -517,7 +517,7 @@ bool Layouter::Implementation::Rearrange ( } mpPageObjectLayouter = - std::make_shared( + std::make_unique( CalculateTargetSize(rWindowSize), rPreviewModelSize, mpWindow, diff --git a/sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx b/sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx index 8cd6d3e87cc9..417be4ddd581 100644 --- a/sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx +++ b/sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx @@ -67,7 +67,7 @@ void PageObjectPainter::PaintPageObject ( if (!UpdatePageObjectLayouter()) return; - PageObjectLayouter *pPageObjectLayouter = mrLayouter.GetPageObjectLayouter().get(); + PageObjectLayouter *pPageObjectLayouter = mrLayouter.GetPageObjectLayouter(); // Turn off antialiasing to avoid the bitmaps from being // shifted by fractions of a pixel and thus show blurry edges. const AntialiasingFlags nSavedAntialiasingMode (rDevice.GetAntialiasing()); @@ -86,7 +86,7 @@ bool PageObjectPainter::UpdatePageObjectLayouter() { // The page object layouter is quite volatile. It may have been replaced // since the last call. Update it now. - PageObjectLayouter *pPageObjectLayouter = mrLayouter.GetPageObjectLayouter().get(); + PageObjectLayouter *pPageObjectLayouter = mrLayouter.GetPageObjectLayouter(); if ( ! pPageObjectLayouter) { OSL_FAIL("no page object layouter"); @@ -185,7 +185,7 @@ BitmapEx PageObjectPainter::GetPreviewBitmap ( if (bIsExcluded) { - PageObjectLayouter *pPageObjectLayouter = mrLayouter.GetPageObjectLayouter().get(); + PageObjectLayouter *pPageObjectLayouter = mrLayouter.GetPageObjectLayouter(); BitmapEx aMarkedPreview (mpCache->GetMarkedPreviewBitmap(pPage)); const ::tools::Rectangle aPreviewBox (pPageObjectLayouter->GetBoundingBox(