diff options
author | Zhe Wang <wangzcdl@apache.org> | 2012-09-07 04:46:35 +0000 |
---|---|---|
committer | Radek Doulík <rodo@novell.com> | 2013-03-13 09:53:31 +0000 |
commit | 8ed047be746c428b4b9d614afc26e53238ec72f8 (patch) | |
tree | 8182a79a1e9fea635ddbb92e4c16c77d345af8f9 /sd | |
parent | 83bdce645a7fd4843630fc9a378de8620d48c6c4 (diff) |
Resolves: #i120773 Numbering lost 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>(cherry picked from commit 39e9cae1ac9b7944c9df0642a193b042a1b68266)
Signed-off-by: Fridrich Štrba <fridrich.strba@bluewin.ch>
Conflicts:
editeng/inc/editeng/svxenum.hxx
sd/source/filter/eppt/epptso.cxx
Change-Id: Ic8a9406fd1b58e5cec5c5adc28bf0190ccb87315
(cherry picked from commit ef23b47e887908161d980f3e6f6d321f18acca77)
Reviewed-on: https://gerrit.libreoffice.org/2692
Reviewed-by: Radek Doulík <rodo@novell.com>
Tested-by: Radek Doulík <rodo@novell.com>
Diffstat (limited to 'sd')
-rw-r--r-- | sd/source/filter/eppt/epptso.cxx | 5 | ||||
-rw-r--r-- | sd/source/filter/eppt/pptx-text.cxx | 44 |
2 files changed, 49 insertions, 0 deletions
diff --git a/sd/source/filter/eppt/epptso.cxx b/sd/source/filter/eppt/epptso.cxx index c28f4d1e6eae..04018c59167e 100644 --- a/sd/source/filter/eppt/epptso.cxx +++ b/sd/source/filter/eppt/epptso.cxx @@ -1423,6 +1423,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; diff --git a/sd/source/filter/eppt/pptx-text.cxx b/sd/source/filter/eppt/pptx-text.cxx index 481666b1e6a9..9e4876d10519 100644 --- a/sd/source/filter/eppt/pptx-text.cxx +++ b/sd/source/filter/eppt/pptx-text.cxx @@ -905,6 +905,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 ) { @@ -990,6 +995,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; } |