summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2014-07-22 13:01:36 +0200
committerJan-Marek Glogowski <glogow@fbihome.de>2014-09-30 09:56:34 +0200
commitdd2aad957d1b65d9a3d0920ef558f0da071f9aa0 (patch)
tree79caba1fce2091bab6b72dae87616db050420ec6
parent868a72a9392789f78cd1bc5842d3847e803e5235 (diff)
Drop local FindPageDescByName implementations
There are quite some place, which manually walk the vector of SwPageDesc to find the named item. Replace all of them. (cherry picked from commit feb3b0c0b1d7fe2cce55954895a8f7cdccc61605) Conflicts: sw/source/core/doc/docfmt.cxx sw/source/core/unocore/unosett.cxx sw/source/core/unocore/unostyle.cxx Change-Id: I7ade35b78d8208dc00ee56a8f83c3ebadaebb8af
-rw-r--r--sw/source/core/crsr/crstrvl.cxx19
-rw-r--r--sw/source/core/doc/docfmt.cxx41
-rw-r--r--sw/source/core/frmedt/fedesc.cxx17
-rw-r--r--sw/source/core/unocore/unosett.cxx12
-rw-r--r--sw/source/core/unocore/unostyle.cxx17
-rw-r--r--sw/source/filter/html/htmlcss1.cxx14
6 files changed, 41 insertions, 79 deletions
diff --git a/sw/source/core/crsr/crstrvl.cxx b/sw/source/core/crsr/crstrvl.cxx
index a206d0c0a485..5e911bf4de67 100644
--- a/sw/source/core/crsr/crstrvl.cxx
+++ b/sw/source/core/crsr/crstrvl.cxx
@@ -215,6 +215,7 @@ sal_Bool SwCrsrShell::SetCrsrInHdFt( sal_uInt16 nDescNo, sal_Bool bInHeader )
{
sal_Bool bRet = sal_False;
SwDoc *pMyDoc = GetDoc();
+ const SwPageDesc* rDesc = NULL;
SET_CURR_SHELL( this );
@@ -223,30 +224,26 @@ sal_Bool SwCrsrShell::SetCrsrInHdFt( sal_uInt16 nDescNo, sal_Bool bInHeader )
// take the current one
const SwPageFrm* pPage = GetCurrFrm()->FindPageFrm();
if( pPage )
- for( sal_uInt16 i = 0; i < pMyDoc->GetPageDescCnt(); ++i )
- if( pPage->GetPageDesc() == &pMyDoc->GetPageDesc( i ) )
- {
- nDescNo = i;
- break;
- }
+ rDesc = pMyDoc->FindPageDescByName( pPage->GetPageDesc()->GetName(), &nDescNo );
}
+ else
+ if (nDescNo < pMyDoc->GetPageDescCnt())
+ rDesc = &pMyDoc->GetPageDesc( nDescNo );
- if( USHRT_MAX != nDescNo && nDescNo < pMyDoc->GetPageDescCnt() )
+ if( rDesc )
{
// check if the attribute exists
- const SwPageDesc& rDesc = const_cast<const SwDoc *>(pMyDoc)
- ->GetPageDesc( nDescNo );
const SwFmtCntnt* pCnt = 0;
if( bInHeader )
{
// mirrored pages? ignore for now
- const SwFmtHeader& rHd = rDesc.GetMaster().GetHeader();
+ const SwFmtHeader& rHd = rDesc->GetMaster().GetHeader();
if( rHd.GetHeaderFmt() )
pCnt = &rHd.GetHeaderFmt()->GetCntnt();
}
else
{
- const SwFmtFooter& rFt = rDesc.GetMaster().GetFooter();
+ const SwFmtFooter& rFt = rDesc->GetMaster().GetFooter();
if( rFt.GetFooterFmt() )
pCnt = &rFt.GetFooterFmt()->GetCntnt();
}
diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx
index 5bf782693cc1..11de2dc5de1c 100644
--- a/sw/source/core/doc/docfmt.cxx
+++ b/sw/source/core/doc/docfmt.cxx
@@ -1934,17 +1934,6 @@ SwGrfFmtColl* SwDoc::CopyGrfColl( const SwGrfFmtColl& rColl )
return pNewColl;
}
-static SwPageDesc* lcl_FindPageDesc( const SwPageDescs& rArr, const String& rName )
-{
- for( sal_uInt16 n = rArr.size(); n; )
- {
- SwPageDesc* pDesc = rArr[ --n ];
- if( pDesc->GetName() == rName )
- return pDesc;
- }
- return 0;
-}
-
void SwDoc::CopyFmtArr( const SwFmtsBase& rSourceArr,
SwFmtsBase& rDestArr,
FNCopyFmt fnCopyFmt,
@@ -1989,12 +1978,13 @@ void SwDoc::CopyFmtArr( const SwFmtsBase& rSourceArr,
((SwFmtPageDesc*)pItem)->GetPageDesc() )
{
SwFmtPageDesc aPageDesc( *(SwFmtPageDesc*)pItem );
- const String& rNm = aPageDesc.GetPageDesc()->GetName();
- SwPageDesc* pPageDesc = ::lcl_FindPageDesc( maPageDescs, rNm );
- if( !pPageDesc )
- {
- pPageDesc = MakePageDesc(rNm);
- }
+ SwPageDesc *sPageDesc = aPageDesc.GetPageDesc();;
+ SwPageDescs::const_iterator it = maPageDescs.find( sPageDesc );
+ SwPageDesc *pPageDesc;
+ if( it == maPageDescs.end() )
+ pPageDesc = MakePageDesc( sPageDesc->GetName() );
+ else
+ pPageDesc = const_cast<SwPageDesc*>( *it );
aPageDesc.RegisterToPageDesc( *pPageDesc );
SwAttrSet aTmpAttrSet( pSrc->GetAttrSet() );
aTmpAttrSet.Put( aPageDesc );
@@ -2117,14 +2107,17 @@ void SwDoc::CopyPageDesc( const SwPageDesc& rSrcDesc, SwPageDesc& rDstDesc,
if( rSrcDesc.GetFollow() != &rSrcDesc )
{
- SwPageDesc* pFollow = ::lcl_FindPageDesc( maPageDescs,
- rSrcDesc.GetFollow()->GetName() );
- if( !pFollow )
+ const SwPageDesc* sFollow = rSrcDesc.GetFollow();
+ SwPageDescs::const_iterator it = maPageDescs.find( const_cast<SwPageDesc*>( sFollow ) );
+ SwPageDesc* pFollow;
+ if( it == maPageDescs.end() )
{
// copy
- pFollow = MakePageDesc(rSrcDesc.GetFollow()->GetName());
- CopyPageDesc( *rSrcDesc.GetFollow(), *pFollow );
+ pFollow = MakePageDesc( sFollow->GetName() );
+ CopyPageDesc( *sFollow, *pFollow );
}
+ else
+ pFollow = *it;
rDstDesc.SetFollow( pFollow );
bNotifyLayout = true;
}
@@ -2249,7 +2242,7 @@ void SwDoc::ReplaceStyles( const SwDoc& rSource, bool bIncludePageStyles )
while( nCnt )
{
SwPageDesc *pSrc = rSource.maPageDescs[ --nCnt ];
- if( 0 == ::lcl_FindPageDesc( maPageDescs, pSrc->GetName() ) )
+ if( maPageDescs.end() == maPageDescs.find( pSrc ) )
MakePageDesc( pSrc->GetName() );
}
@@ -2257,7 +2250,7 @@ void SwDoc::ReplaceStyles( const SwDoc& rSource, bool bIncludePageStyles )
for( nCnt = rSource.maPageDescs.size(); nCnt; )
{
SwPageDesc *pSrc = rSource.maPageDescs[ --nCnt ];
- CopyPageDesc( *pSrc, *::lcl_FindPageDesc( maPageDescs, pSrc->GetName() ));
+ CopyPageDesc( *pSrc, **(maPageDescs.find( pSrc->GetName()) ));
}
}
}
diff --git a/sw/source/core/frmedt/fedesc.cxx b/sw/source/core/frmedt/fedesc.cxx
index 0dee36fef7a4..daadca30008f 100644
--- a/sw/source/core/frmedt/fedesc.cxx
+++ b/sw/source/core/frmedt/fedesc.cxx
@@ -173,11 +173,9 @@ sal_uInt16 SwFEShell::GetMousePageDesc( const Point &rPt ) const
while( pPage->GetNext() && rPt.Y() > pPage->Frm().Bottom() )
pPage = static_cast<const SwPageFrm*>( pPage->GetNext() );
SwDoc *pMyDoc = GetDoc();
- for ( sal_uInt16 i = 0; i < GetDoc()->GetPageDescCnt(); ++i )
- {
- if ( pPage->GetPageDesc() == &pMyDoc->GetPageDesc(i) )
- return i;
- }
+ sal_uInt16 pPos;
+ if (pMyDoc->FindPageDescByName( pPage->GetPageDesc()->GetName(), &pPos ) )
+ return pPos;
}
}
return 0;
@@ -191,12 +189,9 @@ sal_uInt16 SwFEShell::GetCurPageDesc( const sal_Bool bCalcFrm ) const
const SwPageFrm *pPage = pFrm->FindPageFrm();
if ( pPage )
{
- SwDoc *pMyDoc = GetDoc();
- for ( sal_uInt16 i = 0; i < GetDoc()->GetPageDescCnt(); ++i )
- {
- if ( pPage->GetPageDesc() == &pMyDoc->GetPageDesc(i) )
- return i;
- }
+ sal_uInt16 pPos;
+ if (GetDoc()->FindPageDescByName( pPage->GetPageDesc()->GetName(), &pPos ))
+ return pPos;
}
}
return 0;
diff --git a/sw/source/core/unocore/unosett.cxx b/sw/source/core/unocore/unosett.cxx
index bbb4223ae965..e00f8295edef 100644
--- a/sw/source/core/unocore/unosett.cxx
+++ b/sw/source/core/unocore/unosett.cxx
@@ -237,21 +237,11 @@ static SwTxtFmtColl* lcl_GetParaStyle(SwDoc* pDoc, const uno::Any& aValue)
static SwPageDesc* lcl_GetPageDesc(SwDoc* pDoc, const uno::Any& aValue)
{
- SwPageDesc* pRet = 0;
- sal_uInt16 nCount = pDoc->GetPageDescCnt();
OUString uTmp;
aValue >>= uTmp;
String sPageDesc;
SwStyleNameMapper::FillUIName(uTmp, sPageDesc, nsSwGetPoolIdFromName::GET_POOLID_PAGEDESC, true );
- for( sal_uInt16 i = 0; i < nCount; i++)
- {
- const SwPageDesc& rDesc = pDoc->GetPageDesc( i );
- if(rDesc.GetName() == sPageDesc)
- {
- pRet = (SwPageDesc*)&rDesc;
- break;
- }
- }
+ SwPageDesc* pRet = pDoc->FindPageDescByName( sPageDesc );
if(!pRet)
{
sal_uInt16 nId = SwStyleNameMapper::GetPoolIdFromUIName(sPageDesc, nsSwGetPoolIdFromName::GET_POOLID_PAGEDESC);
diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index 4aad9b32adfa..ee98e28d705d 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -1615,20 +1615,13 @@ const SwPageDesc& SwStyleBase_Impl::GetOldPageDesc()
{
if(!pOldPageDesc)
{
- sal_uInt16 i;
- sal_uInt16 nPDescCount = rDoc.GetPageDescCnt();
- for(i = 0; i < nPDescCount; i++)
- {
- const SwPageDesc& rDesc = rDoc.GetPageDesc( i );
- if(rDesc.GetName() == rStyleName)
- {
- pOldPageDesc = & rDesc;
- break;
- }
- }
+ SwPageDesc *pd = rDoc.FindPageDescByName( rStyleName );
+ if( pd )
+ pOldPageDesc = pd;
+
if(!pOldPageDesc)
{
- for(i = RC_POOLPAGEDESC_BEGIN; i <= STR_POOLPAGE_LANDSCAPE; ++i)
+ for(sal_Int16 i = RC_POOLPAGEDESC_BEGIN; i <= STR_POOLPAGE_LANDSCAPE; ++i)
{
const String aFmtName(SW_RES(i));
if(aFmtName == rStyleName)
diff --git a/sw/source/filter/html/htmlcss1.cxx b/sw/source/filter/html/htmlcss1.cxx
index 6423ce55a1b9..5f00b0cb7960 100644
--- a/sw/source/filter/html/htmlcss1.cxx
+++ b/sw/source/filter/html/htmlcss1.cxx
@@ -89,16 +89,10 @@ static struct SwCSS1ItemIds
void SwCSS1Parser::ChgPageDesc( const SwPageDesc *pPageDesc,
const SwPageDesc& rNewPageDesc )
{
- sal_uInt16 nPageDescs = pDoc->GetPageDescCnt();
- sal_uInt16 i;
- for( i=0; i<nPageDescs; i++ )
- if( pPageDesc == &pDoc->GetPageDesc(i) )
- {
- pDoc->ChgPageDesc( i, rNewPageDesc );
- return;
- }
-
- OSL_ENSURE( i<nPageDescs, "Seitenvorlage nicht gefunden" );
+ const SwPageDesc *spd = pDoc->FindPageDescByName( pPageDesc->GetName() );
+ OSL_ENSURE( pPageDesc != spd, "Seitenvorlage nicht gefunden" );
+ if (pPageDesc == spd)
+ pDoc->ChgPageDescP( rNewPageDesc, const_cast<SwPageDesc*>( pPageDesc ) );
}
SwCSS1Parser::SwCSS1Parser( SwDoc *pD, sal_uInt32 aFHeights[7], const String& rBaseURL, sal_Bool bNewDoc ) :