[Libreoffice-commits] core.git: Branch 'libreoffice-4-0' - editeng/inc filter/source sd/source
Zhe Wang
wangzcdl at apache.org
Wed Mar 13 02:53:55 PDT 2013
editeng/inc/editeng/svxenum.hxx | 16 +++++++++-
filter/source/msfilter/svdfppt.cxx | 57 ++++++++++++++++++++++++++++++++++++
sd/source/filter/eppt/epptso.cxx | 5 +++
sd/source/filter/eppt/pptx-text.cxx | 44 +++++++++++++++++++++++++++
4 files changed, 121 insertions(+), 1 deletion(-)
New commits:
commit 8ed047be746c428b4b9d614afc26e53238ec72f8
Author: Zhe Wang <wangzcdl at apache.org>
Date: Fri Sep 7 04:46:35 2012 +0000
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 at gmail.com>
Suggested by: Wang Zhe <kingwisemmx at gmail.com>
Found by: Yin Bing <steve.yin.aoo at gmail.com>
Review by: Wang Zhe <kingwisemmx at gmail.com>(cherry picked from commit 39e9cae1ac9b7944c9df0642a193b042a1b68266)
Signed-off-by: Fridrich Å trba <fridrich.strba at 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 at novell.com>
Tested-by: Radek DoulÃk <rodo at novell.com>
diff --git a/editeng/inc/editeng/svxenum.hxx b/editeng/inc/editeng/svxenum.hxx
index ff751b0..2759beb 100644
--- a/editeng/inc/editeng/svxenum.hxx
+++ b/editeng/inc/editeng/svxenum.hxx
@@ -210,7 +210,21 @@ enum SvxExtNumType
SVX_NUM_PAGEDESC, // Numbering from the page template
SVX_NUM_BITMAP,
SVX_NUM_CHARS_UPPER_LETTER_N, // Counts from a-z, aa-zz, aaa-zzz
- SVX_NUM_CHARS_LOWER_LETTER_N
+ SVX_NUM_CHARS_LOWER_LETTER_N,
+ SVX_NUM_TRANSLITERATION,
+ SVX_NUM_NATIVE_NUMBERING,
+ SVX_NUM_FULL_WIDTH_ARABIC,
+ SVX_NUM_CIRCLE_NUMBER,
+ SVX_NUM_NUMBER_LOWER_ZH,
+ SVX_NUM_NUMBER_UPPER_ZH,
+ SVX_NUM_NUMBER_UPPER_ZH_TW,
+ SVX_NUM_TIAN_GAN_ZH,
+ SVX_NUM_DI_ZI_ZH,
+ SVX_NUM_NUMBER_TRADITIONAL_JA,
+ SVX_NUM_AIU_FULLWIDTH_JA,
+ SVX_NUM_AIU_HALFWIDTH_JA,
+ SVX_NUM_IROHA_FULLWIDTH_JA,
+ SVX_NUM_IROHA_HALFWIDTH_JA
};
enum SvxCompareMode
diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx
index 208d8b5..b44fe62 100644
--- a/filter/source/msfilter/svdfppt.cxx
+++ b/filter/source/msfilter/svdfppt.cxx
@@ -3529,6 +3529,63 @@ sal_Bool PPTNumberFormatCreator::ImplGetExtNumberFormat( SdrPowerPointImport& rM
rNumberFormat.SetSuffix( String( RTL_CONSTASCII_USTRINGPARAM( ")" ) ) );
}
break;
+ case 16: // Simplified Chinese.
+ {
+ rNumberFormat.SetNumberingType( SVX_NUM_NUMBER_UPPER_ZH );
+ }
+ break;
+ case 17: // Simplified Chinese with single-byte period.
+ {
+ rNumberFormat.SetNumberingType( SVX_NUM_NUMBER_UPPER_ZH );
+ rNumberFormat.SetSuffix( String( RTL_CONSTASCII_USTRINGPARAM( "." ) ) );
+ }
+ break;
+ case 18: // Double byte circle numbers.
+ case 19: // Wingdings white circle numbers.
+ case 20: // Wingdings black circle numbers.
+ {
+ rNumberFormat.SetNumberingType( SVX_NUM_CIRCLE_NUMBER );
+ }
+ break;
+ case 21: // Traditional Chinese.
+ {
+ rNumberFormat.SetNumberingType( SVX_NUM_NUMBER_UPPER_ZH_TW );
+ }
+ break;
+ case 22: // Traditional Chinese with single-byte period.
+ {
+ rNumberFormat.SetNumberingType( SVX_NUM_NUMBER_UPPER_ZH_TW );
+ rNumberFormat.SetSuffix( String( RTL_CONSTASCII_USTRINGPARAM( "." ) ) );
+ }
+ break;
+ case 26: // Japanese/Korean.
+ {
+ rNumberFormat.SetNumberingType( SVX_NUM_NUMBER_LOWER_ZH );
+ }
+ break;
+ case 27: // Japanese/Korean with single-byte period.
+ {
+ rNumberFormat.SetNumberingType( SVX_NUM_NUMBER_LOWER_ZH );
+ rNumberFormat.SetSuffix( String( RTL_CONSTASCII_USTRINGPARAM( "." ) ) );
+ }
+ break;
+ case 28: // Double-byte Arabic numbers.
+ {
+ rNumberFormat.SetNumberingType( SVX_NUM_FULL_WIDTH_ARABIC );
+ }
+ break;
+ case 29: // Double-byte Arabic numbers with double-byte period.
+ {
+ rNumberFormat.SetNumberingType( SVX_NUM_FULL_WIDTH_ARABIC );
+ rNumberFormat.SetSuffix( OUString( sal_Unicode(0xff0e) ) );
+ }
+ break;
+ case 38: // Japanese with double-byte period.
+ {
+ rNumberFormat.SetNumberingType( SVX_NUM_NUMBER_LOWER_ZH ); // No such type. Instead with Lower Chinese Number
+ rNumberFormat.SetSuffix( OUString( sal_Unicode(0xff0e) ) );
+ }
+ break;
}
rStartNumbering = boost::optional< sal_Int16 >( nAnmScheme >> 16 );
}
diff --git a/sd/source/filter/eppt/epptso.cxx b/sd/source/filter/eppt/epptso.cxx
index c28f4d1..04018c5 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 481666b..9e4876d 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;
}
More information about the Libreoffice-commits
mailing list