sw/inc/swtable.hxx | 15 ++++++--------- sw/source/core/doc/tblcpy.cxx | 4 ++-- sw/source/core/doc/tblrwcl.cxx | 28 ++++++++++++++-------------- sw/source/core/fields/cellfml.cxx | 2 +- sw/source/core/frmedt/tblsel.cxx | 11 ++++------- sw/source/core/table/swnewtable.cxx | 2 +- sw/source/core/table/swtable.cxx | 8 +++----- sw/source/filter/ww8/wrtw8nds.cxx | 2 +- sw/source/filter/ww8/ww8atr.cxx | 2 +- sw/source/ui/vba/vbatablehelper.cxx | 5 +---- 10 files changed, 34 insertions(+), 45 deletions(-)
New commits: commit a4ae9b147d0a83b811836757e9634a884260cee8 Author: Bjoern Michaelsen <bjoern.michael...@canonical.com> Date: Thu May 19 16:15:53 2016 +0200 tdf#75757: remove inheritance on vector (SwTableBoxes) - move SwTableBoxes::GetPos(..) up to SwTableLine::GetBoxPos(..) - SwTableBoxes is empty over plain vector then, make it an alias Change-Id: I72420d4fe1042a713d3e82f3df66f18ccbfca3f6 Reviewed-on: https://gerrit.libreoffice.org/25166 Reviewed-by: Björn Michaelsen <bjoern.michael...@canonical.com> Tested-by: Björn Michaelsen <bjoern.michael...@canonical.com> diff --git a/sw/inc/swtable.hxx b/sw/inc/swtable.hxx index 37d488c..16c8fd4 100644 --- a/sw/inc/swtable.hxx +++ b/sw/inc/swtable.hxx @@ -75,15 +75,7 @@ public: } }; -class SwTableBoxes : public std::vector<SwTableBox*> { -public: - // return USHRT_MAX if not found, else index of position - sal_uInt16 GetPos(const SwTableBox* pBox) const - { - const_iterator it = std::find(begin(), end(), pBox); - return it == end() ? USHRT_MAX : it - begin(); - } -}; +using SwTableBoxes = std::vector<SwTableBox*>; // Save content-bearing box-pointers additionally in a sorted array // (for calculation in table). @@ -355,6 +347,11 @@ public: SwTableBoxes &GetTabBoxes() { return m_aBoxes; } const SwTableBoxes &GetTabBoxes() const { return m_aBoxes; } + sal_uInt16 GetBoxPos(const SwTableBox* pBox) const + { + SwTableBoxes::const_iterator it = std::find(m_aBoxes.begin(), m_aBoxes.end(), pBox); + return it == m_aBoxes.end() ? USHRT_MAX : it - m_aBoxes.begin(); + } SwTableBox *GetUpper() { return m_pUpper; } const SwTableBox *GetUpper() const { return m_pUpper; } diff --git a/sw/source/core/doc/tblcpy.cxx b/sw/source/core/doc/tblcpy.cxx index 41e44f1..5bb7565 100644 --- a/sw/source/core/doc/tblcpy.cxx +++ b/sw/source/core/doc/tblcpy.cxx @@ -857,7 +857,7 @@ bool SwTable::InsTable( const SwTable& rCpyTable, const SwSelBoxes& rSelBoxes, SwTableLine* pLastLn = GetTabLines().back(); SwTableBox* pSttBox = pFLine->GetBoxes()[0]->GetBox(); - const SwTableBoxes::size_type nSttBox = pFLine->GetLine()->GetTabBoxes().GetPos( pSttBox ); + const SwTableBoxes::size_type nSttBox = pFLine->GetLine()->GetBoxPos( pSttBox ); for( SwTableLines::size_type n = rCpyTable.GetTabLines().size() - nNewLns; n < rCpyTable.GetTabLines().size(); ++n ) { @@ -901,7 +901,7 @@ bool SwTable::InsTable( const SwTable& rCpyTable, const SwSelBoxes& rSelBoxes, pFLine = aFndBox.GetLines()[ nLn % nFndCnt ].get(); SwTableLine* pLine = pFLine->GetLine(); SwTableBox* pSttBox = pFLine->GetBoxes()[0]->GetBox(); - const SwTableBoxes::size_type nSttBox = pLine->GetTabBoxes().GetPos( pSttBox ); + const SwTableBoxes::size_type nSttBox = pLine->GetBoxPos( pSttBox ); if( nLn >= nFndCnt ) { // We have more rows in the ClipBoard than we have selected diff --git a/sw/source/core/doc/tblrwcl.cxx b/sw/source/core/doc/tblrwcl.cxx index 566457e..c719389 100644 --- a/sw/source/core/doc/tblrwcl.cxx +++ b/sw/source/core/doc/tblrwcl.cxx @@ -468,7 +468,7 @@ static void lcl_InsCol( FndLine_* pFndLn, CpyPara& rCpyPara, sal_uInt16 nCpyCnt, rCpyPara.pInsLine = pFndLn->GetLine(); SwTableBox* pBox = pFndLn->GetBoxes()[ bBehind ? pFndLn->GetBoxes().size()-1 : 0 ]->GetBox(); - rCpyPara.nInsPos = pFndLn->GetLine()->GetTabBoxes().GetPos( pBox ); + rCpyPara.nInsPos = pFndLn->GetLine()->GetBoxPos( pBox ); if( bBehind ) ++rCpyPara.nInsPos; @@ -702,7 +702,7 @@ void DeleteBox_( SwTable& rTable, SwTableBox* pBox, SwUndo* pUndo, pBox->GetFrameFormat()->GetFrameSize().GetWidth() : 0; SwTableLine* pLine = pBox->GetUpper(); SwTableBoxes& rTableBoxes = pLine->GetTabBoxes(); - sal_uInt16 nDelPos = rTableBoxes.GetPos( pBox ); + sal_uInt16 nDelPos = pLine->GetBoxPos( pBox ); SwTableBox* pUpperBox = pBox->GetUpper()->GetUpper(); // Special treatment for the border: @@ -912,7 +912,7 @@ lcl_SaveUpperLowerBorder( SwTable& rTable, const SwTableBox& rBox, const SwTableLine* pLine = rBox.GetUpper(); const SwTableBoxes& rTableBoxes = pLine->GetTabBoxes(); const SwTableBox* pUpperBox = &rBox; - sal_uInt16 nDelPos = rTableBoxes.GetPos( pUpperBox ); + sal_uInt16 nDelPos = pLine->GetBoxPos( pUpperBox ); pUpperBox = rBox.GetUpper()->GetUpper(); const SvxBoxItem& rBoxItem = rBox.GetFrameFormat()->GetBox(); @@ -1105,7 +1105,7 @@ bool SwTable::OldSplitRow( SwDoc* pDoc, const SwSelBoxes& rBoxes, sal_uInt16 nCn (nCnt + 1) ); SwTableBox* pNewBox = new SwTableBox( pFrameFormat, nCnt, pInsLine ); - sal_uInt16 nBoxPos = pInsLine->GetTabBoxes().GetPos( pSelBox ); + sal_uInt16 nBoxPos = pInsLine->GetBoxPos( pSelBox ); pInsLine->GetTabBoxes()[nBoxPos] = pNewBox; // overwrite old one // Delete background/border attribute @@ -1226,7 +1226,7 @@ bool SwTable::SplitCol( SwDoc* pDoc, const SwSelBoxes& rBoxes, sal_uInt16 nCnt ) // Then split the nCnt Box up into nCnt Boxes SwTableLine* pInsLine = pSelBox->GetUpper(); - sal_uInt16 nBoxPos = pInsLine->GetTabBoxes().GetPos( pSelBox ); + sal_uInt16 nBoxPos = pInsLine->GetBoxPos( pSelBox ); // Find the Frame Format in the Frame Format Array SwTableBoxFormat* pLastBoxFormat; @@ -1402,12 +1402,12 @@ static void lcl_Merge_MoveBox(FndBox_ & rFndBox, InsULPara *const pULPara) if( pULPara->bUL ) // Left ? { // if there are Boxes before it, move them - if( 0 != ( nPos = pBoxes->GetPos( pFndTableBox ) ) ) + if( 0 != ( nPos = pFndTableBox->GetUpper()->GetBoxPos( pFndTableBox ) ) ) lcl_CpyBoxes( 0, nPos, *pBoxes, pULPara->pInsLine ); } else // Right // if there are Boxes behind it, move them - if( (nPos = pBoxes->GetPos( pFndTableBox )) +1 < (sal_uInt16)pBoxes->size() ) + if( (nPos = pFndTableBox->GetUpper()->GetBoxPos( pFndTableBox )) +1 < (sal_uInt16)pBoxes->size() ) { nInsPos = pULPara->pInsLine->GetTabBoxes().size(); lcl_CpyBoxes( nPos+1, pBoxes->size(), @@ -1465,8 +1465,8 @@ static void lcl_Merge_MoveLine(FndLine_& rFndLine, InsULPara *const pULPara) SwTableBox* pLBx = rFndLine.GetBoxes().front()->GetBox(); SwTableBox* pRBx = rFndLine.GetBoxes().back()->GetBox(); - sal_uInt16 nLeft = pFndLn->GetTabBoxes().GetPos( pLBx ); - sal_uInt16 nRight = pFndLn->GetTabBoxes().GetPos( pRBx ); + sal_uInt16 nLeft = pFndLn->GetBoxPos( pLBx ); + sal_uInt16 nRight = pFndLn->GetBoxPos( pRBx ); if( !nLeft || nRight == pFndLn->GetTabBoxes().size() ) { @@ -2216,7 +2216,7 @@ SwTableBox* SwTableLine::FindNextBox( const SwTable& rTable, SwTableBox* pBox; sal_uInt16 nFndPos; if( !GetTabBoxes().empty() && pSrchBox && - USHRT_MAX != ( nFndPos = GetTabBoxes().GetPos( pSrchBox )) && + USHRT_MAX != ( nFndPos = GetBoxPos( pSrchBox )) && nFndPos + 1 != (sal_uInt16)GetTabBoxes().size() ) { pBox = GetTabBoxes()[ nFndPos + 1 ]; @@ -2264,7 +2264,7 @@ SwTableBox* SwTableLine::FindPreviousBox( const SwTable& rTable, SwTableBox* pBox; sal_uInt16 nFndPos; if( !GetTabBoxes().empty() && pSrchBox && - USHRT_MAX != ( nFndPos = GetTabBoxes().GetPos( pSrchBox )) && + USHRT_MAX != ( nFndPos = GetBoxPos( pSrchBox )) && nFndPos ) { pBox = GetTabBoxes()[ nFndPos - 1 ]; @@ -2354,7 +2354,7 @@ static SwTwips lcl_GetDistance( SwTableBox* pBox, bool bLeft ) SwTableLine* pLine; while( pBox && nullptr != ( pLine = pBox->GetUpper() ) ) { - sal_uInt16 nStt = 0, nPos = pLine->GetTabBoxes().GetPos( pBox ); + sal_uInt16 nStt = 0, nPos = pLine->GetBoxPos( pBox ); if( bFirst && !bLeft ) ++nPos; @@ -2767,7 +2767,7 @@ static bool lcl_InsOtherBox( SwTableLine* pLine, CR_SetBoxWidth& rParam, while( !nBoxPos && pTmpBox->GetUpper()->GetUpper() ) { pTmpBox = pTmpBox->GetUpper()->GetUpper(); - nBoxPos = pTmpBox->GetUpper()->GetTabBoxes().GetPos( pTmpBox ); + nBoxPos = pTmpBox->GetUpper()->GetBoxPos( pTmpBox ); } nTmpWidth = pTmpBox->GetFrameFormat()->GetFrameSize().GetWidth(); } @@ -3760,7 +3760,7 @@ bool SwTable::SetColWidth( SwTableBox& rAktBox, sal_uInt16 eType, SwTableLine* pLine = rAktBox.GetUpper(); while( pLine->GetUpper() ) { - const SwTableBoxes::size_type nPos = pLine->GetTabBoxes().GetPos( pBox ); + const SwTableBoxes::size_type nPos = pLine->GetBoxPos( pBox ); if( bLeft ? nPos != 0 : nPos + 1 != pLine->GetTabBoxes().size() ) break; diff --git a/sw/source/core/fields/cellfml.cxx b/sw/source/core/fields/cellfml.cxx index a2f4d50..bbb33f9 100644 --- a/sw/source/core/fields/cellfml.cxx +++ b/sw/source/core/fields/cellfml.cxx @@ -776,7 +776,7 @@ static const SwTableBox* lcl_RelToBox( const SwTable& rTable, pBox = pLine->GetUpper(); pLine = pBox->GetUpper(); } - sal_uInt16 nSttBox = pLine->GetTabBoxes().GetPos( pBox ); + sal_uInt16 nSttBox = pLine->GetBoxPos( pBox ); sal_uInt16 nSttLine = rTable.GetTabLines().GetPos( pLine ); const sal_Int32 nBoxOffset = lcl_GetLongBoxNum( sGetName ) + nSttBox; diff --git a/sw/source/core/frmedt/tblsel.cxx b/sw/source/core/frmedt/tblsel.cxx index 16a9531..e07b72e 100644 --- a/sw/source/core/frmedt/tblsel.cxx +++ b/sw/source/core/frmedt/tblsel.cxx @@ -968,8 +968,7 @@ void GetMergeSel( const SwPaM& rPam, SwSelBoxes& rBoxes, { if( ( rUnion.Right() + COLFUZZY ) < pCell->Frame().Right() ) { - sal_uInt16 nInsPos = pBox->GetUpper()-> - GetTabBoxes().GetPos( pBox )+1; + sal_uInt16 nInsPos = pBox->GetUpper()->GetBoxPos( pBox )+1; lcl_InsTableBox( pTableNd, pDoc, pBox, nInsPos ); pBox->ClaimFrameFormat(); SwFormatFrameSize aNew( @@ -1009,8 +1008,7 @@ void GetMergeSel( const SwPaM& rPam, SwSelBoxes& rBoxes, else if( ( rUnion.Left() - COLFUZZY ) >= pCell->Frame().Left() && ( rUnion.Right() + COLFUZZY ) < pCell->Frame().Right() ) { - sal_uInt16 nInsPos = pBox->GetUpper()->GetTabBoxes().GetPos( - pBox )+1; + sal_uInt16 nInsPos = pBox->GetUpper()->GetBoxPos( pBox )+1; lcl_InsTableBox( pTableNd, pDoc, pBox, nInsPos, 2 ); pBox->ClaimFrameFormat(); SwFormatFrameSize aNew( @@ -1066,8 +1064,7 @@ void GetMergeSel( const SwPaM& rPam, SwSelBoxes& rBoxes, ( pCell->Frame().Left() + COLFUZZY ) < rUnion.Left() ) { // then we should insert a new box and adjust the widths - sal_uInt16 nInsPos = pBox->GetUpper()->GetTabBoxes().GetPos( - pBox )+1; + sal_uInt16 nInsPos = pBox->GetUpper()->GetBoxPos( pBox )+1; lcl_InsTableBox( pTableNd, pDoc, pBox, nInsPos ); SwFormatFrameSize aNew(pBox->GetFrameFormat()->GetFrameSize() ); @@ -1301,7 +1298,7 @@ void GetMergeSel( const SwPaM& rPam, SwSelBoxes& rBoxes, { SwTableBox* pTmpBox = rBoxes[0]; SwTableLine* pInsLine = pTmpBox->GetUpper(); - sal_uInt16 nInsPos = pInsLine->GetTabBoxes().GetPos( pTmpBox ); + sal_uInt16 nInsPos = pInsLine->GetBoxPos( pTmpBox ); lcl_InsTableBox( pTableNd, pDoc, pTmpBox, nInsPos ); (*ppMergeBox) = pInsLine->GetTabBoxes()[ nInsPos ]; diff --git a/sw/source/core/table/swnewtable.cxx b/sw/source/core/table/swnewtable.cxx index 2f4038e..a456fdc 100644 --- a/sw/source/core/table/swnewtable.cxx +++ b/sw/source/core/table/swnewtable.cxx @@ -616,7 +616,7 @@ static long lcl_InsertPosition( SwTable &rTable, std::vector<sal_uInt16>& rInsPo SwTableLine* pLine = pBox->GetUpper(); long nWidth = rBoxes[j]->GetFrameFormat()->GetFrameSize().GetWidth(); nAddWidth += nWidth; - sal_uInt16 nCurrBox = pLine->GetTabBoxes().GetPos( pBox ); + sal_uInt16 nCurrBox = pLine->GetBoxPos( pBox ); sal_uInt16 nCurrLine = rTable.GetTabLines().GetPos( pLine ); OSL_ENSURE( nCurrLine != USHRT_MAX, "Time to say Good-Bye.." ); if( rInsPos[ nCurrLine ] == USHRT_MAX ) diff --git a/sw/source/core/table/swtable.cxx b/sw/source/core/table/swtable.cxx index 3f997d7..3360692 100644 --- a/sw/source/core/table/swtable.cxx +++ b/sw/source/core/table/swtable.cxx @@ -736,8 +736,8 @@ static void lcl_ProcessBoxSet( SwTableBox *pBox, Parm &rParm ) if( pBox->getRowSpan() == 1 ) { + const sal_uInt16 nPos = pBox->GetUpper()->GetBoxPos( pBox ); SwTableBoxes& rTableBoxes = pBox->GetUpper()->GetTabBoxes(); - const sal_uInt16 nPos = rTableBoxes.GetPos( pBox ); if( nPos && rTableBoxes[ nPos - 1 ]->getRowSpan() != 1 ) nLeftDiff = 0; if( nPos + 1 < (sal_uInt16)rTableBoxes.size() && @@ -1827,14 +1827,13 @@ Point SwTableBox::GetCoordinates() const sal_uInt16 nX, nY; const SwTableBox* pBox = this; do { - const SwTableBoxes* pBoxes = &pBox->GetUpper()->GetTabBoxes(); const SwTableLine* pLine = pBox->GetUpper(); // at the first level? const SwTableLines* pLines = pLine->GetUpper() ? &pLine->GetUpper()->GetTabLines() : &rTable.GetTabLines(); nY = pLines->GetPos( pLine ) + 1 ; - nX = pBoxes->GetPos( pBox ) + 1 ; + nX = pBox->GetUpper()->GetBoxPos( pBox ) + 1; pBox = pLine->GetUpper(); } while( pBox ); return Point( nX, nY ); @@ -1853,7 +1852,6 @@ OUString SwTableBox::GetName() const OUString sNm, sTmp; const SwTableBox* pBox = this; do { - const SwTableBoxes* pBoxes = &pBox->GetUpper()->GetTabBoxes(); const SwTableLine* pLine = pBox->GetUpper(); // at the first level? const SwTableLines* pLines = pLine->GetUpper() @@ -1865,7 +1863,7 @@ OUString SwTableBox::GetName() const else sNm = sTmp; - sTmp = OUString::number(( nPos = pBoxes->GetPos( pBox )) + 1 ); + sTmp = OUString::number(( nPos = pBox->GetUpper()->GetBoxPos( pBox )) + 1 ); if( nullptr != ( pBox = pLine->GetUpper()) ) sNm = sTmp + "." + sNm; else diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx index 3152878..cb57189 100644 --- a/sw/source/filter/ww8/wrtw8nds.cxx +++ b/sw/source/filter/ww8/wrtw8nds.cxx @@ -2698,7 +2698,7 @@ void MSWordExportBase::OutputTextNode( const SwTextNode& rNode ) if ( pLine && !pLine->GetUpper() ) { // check if box is first in that line: - if ( 0 == pLine->GetTabBoxes().GetPos( pBox ) && pBox->GetSttNd() ) + if ( 0 == pLine->GetBoxPos( pBox ) && pBox->GetSttNd() ) { // check if paragraph is first in that line: if ( 1 == ( rNode.GetIndex() - pBox->GetSttNd()->GetIndex() ) ) diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx index 5cd5297..ebd51df 100644 --- a/sw/source/filter/ww8/ww8atr.cxx +++ b/sw/source/filter/ww8/ww8atr.cxx @@ -464,7 +464,7 @@ void MSWordExportBase::OutputSectionBreaks( const SfxItemSet *pSet, const SwNode if ( pLine && !pLine->GetUpper() ) { // check if box is not first in that line: - if ( 0 < pLine->GetTabBoxes().GetPos( pBox ) && pBox->GetSttNd() ) + if ( 0 < pLine->GetBoxPos( pBox ) && pBox->GetSttNd() ) { bRemoveHardBreakInsideTable = true; } diff --git a/sw/source/ui/vba/vbatablehelper.cxx b/sw/source/ui/vba/vbatablehelper.cxx index 7ba020d..62b81ae 100644 --- a/sw/source/ui/vba/vbatablehelper.cxx +++ b/sw/source/ui/vba/vbatablehelper.cxx @@ -87,13 +87,10 @@ sal_Int32 SwVbaTableHelper::getTabRowIndex( const OUString& rCellName ) throw (u sal_Int32 SwVbaTableHelper::getTabColIndex( const OUString& rCellName ) throw (uno::RuntimeException) { - sal_Int32 nRet = 0; const SwTableBox* pBox = pTable->GetTableBox( rCellName ); if( !pBox ) throw uno::RuntimeException(); - const SwTableBoxes* pBoxes = &pBox->GetUpper()->GetTabBoxes(); - nRet = pBoxes->GetPos( pBox ); - return nRet; + return pBox->GetUpper()->GetBoxPos( pBox ); } OUString SwVbaTableHelper::getColumnStr( sal_Int32 nCol )
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits