filter/inc/filter/msfilter/svdfppt.hxx | 1 - filter/source/msfilter/svdfppt.cxx | 11 ++++++++--- sd/source/filter/ppt/pptin.cxx | 21 +++++++-------------- 3 files changed, 15 insertions(+), 18 deletions(-)
New commits: commit 8378527a678f15b588550fcdfda84ac45613f84c Author: Jan Holesovsky <ke...@suse.cz> Date: Sun May 12 17:33:22 2013 +0200 bnc#758621: Set the attribs for the entire para if a placeholder. Setting attributes for empty paragraphs does nothing, we have to apply it to the style directly. Change-Id: Id2a63c961e408906fa7c6457091405692262c6b7 diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx index 4870559..514dba3 100644 --- a/filter/source/msfilter/svdfppt.cxx +++ b/filter/source/msfilter/svdfppt.cxx @@ -2296,6 +2296,14 @@ SdrObject* SdrPowerPointImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* } pPortion->ApplyTo( aPortionAttribs, (SdrPowerPointImport&)*this, nDestinationInstance, pTextObj ); rOutliner.QuickSetAttribs( aPortionAttribs, aSelection ); + + // set the attribs for the entire paragraph, if it is a placeholder + if ( pTextObj->GetOEPlaceHolderAtom() && aSelection.nStartPos == aSelection.nEndPos ) + { + SfxItemSet& rItemSet = rOutliner.GetStyleSheet( nParaIndex )->GetItemSet(); + pPortion->ApplyTo( rItemSet, (SdrPowerPointImport&)*this, nDestinationInstance, pTextObj ); + } + aSelection.nStartPos = aSelection.nEndPos; } boost::optional< sal_Int16 > oStartNumbering; commit c8f1d9140b898e1b63fe12f049738b8333202561 Author: Jan Holesovsky <ke...@suse.cz> Date: Fri May 10 20:27:40 2013 +0200 bnc#758621: Set presentation object as non-empty only if not a placeholder. Based on work of Felix Zhang <fezh...@suse.com>, thank you! Change-Id: I26c7cef17b9a5f3d73107b5c974983e58c347d52 diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx index 5b88e50..c4ab6d2 100644 --- a/sd/source/filter/ppt/pptin.cxx +++ b/sd/source/filter/ppt/pptin.cxx @@ -2340,8 +2340,6 @@ SdrObject* ImplSdPPTImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* pObj sal_Bool bVertical = sal_False; if ( ( pTextObj->GetShapeType() == mso_sptRectangle ) || ( pTextObj->GetShapeType() == mso_sptTextBox ) ) { - if ( pTextObj->Count() ) - bEmptyPresObj = sal_False; switch ( nPlaceholderId ) { case PPT_PLACEHOLDER_NOTESBODY : ePresObjKind = PRESOBJ_NOTES; break; @@ -2356,7 +2354,7 @@ SdrObject* ImplSdPPTImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* pObj default : { - if ( !pTextObj->Count() ) + if ( pTextObj->Count() == 0 ) { switch ( nPlaceholderId ) { @@ -2368,6 +2366,8 @@ SdrObject* ImplSdPPTImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* pObj case PPT_PLACEHOLDER_ORGANISZATIONCHART : ePresObjKind = PRESOBJ_ORGCHART; break; } } + else + bEmptyPresObj = sal_False; }; } } commit 04bd0886d0208d08d96078539d491a7c2c3d2b20 Author: Jan Holesovsky <ke...@suse.cz> Date: Fri May 10 19:56:04 2013 +0200 bnc#758621: We don't need this index for anything. Worse, it prevents us to enter part of the code that we need to execute in some (valid) circumstances. Change-Id: I15084b5efa10fbd5cd0d42856c2745c93d6765da diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx index f587b06..5b88e50 100644 --- a/sd/source/filter/ppt/pptin.cxx +++ b/sd/source/filter/ppt/pptin.cxx @@ -2332,17 +2332,9 @@ SdrObject* ImplSdPPTImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* pObj { sal_uInt32 nPlacementId = pPlaceHolder->nPlacementId; sal_Int16 nPlaceholderId = pPlaceHolder->nPlaceholderId; - sal_uInt16 i = 0; + if ( eAktPageKind == PPT_SLIDEPAGE ) { - for ( ; i < 8; i++ ) - { - if ( pSlideLayout->aPlaceholderId[ i ] == nPlaceholderId ) - break; - } - } - if ( i < 8 ) - { PresObjKind ePresObjKind = PRESOBJ_NONE; sal_Bool bEmptyPresObj = sal_True; sal_Bool bVertical = sal_False; commit f829f34cff62c60a25b2c05015c4d1deb568fd6b Author: Jan Holesovsky <ke...@suse.cz> Date: Fri May 10 19:48:06 2013 +0200 bnc#758621: Kill unused aPlacementId, it is never set. Based on work of Felix Zhang <fezh...@suse.com>, thank you! Change-Id: I733a2b69d01f86bcaf0fa401671d475d9b4641a6 diff --git a/filter/inc/filter/msfilter/svdfppt.hxx b/filter/inc/filter/msfilter/svdfppt.hxx index 8a6d1ed..da82d7f 100644 --- a/filter/inc/filter/msfilter/svdfppt.hxx +++ b/filter/inc/filter/msfilter/svdfppt.hxx @@ -206,7 +206,6 @@ struct PptSlideLayoutAtom { sal_Int32 eLayout; // 0..18 sal_uInt8 aPlaceholderId[ 8 ]; - sal_uLong aPlacementId[ 8 ]; public: PptSlideLayoutAtom() { Clear(); } diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx index f6eb87a..4870559 100644 --- a/filter/source/msfilter/svdfppt.cxx +++ b/filter/source/msfilter/svdfppt.cxx @@ -295,10 +295,7 @@ void PptSlideLayoutAtom::Clear() { eLayout = 0; for ( sal_uInt16 i = 0; i < 8; i++ ) - { aPlaceholderId[ i ] = 0; - aPlacementId[ i ] = 0; - } } SvStream& operator>>( SvStream& rIn, PptSlideLayoutAtom& rAtom ) diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx index e456a4e..f587b06 100644 --- a/sd/source/filter/ppt/pptin.cxx +++ b/sd/source/filter/ppt/pptin.cxx @@ -2330,6 +2330,7 @@ SdrObject* ImplSdPPTImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* pObj const PptSlideLayoutAtom* pSlideLayout = GetSlideLayoutAtom(); if ( pSlideLayout || ( eAktPageKind == PPT_NOTEPAGE ) ) { + sal_uInt32 nPlacementId = pPlaceHolder->nPlacementId; sal_Int16 nPlaceholderId = pPlaceHolder->nPlaceholderId; sal_uInt16 i = 0; if ( eAktPageKind == PPT_SLIDEPAGE ) @@ -2409,7 +2410,7 @@ SdrObject* ImplSdPPTImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* pObj ApplyAttributes( rStCtrl, aSet ); pPresObj->SetMergedItemSet(aSet); - if ( ( eAktPageKind != PPT_NOTEPAGE ) && ( pSlideLayout->aPlacementId[ i ] != (sal_uLong)-1 ) ) + if ( ( eAktPageKind != PPT_NOTEPAGE ) && ( nPlacementId != 0xffffffff ) ) { SdrObject* pTitleObj = ((SdPage&)pPage->TRG_GetMasterPage()).GetPresObj( PRESOBJ_TITLE ); SdrObject* pOutlineObj = ((SdPage&)pPage->TRG_GetMasterPage()).GetPresObj( PRESOBJ_OUTLINE ); @@ -2428,7 +2429,7 @@ SdrObject* ImplSdPPTImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* pObj Rectangle aLogicRect( pPresObj->GetLogicRect() ); Size aLogicSize( aLogicRect.GetSize() ); - switch ( pSlideLayout->aPlacementId[ i ] ) + switch ( nPlacementId ) { case 0 : // Lage im Titelbereich { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits