INTEGRATION: CWS impressodf12 (1.158.12); FILE MERGED
2008/06/04 14:29:44 sj 1.158.12.8: #i90357# fixed bullet indentation when bullets are turned off
2008/05/30 11:59:21 cl 1.158.12.7: fixed unix compile errors
2008/05/30 09:36:37 sj 1.158.12.6: #i75927# taking care of outliner core changes (numbering)
2008/05/29 11:35:40 sj 1.158.12.5: #i75927# taking care of outliner core changes (numbering)
2008/05/26 11:43:09 cl 1.158.12.4: #i35937# code cleanup after bullet rework
2008/04/25 09:00:00 cl 1.158.12.3: RESYNC: (1.158-1.159); FILE MERGED
2008/04/24 15:30:07 cl 1.158.12.2: #i35937# converted EE_PARA_BULLETSTATE to bool item
2008/04/10 16:50:56 cl 1.158.12.1: #i35937# allow paragraph depth of -1 to switch of numbering
diff --git a/svx/source/svdraw/svdfppt.cxx b/svx/source/svdraw/svdfppt.cxx
index f1775a7..5f6c74d 100644
--- a/svx/source/svdraw/svdfppt.cxx
+++ b/svx/source/svdraw/svdfppt.cxx
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: svdfppt.cxx,v $
* $Revision: 1.159 $
* $Revision: 1.160 $
*
* This file is part of OpenOffice.org.
*
@@ -2393,7 +2393,6 @@ SdrObject* SdrPowerPointImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj*
{
UINT32 nDestinationInstance = pTextObj->GetDestinationInstance() ;
SdrOutliner& rOutliner = pText->ImpGetDrawOutliner();
rOutliner.SetMinDepth( 0 );
if ( ( pText->GetObjInventor() == SdrInventor ) && ( pText->GetObjIdentifier() == OBJ_TITLETEXT ) ) // Outliner-Style fuer Titel-Textobjekt?!? (->von DL)
rOutliner.Init( OUTLINERMODE_TITLEOBJECT ); // Outliner reset
@@ -2448,7 +2447,7 @@ SdrObject* SdrPowerPointImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj*
SfxStyleSheet* pS = ( ppStyleSheetAry ) ? ppStyleSheetAry[ pPara->pParaSet->mnDepth ] : pSheet;
ESelection aSelection( nParaIndex, 0, nParaIndex, 0 );
rOutliner.Insert( String(), nParaIndex, pPara->GetLevel( pTextObj->GetDestinationInstance() ) );
rOutliner.Insert( String(), nParaIndex, pPara->pParaSet->mnDepth );
rOutliner.QuickInsertText( String( pParaText, (UINT16)nCurrentIndex ), aSelection );
rOutliner.SetParaAttribs( nParaIndex, rOutliner.GetEmptyItemSet() );
if ( pS )
@@ -2494,9 +2493,15 @@ SdrObject* SdrPowerPointImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj*
}
SfxItemSet aParagraphAttribs( rOutliner.GetEmptyItemSet() );
pPara->ApplyTo( aParagraphAttribs, (SdrPowerPointImport&)*this, nDestinationInstance, pPreviousParagraph );
UINT32 nIsBullet2 = 0; //, nInstance = nDestinationInstance != 0xffffffff ? nDestinationInstance : pTextObj->GetInstance();
pPara->GetAttrib( PPT_ParaAttr_BulletOn, nIsBullet2, nDestinationInstance );
if ( !nIsBullet2 )
rOutliner.SetDepth( rOutliner.GetParagraph( nParaIndex ), -1 );
pPreviousParagraph = pPara;
if ( !aSelection.nStartPos ) // in PPT empty paragraphs never gets a bullet
aParagraphAttribs.Put( SfxUInt16Item( EE_PARA_BULLETSTATE, FALSE ) );
rOutliner.SetDepth( rOutliner.GetParagraph( nParaIndex ), -1 );
aSelection.nStartPos = 0;
rOutliner.QuickSetAttribs( aParagraphAttribs, aSelection );
delete[] pParaText;
@@ -2504,7 +2509,6 @@ SdrObject* SdrPowerPointImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj*
}
OutlinerParaObject* pNewText = rOutliner.CreateParaObject();
rOutliner.Clear();
rOutliner.SetMinDepth( 0 );
rOutliner.SetUpdateMode( bOldUpdateMode );
pText->SetOutlinerParaObject( pNewText );
}
@@ -4428,14 +4432,13 @@ PPTStyleSheet::PPTStyleSheet( const DffRecordHeader& rSlideHd, SvStream& rIn, Sd
eNumRuleType = SVX_RULETYPE_NUMBERING;
break;
case TSS_TYPE_SUBTITLE :
nLevels = 9;
nLevels = 10;
eNumRuleType = SVX_RULETYPE_NUMBERING;
break;
case TSS_TYPE_BODY :
case TSS_TYPE_HALFBODY :
case TSS_TYPE_QUARTERBODY :
nDepth = 1;
nLevels = 9;
nLevels = 10;
eNumRuleType = SVX_RULETYPE_PRESENTATION_NUMBERING;
break;
default :
@@ -4449,8 +4452,6 @@ PPTStyleSheet::PPTStyleSheet( const DffRecordHeader& rSlideHd, SvStream& rIn, Sd
SvxNumRule aRule( NUM_BULLET_REL_SIZE | NUM_BULLET_COLOR |
NUM_CHAR_TEXT_DISTANCE | NUM_SYMBOL_ALIGNMENT,
nLevels, FALSE, eNumRuleType );
if ( eNumRuleType == SVX_RULETYPE_PRESENTATION_NUMBERING )
nLevels++;
for ( UINT16 nCount = 0; nDepth < nLevels; nCount++ )
{
const PPTParaLevel& rParaLevel = mpParaSheet[ i ]->maParaLevel[ nCount ];
@@ -6146,7 +6147,7 @@ void PPTParagraphObj::ApplyTo( SfxItemSet& rSet, SdrPowerPointImport& rManager,
UINT32 nVal, nUpperDist, nLowerDist;
UINT32 nInstance = nDestinationInstance != 0xffffffff ? nDestinationInstance : mnInstance;
if ( ( nDestinationInstance != 0xffffffff ) || ( GetLevel( nInstance ) <= 1 ) )
if ( ( nDestinationInstance != 0xffffffff ) || ( pParaSet->mnDepth <= 1 ) )
{
SvxNumBulletItem* pNumBulletItem = mrStyleSheet.mpNumBulletItem[ nInstance ];
if ( pNumBulletItem )
@@ -6159,31 +6160,17 @@ void PPTParagraphObj::ApplyTo( SfxItemSet& rSet, SdrPowerPointImport& rManager,
SvxNumRule* pRule = aNewNumBulletItem.GetNumRule();
if ( pRule )
{
pRule->SetLevel( GetLevel( nInstance ), aNumberFormat );
pRule->SetLevel( pParaSet->mnDepth, aNumberFormat );
if ( nDestinationInstance == 0xffffffff )
{
sal_uInt16 i, n;
for ( i = 1; i < pRule->GetLevelCount(); i++ )
for ( i = 0; i < pRule->GetLevelCount(); i++ )
{
n = ( i > 4 ) ? 4 : i;
n = i > 4 ? 4 : i;
sal_uInt32 nInst = nInstance;
switch( nInst )
{
case TSS_TYPE_BODY :
case TSS_TYPE_HALFBODY :
case TSS_TYPE_QUARTERBODY :
{
if ( !n )
nInst = 0;
else
n -= 1;
}
break;
}
SvxNumberFormat aNumberFormat2( pRule->GetLevel( i ) );
const PPTParaLevel& rParaLevel = mrStyleSheet.mpParaSheet[ nInst ]->maParaLevel[ n ];
const PPTCharLevel& rCharLevel = mrStyleSheet.mpCharSheet[ nInst ]->maCharLevel[ n ];
const PPTParaLevel& rParaLevel = mrStyleSheet.mpParaSheet[ nInstance ]->maParaLevel[ n ];
const PPTCharLevel& rCharLevel = mrStyleSheet.mpCharSheet[ nInstance ]->maCharLevel[ n ];
sal_uInt32 nColor;
if ( rParaLevel.mnBuFlags & ( 1 << PPT_ParaAttr_BuHardColor ) )
nColor = rParaLevel.mnBulletColor;
@@ -6198,17 +6185,27 @@ void PPTParagraphObj::ApplyTo( SfxItemSet& rSet, SdrPowerPointImport& rManager,
}
}
}
UINT32 nIsBullet2;
GetAttrib( PPT_ParaAttr_BulletOn, nIsBullet2, nDestinationInstance );
rSet.Put( SfxUInt16Item( EE_PARA_BULLETSTATE, nIsBullet2 == 0 ? 0 : 1 ) );
if ( GetAttrib( PPT_ParaAttr_TextOfs, nVal, nDestinationInstance ) )
UINT32 nIsBullet2, _nTextOfs, _nBulletOfs, nHardAttribute = 0;
GetAttrib( PPT_ParaAttr_BulletOn, nIsBullet2, nDestinationInstance );
nHardAttribute += GetAttrib( PPT_ParaAttr_TextOfs, _nTextOfs, nDestinationInstance );
nHardAttribute += GetAttrib( PPT_ParaAttr_BulletOfs, _nBulletOfs, nDestinationInstance );
if ( !nIsBullet2 )
{
SvxLRSpaceItem aLRSpaceItem( EE_PARA_LRSPACE );
aLRSpaceItem.SetLeft( (UINT16)(((UINT32) nVal * 2540 ) / ( 72 * 8 ) ) );
UINT16 nAbsLSpace = (UINT16)( ( (UINT32)_nTextOfs * 2540 ) / 576 );
UINT16 nFirstLineOffset = nAbsLSpace - (UINT16)( ( (UINT32)_nBulletOfs * 2540 ) / 576 );
aLRSpaceItem.SetLeft( nAbsLSpace );
aLRSpaceItem.SetTxtFirstLineOfstValue( -nFirstLineOffset );
rSet.Put( aLRSpaceItem );
}
else
{
SvxLRSpaceItem aLRSpaceItem( EE_PARA_LRSPACE );
aLRSpaceItem.SetLeft( 0 );
aLRSpaceItem.SetTxtFirstLineOfstValue( 0 );
rSet.Put( aLRSpaceItem );
}
if ( GetAttrib( PPT_ParaAttr_Adjust, nVal, nDestinationInstance ) )
{
if ( nVal <= 3 )
@@ -6337,19 +6334,6 @@ void PPTParagraphObj::ApplyTo( SfxItemSet& rSet, SdrPowerPointImport& rManager,
}
}
sal_uInt16 PPTParagraphObj::GetLevel( sal_uInt32 nMappedInstance )
{
sal_uInt16 nRetValue = pParaSet->mnDepth;
switch ( nMappedInstance )
{
case TSS_TYPE_BODY :
case TSS_TYPE_HALFBODY :
case TSS_TYPE_QUARTERBODY :
nRetValue++;
}
return nRetValue;
}
UINT32 PPTParagraphObj::GetTextSize()
{
UINT32 nCount, nRetValue = 0;