include/svx/svdpage.hxx | 6 +++--- svx/source/svdraw/svdpage.cxx | 41 +++++++++++++++++++++-------------------- 2 files changed, 24 insertions(+), 23 deletions(-)
New commits: commit f9dde340ff99f55ce0035f7f5a5c66e423c73b50 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Mon Jun 2 08:02:08 2025 +0200 Commit: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> CommitDate: Mon Jun 2 08:02:08 2025 +0200 svx: store a ref to SdrPage, not a pointer in SdrPageProperties The constructor already takes a reference to SdrPage, but for some reason we store a pointer and then later we check if the pointer is not nullptr in some cases, which shouldn't be required. This changes the the pointer to reference and it simplifies the code a bit. Change-Id: Ib49f514d95e52a078eb55f08bfaaa70fecbea083 diff --git a/include/svx/svdpage.hxx b/include/svx/svdpage.hxx index 72c0c4a11ae4..67ef7e9ccfc2 100644 --- a/include/svx/svdpage.hxx +++ b/include/svx/svdpage.hxx @@ -326,10 +326,10 @@ class SVXCORE_DLLPUBLIC SdrPageProperties final : public SfxListener, public svl { private: // data - SdrPage* mpSdrPage; - SfxStyleSheet* mpStyleSheet; + SdrPage& mrSdrPage; + SfxStyleSheet* mpStyleSheet; std::shared_ptr<model::Theme> mpTheme; - SfxItemSet maProperties; + SfxItemSet maProperties; // internal helpers void ImpRemoveStyleSheet(); diff --git a/svx/source/svdraw/svdpage.cxx b/svx/source/svdraw/svdpage.cxx index 6ca2cac9eeef..37f9c1739219 100644 --- a/svx/source/svdraw/svdpage.cxx +++ b/svx/source/svdraw/svdpage.cxx @@ -1197,7 +1197,10 @@ void SdrPageProperties::ImpAddStyleSheet(SfxStyleSheet& rNewStyleSheet) } } -static void ImpPageChange(SdrPage& rSdrPage) +namespace +{ + +void ImpPageChange(SdrPage& rSdrPage) { rSdrPage.ActionChanged(); rSdrPage.getSdrModelFromSdrPage().SetChanged(); @@ -1205,14 +1208,16 @@ static void ImpPageChange(SdrPage& rSdrPage) rSdrPage.getSdrModelFromSdrPage().Broadcast(aHint); } +} // end anonymous namespace + SdrPageProperties::SdrPageProperties(SdrPage& rSdrPage) - : mpSdrPage(&rSdrPage) + : mrSdrPage(rSdrPage) , mpStyleSheet(nullptr) , maProperties( - mpSdrPage->getSdrModelFromSdrPage().GetItemPool(), + mrSdrPage.getSdrModelFromSdrPage().GetItemPool(), svl::Items<XATTR_FILL_FIRST, XATTR_FILL_LAST>) { - if (!rSdrPage.IsMasterPage()) + if (!mrSdrPage.IsMasterPage()) { maProperties.Put(XFillStyleItem(drawing::FillStyle_NONE)); } @@ -1230,7 +1235,7 @@ void SdrPageProperties::Notify(SfxBroadcaster& /*rBC*/, const SfxHint& rHint) case SfxHintId::DataChanged : { // notify change, broadcast - ImpPageChange(*mpSdrPage); + ImpPageChange(mrSdrPage); break; } case SfxHintId::Dying : @@ -1245,29 +1250,28 @@ void SdrPageProperties::Notify(SfxBroadcaster& /*rBC*/, const SfxHint& rHint) bool SdrPageProperties::isUsedByModel() const { - assert(mpSdrPage); - return mpSdrPage->IsInserted(); + return mrSdrPage.IsInserted(); } void SdrPageProperties::PutItemSet(const SfxItemSet& rSet) { - OSL_ENSURE(!mpSdrPage->IsMasterPage(), "Item set at MasterPage Attributes (!)"); + OSL_ENSURE(!mrSdrPage.IsMasterPage(), "Item set at MasterPage Attributes (!)"); maProperties.Put(rSet); - ImpPageChange(*mpSdrPage); + ImpPageChange(mrSdrPage); } void SdrPageProperties::PutItem(const SfxPoolItem& rItem) { - OSL_ENSURE(!mpSdrPage->IsMasterPage(), "Item set at MasterPage Attributes (!)"); + OSL_ENSURE(!mrSdrPage.IsMasterPage(), "Item set at MasterPage Attributes (!)"); maProperties.Put(rItem); - ImpPageChange(*mpSdrPage); + ImpPageChange(mrSdrPage); } void SdrPageProperties::ClearItem(const sal_uInt16 nWhich) { maProperties.ClearItem(nWhich); - ImpPageChange(*mpSdrPage); + ImpPageChange(mrSdrPage); } void SdrPageProperties::SetStyleSheet(SfxStyleSheet* pStyleSheet) @@ -1281,24 +1285,21 @@ void SdrPageProperties::SetStyleSheet(SfxStyleSheet* pStyleSheet) ImpRemoveStyleSheet(); } - ImpPageChange(*mpSdrPage); + ImpPageChange(mrSdrPage); } void SdrPageProperties::setTheme(std::shared_ptr<model::Theme> const& pTheme) { - if (!mpSdrPage) - return; - // Only set the theme on a master page, else set it on the model - if (mpSdrPage->IsMasterPage()) + if (mrSdrPage.IsMasterPage()) { if (mpTheme != pTheme) mpTheme = pTheme; } else { - mpSdrPage->getSdrModelFromSdrPage().setTheme(pTheme); + mrSdrPage.getSdrModelFromSdrPage().setTheme(pTheme); } } @@ -1308,8 +1309,8 @@ std::shared_ptr<model::Theme> const& SdrPageProperties::getTheme() const if (mpTheme) return mpTheme; // else the model theme - else if (mpSdrPage) - return mpSdrPage->getSdrModelFromSdrPage().getTheme(); + else + return mrSdrPage.getSdrModelFromSdrPage().getTheme(); // else return empty shared_ptr return mpTheme; }