[Libreoffice-commits] core.git: sw/inc sw/source
Bjoern Michaelsen (via logerrit)
logerrit at kemper.freedesktop.org
Thu Aug 12 11:11:02 UTC 2021
sw/inc/swtblfmt.hxx | 3 +++
sw/source/core/attr/cellatr.cxx | 16 ++++------------
sw/source/core/table/swtable.cxx | 16 ++++++++++------
sw/source/core/undo/unattr.cxx | 8 ++++----
4 files changed, 21 insertions(+), 22 deletions(-)
New commits:
commit 422150be82ed892ecf31a8ab76c1d1ca801dcda8
Author: Bjoern Michaelsen <bjoern.michaelsen at libreoffice.org>
AuthorDate: Sat Aug 7 12:08:07 2021 +0200
Commit: Bjoern Michaelsen <bjoern.michaelsen at libreoffice.org>
CommitDate: Thu Aug 12 13:10:12 2021 +0200
Capsulate TableBox<>TableBoxFormat relation in a function
Change-Id: I731e9bae04147f7453721661228e78a16ed585db
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120160
Tested-by: Jenkins
Reviewed-by: Bjoern Michaelsen <bjoern.michaelsen at libreoffice.org>
diff --git a/sw/inc/swtblfmt.hxx b/sw/inc/swtblfmt.hxx
index e61049919df1..a8ba7d31f630 100644
--- a/sw/inc/swtblfmt.hxx
+++ b/sw/inc/swtblfmt.hxx
@@ -60,6 +60,9 @@ class SAL_DLLPUBLIC_RTTI SwTableBoxFormat final: public SwFrameFormat
public:
virtual bool supportsFullDrawingLayerFillAttributeSet() const override;
+ SwTableBox* GetTableBox();
+ const SwTableBox* GetTableBox() const
+ { return const_cast<SwTableBoxFormat*>(this)->GetTableBox(); };
};
#endif
diff --git a/sw/source/core/attr/cellatr.cxx b/sw/source/core/attr/cellatr.cxx
index 09003a7fff64..3fdfb0772c6a 100644
--- a/sw/source/core/attr/cellatr.cxx
+++ b/sw/source/core/attr/cellatr.cxx
@@ -84,22 +84,14 @@ SwTableBoxFormula* SwTableBoxFormula::Clone( SfxItemPool* ) const
*/
const SwNode* SwTableBoxFormula::GetNodeOfFormula() const
{
- const SwNode* pRet = nullptr;
- if( m_pDefinedIn )
- {
- SwTableBox* pBox = SwIterator<SwTableBox,sw::BroadcastingModify>( *m_pDefinedIn ).First();
- if( pBox )
- pRet = pBox->GetSttNd();
- }
- return pRet;
+ auto pTableBox = GetTableBox();
+ return pTableBox ? pTableBox->GetSttNd() : nullptr;
}
SwTableBox* SwTableBoxFormula::GetTableBox()
{
- SwTableBox* pBox = nullptr;
- if( m_pDefinedIn )
- pBox = SwIterator<SwTableBox,sw::BroadcastingModify>( *m_pDefinedIn ).First();
- return pBox;
+ assert(!m_pDefinedIn || dynamic_cast<SwTableBoxFormat*>(m_pDefinedIn));
+ return m_pDefinedIn ? static_cast<SwTableBoxFormat*>(m_pDefinedIn)->GetTableBox() : nullptr;
}
void SwTableBoxFormula::ChangeState( const SfxPoolItem* pItem )
diff --git a/sw/source/core/table/swtable.cxx b/sw/source/core/table/swtable.cxx
index 5f633ef65546..3d595e2d614d 100644
--- a/sw/source/core/table/swtable.cxx
+++ b/sw/source/core/table/swtable.cxx
@@ -2273,6 +2273,15 @@ void SwTableBoxFormat::BoxAttributeChanged(SwTableBox& rBox, const SwTableBoxNum
ChgNumToText(rBox, nNewFormat);
}
+SwTableBox* SwTableBoxFormat::SwTableBoxFormat::GetTableBox()
+{
+ SwIterator<SwTableBox,SwFormat> aIter(*this);
+ auto pBox = aIter.First();
+ SAL_INFO_IF(!pBox, "sw.core", "no box found at format");
+ SAL_WARN_IF(pBox && aIter.Next(), "sw.core", "more than one box found at format");
+ return pBox;
+}
+
// for detection of modifications (mainly TableBoxAttribute)
void SwTableBoxFormat::SwClientNotify(const SwModify& rMod, const SfxHint& rHint)
{
@@ -2321,12 +2330,7 @@ void SwTableBoxFormat::SwClientNotify(const SwModify& rMod, const SfxHint& rHint
SfxItemState::SET == GetItemState(RES_BOXATR_VALUE, false) ||
SfxItemState::SET == GetItemState(RES_BOXATR_FORMULA, false) )
{
- // fetch the box
- SwIterator<SwTableBox,SwFormat> aIter(*this);
- SwTableBox* pBox = aIter.First();
- SAL_INFO_IF(!pBox, "sw.core", "no box found at format");
- SAL_WARN_IF(pBox && aIter.Next(), "sw.core", "more than one box found at format");
- if(pBox)
+ if(auto pBox = GetTableBox())
BoxAttributeChanged(*pBox, pNewFormat, pNewFormula, pNewVal, nOldFormat);
}
}
diff --git a/sw/source/core/undo/unattr.cxx b/sw/source/core/undo/unattr.cxx
index cbd9fe52cd99..5329f1c00c59 100644
--- a/sw/source/core/undo/unattr.cxx
+++ b/sw/source/core/undo/unattr.cxx
@@ -141,11 +141,11 @@ void SwUndoFormatAttr::Init( const SwFormat & rFormat )
}
} else if (dynamic_cast<const SwSectionFormat*>(&rFormat)) {
m_nNodeIndex = rFormat.GetContent().GetContentIdx()->GetIndex();
- } else if ( dynamic_cast< const SwTableBoxFormat* >( &rFormat ) != nullptr ) {
- SwTableBox * pTableBox = SwIterator<SwTableBox,SwFormat>( rFormat ).First();
- if ( pTableBox ) {
+ } else if(auto pBoxFormat = dynamic_cast<const SwTableBoxFormat*>(&rFormat))
+ {
+ auto pTableBox = pBoxFormat->GetTableBox();
+ if(pTableBox)
m_nNodeIndex = pTableBox->GetSttIdx();
- }
}
}
}
More information about the Libreoffice-commits
mailing list