Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/2692
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/92/2692/1
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)
---
M editeng/inc/editeng/svxenum.hxx
M filter/source/msfilter/svdfppt.cxx
M sd/source/filter/eppt/epptso.cxx
M sd/source/filter/eppt/pptx-text.cxx
4 files changed, 121 insertions(+), 1 deletion(-)
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 @@
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 @@
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 @@
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 @@
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 @@
}
}
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;
}
--
To view, visit https://gerrit.libreoffice.org/2692
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic8a9406fd1b58e5cec5c5adc28bf0190ccb87315
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: libreoffice-4-0
Gerrit-Owner: Fridrich Strba <fridrich@documentfoundation.org>
Context
- [PATCH libreoffice-4-0] Resolves: #i120773 Numbering lost when saving or opening a p... · Fridrich Strba (via Code Review)
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.