You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by or...@apache.org on 2013/05/30 13:07:41 UTC
svn commit: r1487815 - /openoffice/trunk/main/sw/source/core/doc/poolfmt.cxx
Author: orw
Date: Thu May 30 11:07:41 2013
New Revision: 1487815
URL: http://svn.apache.org/r1487815
Log:
122416: <SwDoc::GetPageDescFromPool(..)> - correction and refactoring
Modified:
openoffice/trunk/main/sw/source/core/doc/poolfmt.cxx
Modified: openoffice/trunk/main/sw/source/core/doc/poolfmt.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/core/doc/poolfmt.cxx?rev=1487815&r1=1487814&r2=1487815&view=diff
==============================================================================
--- openoffice/trunk/main/sw/source/core/doc/poolfmt.cxx (original)
+++ openoffice/trunk/main/sw/source/core/doc/poolfmt.cxx Thu May 30 11:07:41 2013
@@ -1440,7 +1440,7 @@ bool SwDoc::IsPoolFmtUsed( sal_uInt16 nI
-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() );
@@ -1455,152 +1455,163 @@ void lcl_GetStdPgSize( SwDoc* pDoc, SfxI
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;
+ ASSERT( RES_POOLPAGE_BEGIN <= nId && nId < RES_POOLPAGE_END,
+ "Falsche AutoFormat-Id" );
- for( n = 0; n < aPageDescs.Count(); ++n )
- if( nId == ( pNewPgDsc = aPageDescs[ n ] )->GetPoolFmtId() )
- {
- return pNewPgDsc;
- }
+ for( sal_uInt16 n = 0; n < aPageDescs.Count(); ++n )
+ {
+ if ( nId == aPageDescs[ n ]->GetPoolFmtId() )
+ {
+ return aPageDescs[ n ];
+ }
+ }
- // Fehlerfall: unbekannte Poolvorlage
- if( RES_POOLPAGE_BEGIN > nId || nId >= RES_POOLPAGE_END )
- {
- ASSERT( !this, "ungueltige Id" );
- nId = RES_POOLPAGE_BEGIN;
- }
+ if( RES_POOLPAGE_BEGIN > nId || nId >= RES_POOLPAGE_END )
+ {
+ // 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->SetPoolFmtId( nId );
- if( !bIsModified )
- ResetModified();
- }
-
+ pNewPgDsc = aPageDescs[ nPageDescIdx ];
+ pNewPgDsc->SetPoolFmtId( nId );
+ 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;
+ SwAttrSet aSet( GetAttrPool(), aPgFrmFmtSetRange );
+ bool bSetLeft = true;
- switch( nId )
- {
- case RES_POOLPAGE_STANDARD: // Standard-Seite
- {
- aSet.Put( aLR );
- aSet.Put( aUL );
- if( pNewPgDsc )
- pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
- }
- break;
+ switch( nId )
+ {
+ case RES_POOLPAGE_STANDARD: // "Default"
+ {
+ aSet.Put( aLR );
+ aSet.Put( aUL );
+ if( pNewPgDsc )
+ pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
+ }
+ break;
- case RES_POOLPAGE_FIRST: // Erste Seite
- case RES_POOLPAGE_REGISTER: // Verzeichnis
- {
- lcl_GetStdPgSize( this, aSet );
- aSet.Put( aLR );
- aSet.Put( aUL );
- if( pNewPgDsc )
- {
- pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
- if( RES_POOLPAGE_FIRST == nId )
- pNewPgDsc->SetFollow( GetPageDescFromPool( RES_POOLPAGE_STANDARD ));
- }
- }
- break;
+ case RES_POOLPAGE_FIRST: // "First Page"
+ case RES_POOLPAGE_REGISTER: // "Index"
+ {
+ lcl_PutStdPageSizeIntoItemSet( this, aSet );
+ aSet.Put( aLR );
+ aSet.Put( aUL );
+ if( pNewPgDsc )
+ {
+ pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
+ if( RES_POOLPAGE_FIRST == nId )
+ pNewPgDsc->SetFollow( GetPageDescFromPool( RES_POOLPAGE_STANDARD ));
+ }
+ }
+ break;
- case RES_POOLPAGE_LEFT: // Linke Seite
- {
- lcl_GetStdPgSize( this, aSet );
- aSet.Put( aLR );
- aSet.Put( aUL );
- bSetLeft = sal_False;
- if( pNewPgDsc )
- pNewPgDsc->SetUseOn( nsUseOnPage::PD_LEFT );
- }
- break;
- case RES_POOLPAGE_RIGHT: // Rechte Seite
- {
- lcl_GetStdPgSize( this, aSet );
- aSet.Put( aLR );
- aSet.Put( aUL );
- bSetLeft = sal_False;
- if( pNewPgDsc )
- pNewPgDsc->SetUseOn( nsUseOnPage::PD_RIGHT );
- }
- break;
+ case RES_POOLPAGE_LEFT: // "Left Page"
+ {
+ lcl_PutStdPageSizeIntoItemSet( this, aSet );
+ aSet.Put( aLR );
+ aSet.Put( aUL );
+ bSetLeft = false;
+ if( pNewPgDsc )
+ pNewPgDsc->SetUseOn( nsUseOnPage::PD_LEFT );
+ }
+ break;
+ case RES_POOLPAGE_RIGHT: // "Right Page"
+ {
+ lcl_PutStdPageSizeIntoItemSet( this, aSet );
+ aSet.Put( aLR );
+ aSet.Put( aUL );
+ bSetLeft = false;
+ if( pNewPgDsc )
+ pNewPgDsc->SetUseOn( nsUseOnPage::PD_RIGHT );
+ }
+ break;
- case RES_POOLPAGE_JAKET: // Umschlag
- {
- 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() ));
- aSet.Put( aLR );
- aSet.Put( aUL );
+ case RES_POOLPAGE_JAKET: // "Envelope"
+ {
+ 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 );
- if( pNewPgDsc )
- {
- pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
- pNewPgDsc->SetLandscape( sal_True );
- }
- }
- break;
+ if( pNewPgDsc )
+ {
+ pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
+ pNewPgDsc->SetLandscape( sal_True );
+ }
+ }
+ break;
- case RES_POOLPAGE_HTML: // HTML
- {
- lcl_GetStdPgSize( this, aSet );
- aLR.SetRight( GetMetricVal( CM_1 ));
- aUL.SetUpper( (sal_uInt16)aLR.GetRight() );
- aUL.SetLower( (sal_uInt16)aLR.GetRight() );
- aSet.Put( aLR );
- aSet.Put( aUL );
+ case RES_POOLPAGE_HTML: // "HTML"
+ {
+ lcl_PutStdPageSizeIntoItemSet( this, aSet );
+ aLR.SetRight( GetMetricVal( CM_1 ));
+ aUL.SetUpper( (sal_uInt16)aLR.GetRight() );
+ aUL.SetLower( (sal_uInt16)aLR.GetRight() );
+ aSet.Put( aLR );
+ aSet.Put( aUL );
- if( pNewPgDsc )
- pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
- }
- break;
- case RES_POOLPAGE_FOOTNOTE:
- case RES_POOLPAGE_ENDNOTE:
- {
- lcl_GetStdPgSize( this, aSet );
- aSet.Put( aLR );
- aSet.Put( aUL );
- if( pNewPgDsc )
- pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
- SwPageFtnInfo aInf( pNewPgDsc->GetFtnInfo() );
- aInf.SetLineWidth( 0 );
- aInf.SetTopDist( 0 );
- aInf.SetBottomDist( 0 );
- pNewPgDsc->SetFtnInfo( aInf );
- }
+ if( pNewPgDsc )
+ pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
+ }
+ break;
+
+ case RES_POOLPAGE_FOOTNOTE: // "Footnote"
+ case RES_POOLPAGE_ENDNOTE: // "Endnote"
+ {
+ lcl_PutStdPageSizeIntoItemSet( this, aSet );
+ aSet.Put( aLR );
+ aSet.Put( aUL );
+ if( pNewPgDsc )
+ pNewPgDsc->SetUseOn( nsUseOnPage::PD_ALL );
+ SwPageFtnInfo aInf( pNewPgDsc->GetFtnInfo() );
+ aInf.SetLineWidth( 0 );
+ aInf.SetTopDist( 0 );
+ aInf.SetBottomDist( 0 );
+ 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,23 +1620,18 @@ SwPageDesc* SwDoc::GetPageDescFromPool(
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();
- }
- }
- return pNewPgDsc;
+ if( aSet.Count() )
+ {
+ if( bSetLeft )
+ pNewPgDsc->GetLeft().SetFmtAttr( aSet );
+ pNewPgDsc->GetMaster().SetFmtAttr( aSet );
+ }
+ return pNewPgDsc;
}
SwNumRule* SwDoc::GetNumRuleFromPool( sal_uInt16 nId )