[Libreoffice-commits] core.git: sw/source
Bjoern Michaelsen (via logerrit)
logerrit at kemper.freedesktop.org
Sat Nov 21 07:30:20 UTC 2020
sw/source/core/crsr/callnk.cxx | 5 +-
sw/source/core/inc/rowfrm.hxx | 3 +
sw/source/core/layout/tabfrm.cxx | 68 +++++++++++++++++++++++----------------
3 files changed, 45 insertions(+), 31 deletions(-)
New commits:
commit b28e514d5e0ea45490b3cab30e1d97dd3da2c794
Author: Bjoern Michaelsen <bjoern.michaelsen at libreoffice.org>
AuthorDate: Wed Nov 18 21:23:58 2020 +0100
Commit: Bjoern Michaelsen <bjoern.michaelsen at libreoffice.org>
CommitDate: Sat Nov 21 08:29:34 2020 +0100
callnk: Replace needless SwClientNotifyCall with CallSwClientNotify
Change-Id: Ie34f2b227e5986c1fc72c3d0ba84dae98b51b4c6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106081
Tested-by: Jenkins
Reviewed-by: Bjoern Michaelsen <bjoern.michaelsen at libreoffice.org>
diff --git a/sw/source/core/crsr/callnk.cxx b/sw/source/core/crsr/callnk.cxx
index d44ff1c8ed19..300691c950a0 100644
--- a/sw/source/core/crsr/callnk.cxx
+++ b/sw/source/core/crsr/callnk.cxx
@@ -85,9 +85,8 @@ static void lcl_notifyRow(const SwContentNode* pNode, SwCursorShell & rShell)
return;
}
- SwFormatFrameSize aSize = pLine->GetFrameFormat()->GetFrameSize();
- sw::BroadcastingModify aMod;
- pRow->SwClientNotifyCall(aMod, sw::LegacyModifyHint(nullptr, &aSize));
+ const SwFormatFrameSize aSize = pLine->GetFrameFormat()->GetFrameSize();
+ pRow->OnFrameSize(aSize);
}
SwCallLink::~SwCallLink() COVERITY_NOEXCEPT_FALSE
diff --git a/sw/source/core/inc/rowfrm.hxx b/sw/source/core/inc/rowfrm.hxx
index 505c0e635535..cde10cf8b305 100644
--- a/sw/source/core/inc/rowfrm.hxx
+++ b/sw/source/core/inc/rowfrm.hxx
@@ -52,7 +52,7 @@ class SwRowFrame : public SwLayoutFrame
protected:
virtual void MakeAll(vcl::RenderContext* pRenderContext) override;
- virtual void Modify(const SfxPoolItem*, const SfxPoolItem*) override;
+ virtual void SwClientNotify(const SwModify&, const SfxHint&) override;
public:
SwRowFrame(const SwTableLine&, SwFrame*, bool bInsertContent = true);
@@ -121,6 +121,7 @@ public:
// height to fit the rest of space.
bool IsInSplit() const { return m_bIsInSplit; }
void SetInSplit(bool bNew = true) { m_bIsInSplit = bNew; }
+ void OnFrameSize(const SwFormatFrameSize&);
};
#endif
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index 02f12c22db93..c49b0d4d3f0b 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -3849,40 +3849,54 @@ void SwRowFrame::RegistFlys( SwPageFrame *pPage )
::RegistFlys( pPage ? pPage : FindPageFrame(), this );
}
-void SwRowFrame::Modify( const SfxPoolItem* pOld, const SfxPoolItem * pNew )
+void SwRowFrame::OnFrameSize(const SwFormatFrameSize& rSize)
{
- bool bAttrSetChg = pNew && RES_ATTRSET_CHG == pNew->Which();
- const SfxPoolItem *pItem = nullptr;
+ SwTabFrame* pTab = FindTabFrame();
+ if(pTab)
+ {
+ const bool bInFirstNonHeadlineRow = pTab->IsFollow() && this == pTab->GetFirstNonHeadlineRow();
+ // #i35063#
+ // Invalidation required is pRow is last row
+ if(bInFirstNonHeadlineRow)
+ pTab = pTab->FindMaster();
+ if(bInFirstNonHeadlineRow || !GetNext())
+ pTab->InvalidatePos();
+ }
+ const sw::BroadcastingModify aMod;
+ SwLayoutFrame::SwClientNotify(aMod, sw::LegacyModifyHint(nullptr, &rSize));
+}
- if( bAttrSetChg )
+void SwRowFrame::SwClientNotify(const SwModify& rModify, const SfxHint& rHint)
+{
+ auto pLegacy = dynamic_cast<const sw::LegacyModifyHint*>(&rHint);
+ if(!pLegacy)
+ return;
+ if(!pLegacy->m_pNew)
{
- const SwAttrSet* pChgSet = static_cast<const SwAttrSetChg*>(pNew)->GetChgSet();
- pChgSet->GetItemState( RES_FRM_SIZE, false, &pItem);
- if ( !pItem )
- pChgSet->GetItemState( RES_ROW_SPLIT, false, &pItem);
+ // possibly not needed?
+ SwLayoutFrame::SwClientNotify(rModify, rHint);
+ return;
}
- else if (pNew && (RES_FRM_SIZE == pNew->Which() || RES_ROW_SPLIT == pNew->Which()))
- pItem = pNew;
-
- if ( pItem )
+ switch(pLegacy->m_pNew->Which())
{
- SwTabFrame *pTab = FindTabFrame();
- if ( pTab )
+ case RES_ATTRSET_CHG:
{
- const bool bInFirstNonHeadlineRow = pTab->IsFollow() &&
- this == pTab->GetFirstNonHeadlineRow();
- // #i35063#
- // Invalidation required is pRow is last row
- if ( bInFirstNonHeadlineRow || !GetNext() )
- {
- if ( bInFirstNonHeadlineRow )
- pTab = pTab->FindMaster();
- pTab->InvalidatePos();
- }
- }
+ const SwAttrSet* pChgSet = static_cast<const SwAttrSetChg*>(pLegacy->m_pNew)->GetChgSet();
+ const SfxPoolItem* pItem = nullptr;
+ pChgSet->GetItemState(RES_FRM_SIZE, false, &pItem);
+ if(!pItem)
+ pChgSet->GetItemState(RES_ROW_SPLIT, false, &pItem);
+ if(pItem)
+ OnFrameSize(*static_cast<const SwFormatFrameSize*>(pItem));
+ else
+ SwLayoutFrame::SwClientNotify(rModify, rHint); // possibly not needed?
+ return;
+ }
+ case RES_FRM_SIZE:
+ case RES_ROW_SPLIT:
+ OnFrameSize(*static_cast<const SwFormatFrameSize*>(pLegacy->m_pNew));
+ return;
}
-
- SwLayoutFrame::Modify( pOld, pNew );
}
void SwRowFrame::MakeAll(vcl::RenderContext* pRenderContext)
More information about the Libreoffice-commits
mailing list