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 )