diff options
author | Lei De Bin <leidb@apache.org> | 2012-07-20 01:11:03 +0000 |
---|---|---|
committer | Xisco Fauli <anistenis@gmail.com> | 2013-04-07 23:37:40 +0200 |
commit | ad2651af85181235a0c3a44bf93d7ecb08dd9353 (patch) | |
tree | f97bd5d05cbd99c361baea25d63427553648f543 | |
parent | 8b5cd38aae487dc2a84a1ee0f56e25daca851b02 (diff) |
Fix #120233# fix ppt import bullet size error
Reported by: liu ping tan
Patch by: Sun Ying
Review by: Lei De Bin(cherry picked from commit 7025f6c6441b49093504874925f37ca0e61f34f9)
Conflicts:
filter/inc/filter/msfilter/svdfppt.hxx
Change-Id: I6f72599bc897d5d7bf46fa88c8b2899b3a2e0c15
-rw-r--r-- | filter/inc/filter/msfilter/svdfppt.hxx | 1 | ||||
-rw-r--r-- | filter/source/msfilter/svdfppt.cxx | 15 |
2 files changed, 16 insertions, 0 deletions
diff --git a/filter/inc/filter/msfilter/svdfppt.hxx b/filter/inc/filter/msfilter/svdfppt.hxx index fcc704fb1b7d..fffcc86bc22f 100644 --- a/filter/inc/filter/msfilter/svdfppt.hxx +++ b/filter/inc/filter/msfilter/svdfppt.hxx @@ -786,6 +786,7 @@ public: sal_uInt32 nLevel, sal_Bool bFirst ); + void UpdateBulletRelSize( sal_uInt32 nLevel, sal_uInt16 nFontHeight ); }; class PPTParagraphObj; diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx index 0921f64a01bd..430129904b46 100644 --- a/filter/source/msfilter/svdfppt.cxx +++ b/filter/source/msfilter/svdfppt.cxx @@ -4002,6 +4002,18 @@ void PPTParaSheet::Read( SdrPowerPointImport& } } +void PPTParaSheet::UpdateBulletRelSize( sal_uInt32 nLevel, sal_uInt16 nFontHeight ) +{ + if ( maParaLevel[ nLevel ].mnBulletHeight > 0x7fff ) // a negative value is the absolute bullet height + { + sal_Int16 nBulletRelSize = ( sal_Int16 )maParaLevel[ nLevel ].mnBulletHeight; + nBulletRelSize = nFontHeight ? ((-nBulletRelSize) * 100 ) / nFontHeight : 100; + if ( nBulletRelSize < 0 ) //bullet size over flow + nBulletRelSize = 100; + maParaLevel[ nLevel ].mnBulletHeight = nBulletRelSize; + } +} + PPTStyleSheet::PPTStyleSheet( const DffRecordHeader& rSlideHd, SvStream& rIn, SdrPowerPointImport& rManager, const PPTTextCharacterStyleAtomInterpreter& /*rTxCFStyle*/, const PPTTextParagraphStyleAtomInterpreter& rTxPFStyle, const PPTTextSpecInfo& rTextSpecInfo ) : @@ -4072,6 +4084,7 @@ PPTStyleSheet::PPTStyleSheet( const DffRecordHeader& rSlideHd, SvStream& rIn, Sd } } mpCharSheet[ TSS_TYPE_TEXT_IN_SHAPE ]->Read( rIn, sal_True, nLev, bFirst ); + mpParaSheet[ TSS_TYPE_TEXT_IN_SHAPE ]->UpdateBulletRelSize( nLev, mpCharSheet[ TSS_TYPE_TEXT_IN_SHAPE ]->maCharLevel[ nLev ].mnFontHeight ); bFirst = sal_False; nLev++; } @@ -4160,6 +4173,7 @@ PPTStyleSheet::PPTStyleSheet( const DffRecordHeader& rSlideHd, SvStream& rIn, Sd } mpParaSheet[ nInstance ]->Read( rManager, rIn, sal_True, nLev, bFirst ); mpCharSheet[ nInstance ]->Read( rIn, sal_True, nLev, bFirst ); + mpParaSheet[ nInstance ]->UpdateBulletRelSize( nLev, mpCharSheet[ nInstance ]->maCharLevel[ nLev ].mnFontHeight ); bFirst = sal_False; nLev++; } @@ -4254,6 +4268,7 @@ PPTStyleSheet::PPTStyleSheet( const DffRecordHeader& rSlideHd, SvStream& rIn, Sd } } mpCharSheet[ TSS_TYPE_TEXT_IN_SHAPE ]->Read( rIn, sal_True, nLev, bFirst ); + mpParaSheet[ TSS_TYPE_TEXT_IN_SHAPE ]->UpdateBulletRelSize( nLev, mpCharSheet[ TSS_TYPE_TEXT_IN_SHAPE ]->maCharLevel[ nLev ].mnFontHeight ); bFirst = sal_False; nLev++; } |