diff options
author | Zhe Wang <wangzcdl@apache.org> | 2012-09-07 04:46:35 +0000 |
---|---|---|
committer | Zhe Wang <wangzcdl@apache.org> | 2012-09-07 04:46:35 +0000 |
commit | 39e9cae1ac9b7944c9df0642a193b042a1b68266 (patch) | |
tree | 63226b0cc9e3d3c7233203006caac4c1874fd185 /sd/source | |
parent | 155cf194a0ecf18e3b19cf73d05485c59de640a2 (diff) |
Fix issue #i120773#: [From Symphony] Numbering will lose when saving or opening a ppt file
* subversion/main/editeng/inc/editeng/svxenum.hxx
Define some numbering types supported by MS ppt
* subversion/main/filter/source/msfilter/svdfppt.cxx
Mapping added MS numbering types to Symphony numbering types
* subversion/main/sd/source/filter/eppt/epptso.cxx
Export added MS numbering types
Patch by: Yin Bing <steve.yin.aoo@gmail.com>
Suggested by: Wang Zhe <kingwisemmx@gmail.com>
Found by: Yin Bing <steve.yin.aoo@gmail.com>
Review by: Wang Zhe <kingwisemmx@gmail.com>
Notes
Notes:
merged as: ef23b47e887908161d980f3e6f6d321f18acca77
Diffstat (limited to 'sd/source')
-rw-r--r-- | sd/source/filter/eppt/epptso.cxx | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/sd/source/filter/eppt/epptso.cxx b/sd/source/filter/eppt/epptso.cxx index cb9376188eb6..a71371b38d8b 100644 --- a/sd/source/filter/eppt/epptso.cxx +++ b/sd/source/filter/eppt/epptso.cxx @@ -2672,6 +2672,11 @@ void ParagraphObj::ImplGetNumberingLevel( PPTExBulletProvider& rBuProv, sal_Int1 case SVX_NUM_BITMAP : case SVX_NUM_CHARS_UPPER_LETTER_N : // zaehlt von a-z, aa-zz, aaa-zzz case SVX_NUM_CHARS_LOWER_LETTER_N : + case SVX_NUM_NUMBER_UPPER_ZH: + case SVX_NUM_CIRCLE_NUMBER: + case SVX_NUM_NUMBER_UPPER_ZH_TW: + case SVX_NUM_NUMBER_LOWER_ZH: + case SVX_NUM_FULL_WIDTH_ARABIC: { if ( nNumberingType != SVX_NUM_CHAR_SPECIAL ) { @@ -2757,6 +2762,45 @@ void ParagraphObj::ImplGetNumberingLevel( PPTExBulletProvider& rBuProv, sal_Int1 } } break; + case SVX_NUM_NUMBER_UPPER_ZH : + { + if ( sSuffix.Len() ) + nMappedNumType = 0x110001; // Simplified Chinese with single-byte period. + else + nMappedNumType = 0x100001; // Simplified Chinese. + } + break; + case SVX_NUM_CIRCLE_NUMBER : + { + nMappedNumType = 0x120001; // Double byte circle numbers. + } + break; + case SVX_NUM_NUMBER_UPPER_ZH_TW : + { + if ( sSuffix.Len() ) + nMappedNumType = 0x160001; // Traditional Chinese with single-byte period. + else + nMappedNumType = 0x150001; // Traditional Chinese. + } + break; + case SVX_NUM_NUMBER_LOWER_ZH : + { + if ( sSuffix == String( sal_Unicode(0xff0e)) ) + nMappedNumType = 0x260001; // Japanese with double-byte period. + else if ( sSuffix.Len() ) + nMappedNumType = 0x1B0001; // Japanese/Korean with single-byte period. + else + nMappedNumType = 0x1A0001; // Japanese/Korean. + } + break; + case SVX_NUM_FULL_WIDTH_ARABIC : + { + if ( sSuffix.Len() ) + nMappedNumType = 0x1D0001; // Double-byte Arabic numbers with double-byte period. + else + nMappedNumType = 0x1C0001; // Double-byte Arabic numbers. + } + break; default: break; } @@ -3397,6 +3441,11 @@ void PPTWriter::ImplWriteTextStyleAtom( SvStream& rOut, int nTextInstance, sal_u case SVX_NUM_ROMAN_UPPER : case SVX_NUM_ROMAN_LOWER : case SVX_NUM_ARABIC : + case SVX_NUM_NUMBER_UPPER_ZH: + case SVX_NUM_CIRCLE_NUMBER: + case SVX_NUM_NUMBER_UPPER_ZH_TW: + case SVX_NUM_NUMBER_LOWER_ZH: + case SVX_NUM_FULL_WIDTH_ARABIC: nNumberingType = pBulletPara->nMappedNumType; break; |