diff options
author | Andre Fischer <af@apache.org> | 2012-07-09 12:59:06 +0000 |
---|---|---|
committer | Xisco Fauli <anistenis@gmail.com> | 2013-04-08 22:12:06 +0200 |
commit | aac0ada9914c87c8c1c017744548602374f80320 (patch) | |
tree | a17e52a4d0adcc7e3de6fe1dc443d42384b0095a /sd | |
parent | d35004bf7690b1450dfd1e4ee98e478b8d349699 (diff) |
Fix #i119545# Fixed import of master page layout from PPT.
Reported by: Li Feng Wang
Patch by: SunYing
Review by: Andre Fischer
(cherry picked from commit f7da26f51bfaddecd7b774bc237d6f5fa082e57c)
Conflicts:
sd/source/filter/ppt/pptin.cxx
Change-Id: Ic946de22b3f7ab1d498e71f3d5752ad6f89e2de5
Diffstat (limited to 'sd')
-rw-r--r-- | sd/source/filter/ppt/pptin.cxx | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx index 1bbb9155c80f..4e67229a58b3 100644 --- a/sd/source/filter/ppt/pptin.cxx +++ b/sd/source/filter/ppt/pptin.cxx @@ -627,7 +627,13 @@ sal_Bool ImplSdPPTImport::Import() { sal_uInt32 nTitleInstance = TSS_TYPE_PAGETITLE; sal_uInt32 nOutlinerInstance = TSS_TYPE_BODY; - + const PptSlideLayoutAtom* pSlideLayout = GetSlideLayoutAtom(); + sal_Bool bSwapStyleSheet = pSlideLayout->eLayout == PPT_LAYOUT_TITLEMASTERSLIDE; + if ( bSwapStyleSheet ) + { + nTitleInstance = TSS_TYPE_TITLE; + nOutlinerInstance = TSS_TYPE_SUBTITLE; + } ///////////////////// // titelstylesheet // ///////////////////// @@ -994,7 +1000,6 @@ sal_Bool ImplSdPPTImport::Import() if( pStbMgr ) pStbMgr->SetState( nImportedPages++ ); } - ////////////// } else { @@ -2261,7 +2266,7 @@ SdrObject* ImplSdPPTImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* pObj { if ( eAktPageKind == PPT_MASTERPAGE ) { - sal_Bool bCreatePlaceHolder = ( pTextObj->GetInstance() != TSS_TYPE_SUBTITLE ) && ( pTextObj->GetInstance() != TSS_TYPE_UNUSED ); + sal_Bool bCreatePlaceHolder = ( pTextObj->GetInstance() != TSS_TYPE_UNUSED ); sal_Bool bIsHeaderFooter = ( ePresKind == PRESOBJ_HEADER) || (ePresKind == PRESOBJ_FOOTER) || (ePresKind == PRESOBJ_DATETIME) || (ePresKind == PRESOBJ_SLIDENUMBER); if ( bCreatePlaceHolder && ( pTextObj->GetInstance() == TSS_TYPE_TEXT_IN_SHAPE ) ) @@ -2293,6 +2298,11 @@ SdrObject* ImplSdPPTImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* pObj rItemSet.Put( (SdrTextLowerDistItem&)pText->GetMergedItem( SDRATTR_TEXT_LOWERDIST ) ); rItemSet.Put( (SdrTextVertAdjustItem&)pText->GetMergedItem( SDRATTR_TEXT_VERTADJUST ) ); rItemSet.Put( (SdrTextHorzAdjustItem&)pText->GetMergedItem( SDRATTR_TEXT_HORZADJUST ) ); + if ( pTextObj->GetInstance() == TSS_TYPE_TITLE + || pTextObj->GetInstance() == TSS_TYPE_SUBTITLE) + { + rItemSet.Put( pText->GetMergedItemSet() ); + } } pText->NbcSetStyleSheet( pSheet2, sal_False ); } @@ -2649,7 +2659,6 @@ SdrObject* ImplSdPPTImport::ProcessObj( SvStream& rSt, DffObjData& rObjData, voi } maAnimations[pMediaObj] = pAnimation; } - //-- SdrObject::Free( pObj ), pObj = pMediaObj; // SJ: hoping that pObj is not inserted in any list pMediaObj->setURL( aMediaURL ); |