sw/source/core/doc/poolfmt.cxx | 112 +++++++++++++++++++++-------------------- 1 file changed, 59 insertions(+), 53 deletions(-)
New commits: commit 384aa00b12fbfd0d888858dc5677825637e1e98b Author: Oliver-Rainer Wittmann <o...@apache.org> Date: Thu May 30 11:07:41 2013 +0000 122416: <SwDoc::GetPageDescFromPool(..)> - correction and refactoring diff --git a/sw/source/core/doc/poolfmt.cxx b/sw/source/core/doc/poolfmt.cxx index c22eba1..797ddcf 100644 --- a/sw/source/core/doc/poolfmt.cxx +++ b/sw/source/core/doc/poolfmt.cxx @@ -1440,7 +1440,7 @@ bool SwDoc::IsPoolFmtUsed( sal_uInt16 nId ) const -void lcl_GetStdPgSize( SwDoc* pDoc, SfxItemSet& rSet ) +void lcl_PutStdPageSizeIntoItemSet( SwDoc* pDoc, SfxItemSet& rSet ) { SwPageDesc* pStdPgDsc = pDoc->GetPageDescFromPool( RES_POOLPAGE_STANDARD ); SwFmtFrmSize aFrmSz( pStdPgDsc->GetMaster().GetFrmSize() ); @@ -1458,52 +1458,58 @@ SwPageDesc* SwDoc::GetPageDescFromPool( sal_uInt16 nId, bool bRegardLanguage ) ASSERT( RES_POOLPAGE_BEGIN <= nId && nId < RES_POOLPAGE_END, "Falsche AutoFormat-Id" ); - SwPageDesc *pNewPgDsc; - sal_uInt16 n; - - for( n = 0; n < aPageDescs.Count(); ++n ) - if( nId == ( pNewPgDsc = aPageDescs[ n ] )->GetPoolFmtId() ) + for( sal_uInt16 n = 0; n < aPageDescs.Count(); ++n ) + { + if ( nId == aPageDescs[ n ]->GetPoolFmtId() ) { - return pNewPgDsc; + return aPageDescs[ n ]; } + } - // Fehlerfall: unbekannte Poolvorlage if( RES_POOLPAGE_BEGIN > nId || nId >= RES_POOLPAGE_END ) { - ASSERT( !this, "ungueltige Id" ); + // unknown page pool ID + ASSERT( !this, "<SwDoc::GetPageDescFromPool(..)> - unknown page pool ID" ); nId = RES_POOLPAGE_BEGIN; } - ResId aResId( sal_uInt32(RC_POOLPAGEDESC_BEGIN + nId - RES_POOLPAGE_BEGIN), *pSwResMgr ); - String aNm( aResId ); + SwPageDesc* pNewPgDsc = 0; { - sal_Bool bIsModified = IsModified(); + const ResId aResId( sal_uInt32(RC_POOLPAGEDESC_BEGIN + nId - RES_POOLPAGE_BEGIN), *pSwResMgr ); + const String aNm( aResId ); + const bool bIsModified = IsModified(); + sal_uInt16 nPageDescIdx = 0; { ::sw::UndoGuard const undoGuard(GetIDocumentUndoRedo()); - n = MakePageDesc( aNm, 0, bRegardLanguage ); + nPageDescIdx = MakePageDesc( aNm, 0, bRegardLanguage ); } - pNewPgDsc = aPageDescs[ n ]; + pNewPgDsc = aPageDescs[ nPageDescIdx ]; pNewPgDsc->SetPoolFmtId( nId ); - if( !bIsModified ) + if ( !bIsModified ) + { ResetModified(); + } } - SvxLRSpaceItem aLR( RES_LR_SPACE ); - aLR.SetLeft( GetMetricVal( CM_1 ) * 2 ); - aLR.SetRight( aLR.GetLeft() ); + { + aLR.SetLeft( GetMetricVal( CM_1 ) * 2 ); + aLR.SetRight( aLR.GetLeft() ); + } SvxULSpaceItem aUL( RES_UL_SPACE ); - aUL.SetUpper( (sal_uInt16)aLR.GetLeft() ); - aUL.SetLower( (sal_uInt16)aLR.GetLeft() ); + { + aUL.SetUpper( (sal_uInt16)aLR.GetLeft() ); + aUL.SetLower( (sal_uInt16)aLR.GetLeft() ); + } SwAttrSet aSet( GetAttrPool(), aPgFrmFmtSetRange ); - sal_Bool bSetLeft = sal_True; + bool bSetLeft = true; switch( nId ) { - case RES_POOLPAGE_STANDARD: // Standard-Seite + case RES_POOLPAGE_STANDARD: // "Default" { aSet.Put( aLR ); aSet.Put( aUL ); @@ -1512,10 +1518,10 @@ SwPageDesc* SwDoc::GetPageDescFromPool( sal_uInt16 nId, bool bRegardLanguage ) } break; - case RES_POOLPAGE_FIRST: // Erste Seite - case RES_POOLPAGE_REGISTER: // Verzeichnis + case RES_POOLPAGE_FIRST: // "First Page" + case RES_POOLPAGE_REGISTER: // "Index" { - lcl_GetStdPgSize( this, aSet ); + lcl_PutStdPageSizeIntoItemSet( this, aSet ); aSet.Put( aLR ); aSet.Put( aUL ); if( pNewPgDsc ) @@ -1527,34 +1533,34 @@ SwPageDesc* SwDoc::GetPageDescFromPool( sal_uInt16 nId, bool bRegardLanguage ) } break; - case RES_POOLPAGE_LEFT: // Linke Seite + case RES_POOLPAGE_LEFT: // "Left Page" { - lcl_GetStdPgSize( this, aSet ); + lcl_PutStdPageSizeIntoItemSet( this, aSet ); aSet.Put( aLR ); aSet.Put( aUL ); - bSetLeft = sal_False; + bSetLeft = false; if( pNewPgDsc ) pNewPgDsc->SetUseOn( nsUseOnPage::PD_LEFT ); } break; - case RES_POOLPAGE_RIGHT: // Rechte Seite + case RES_POOLPAGE_RIGHT: // "Right Page" { - lcl_GetStdPgSize( this, aSet ); + lcl_PutStdPageSizeIntoItemSet( this, aSet ); aSet.Put( aLR ); aSet.Put( aUL ); - bSetLeft = sal_False; + bSetLeft = false; if( pNewPgDsc ) pNewPgDsc->SetUseOn( nsUseOnPage::PD_RIGHT ); } break; - case RES_POOLPAGE_JAKET: // Umschlag + case RES_POOLPAGE_JAKET: // "Envelope" { - aLR.SetLeft( 0 ); aLR.SetRight( 0 ); - aUL.SetUpper( 0 ); aUL.SetLower( 0 ); Size aPSize( SvxPaperInfo::GetPaperSize( PAPER_ENV_C65 ) ); LandscapeSwap( aPSize ); aSet.Put( SwFmtFrmSize( ATT_FIX_SIZE, aPSize.Width(), aPSize.Height() )); + aLR.SetLeft( 0 ); aLR.SetRight( 0 ); + aUL.SetUpper( 0 ); aUL.SetLower( 0 ); aSet.Put( aLR ); aSet.Put( aUL ); @@ -1566,9 +1572,9 @@ SwPageDesc* SwDoc::GetPageDescFromPool( sal_uInt16 nId, bool bRegardLanguage ) } break; - case RES_POOLPAGE_HTML: // HTML + case RES_POOLPAGE_HTML: // "HTML" { - lcl_GetStdPgSize( this, aSet ); + lcl_PutStdPageSizeIntoItemSet( this, aSet ); aLR.SetRight( GetMetricVal( CM_1 )); aUL.SetUpper( (sal_uInt16)aLR.GetRight() ); aUL.SetLower( (sal_uInt16)aLR.GetRight() ); @@ -1579,10 +1585,11 @@ SwPageDesc* SwDoc::GetPageDescFromPool( sal_uInt16 nId, bool bRegardLanguage ) pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL ); } break; - case RES_POOLPAGE_FOOTNOTE: - case RES_POOLPAGE_ENDNOTE: + + case RES_POOLPAGE_FOOTNOTE: // "Footnote" + case RES_POOLPAGE_ENDNOTE: // "Endnote" { - lcl_GetStdPgSize( this, aSet ); + lcl_PutStdPageSizeIntoItemSet( this, aSet ); aSet.Put( aLR ); aSet.Put( aUL ); if( pNewPgDsc ) @@ -1594,13 +1601,17 @@ SwPageDesc* SwDoc::GetPageDescFromPool( sal_uInt16 nId, bool bRegardLanguage ) pNewPgDsc->SetFtnInfo( aInf ); } break; - case RES_POOLPAGE_LANDSCAPE: + + case RES_POOLPAGE_LANDSCAPE: // "Landscape" { SwPageDesc* pStdPgDsc = this->GetPageDescFromPool( RES_POOLPAGE_STANDARD ); SwFmtFrmSize aFrmSz( pStdPgDsc->GetMaster().GetFrmSize() ); - SwTwips nTmp = aFrmSz.GetHeight(); - aFrmSz.SetHeight( aFrmSz.GetWidth() ); - aFrmSz.SetWidth( nTmp ); + if ( !pStdPgDsc->GetLandscape() ) + { + const SwTwips nTmp = aFrmSz.GetHeight(); + aFrmSz.SetHeight( aFrmSz.GetWidth() ); + aFrmSz.SetWidth( nTmp ); + } aSet.Put( aFrmSz ); aSet.Put( aLR ); aSet.Put( aUL ); @@ -1609,21 +1620,16 @@ SwPageDesc* SwDoc::GetPageDescFromPool( sal_uInt16 nId, bool bRegardLanguage ) pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL ); pNewPgDsc->SetLandscape( sal_True ); } - } - break; + } + break; } if( aSet.Count() ) { - { - if( bSetLeft ) - pNewPgDsc->GetLeft().SetFmtAttr( aSet ); - pNewPgDsc->GetMaster().SetFmtAttr( aSet ); - // JP 31.08.95: erzeugen einer PoolVorlage ist keine Modifikation - // (Bug: 18545) - // SetModified(); - } + if( bSetLeft ) + pNewPgDsc->GetLeft().SetFmtAttr( aSet ); + pNewPgDsc->GetMaster().SetFmtAttr( aSet ); } return pNewPgDsc; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits