View | Details | Raw Unified | Return to issue 125400
Collapse All | Expand All

(-)main/writerfilter/source/dmapper/ConversionHelper.cxx (+4 lines)
Lines 645-650 Link Here
645
        case NS_ooxml::LN_Value_ST_NumberFormat_chineseCounting:
645
        case NS_ooxml::LN_Value_ST_NumberFormat_chineseCounting:
646
        case NS_ooxml::LN_Value_ST_NumberFormat_japaneseCounting:
646
        case NS_ooxml::LN_Value_ST_NumberFormat_japaneseCounting:
647
        case NS_ooxml::LN_Value_ST_NumberFormat_taiwaneseCounting:
647
        case NS_ooxml::LN_Value_ST_NumberFormat_taiwaneseCounting:
648
        case NS_ooxml::LN_Value_ST_NumberFormat_taiwaneseCountingThousand:
648
        case NS_ooxml::LN_Value_ST_NumberFormat_ideographDigital:
649
        case NS_ooxml::LN_Value_ST_NumberFormat_ideographDigital:
649
        case NS_ooxml::LN_Value_ST_NumberFormat_chineseCountingThousand:
650
        case NS_ooxml::LN_Value_ST_NumberFormat_chineseCountingThousand:
650
            nRet = style::NumberingType::NUMBER_LOWER_ZH;
651
            nRet = style::NumberingType::NUMBER_LOWER_ZH;
Lines 652-657 Link Here
652
        case NS_ooxml::LN_Value_ST_NumberFormat_chineseLegalSimplified:
653
        case NS_ooxml::LN_Value_ST_NumberFormat_chineseLegalSimplified:
653
            nRet = style::NumberingType::NUMBER_UPPER_ZH;
654
            nRet = style::NumberingType::NUMBER_UPPER_ZH;
654
            break;
655
            break;
656
    	case NS_ooxml::LN_Value_ST_NumberFormat_decimalFullWidth:
657
            nRet = style::NumberingType::FULLWIDTH_ARABIC;
658
            break;
655
        default: nRet = style::NumberingType::ARABIC;
659
        default: nRet = style::NumberingType::ARABIC;
656
    }
660
    }
657
/*  TODO: Lots of additional values are available - some are supported in the I18 framework
661
/*  TODO: Lots of additional values are available - some are supported in the I18 framework
(-)main/sw/source/filter/rtf/rtfnum.cxx (+22 lines)
Lines 161-166 Link Here
161
				case 4:		eType = SVX_NUM_CHARS_LOWER_LETTER_N;	break;
161
				case 4:		eType = SVX_NUM_CHARS_LOWER_LETTER_N;	break;
162
				case 255:
162
				case 255:
163
				case 23:	eType = SVX_NUM_CHAR_SPECIAL;			break;
163
				case 23:	eType = SVX_NUM_CHAR_SPECIAL;			break;
164
				case 19: 	eType = SVX_NUM_FULL_WIDTH_ARABIC ;	break;
165
				case 18: 	eType = SVX_NUM_CIRCLE_NUMBER ;	break;
166
				case 35:
167
				case 36:
168
				case 37:
169
				case 39: 		
170
						eType = SVX_NUM_NUMBER_LOWER_ZH ;	break;
171
				case 38: 	eType = SVX_NUM_NUMBER_UPPER_ZH ;	break;
172
				case 34: 	eType = SVX_NUM_NUMBER_UPPER_ZH_TW ;	break;
173
				case 30: 	eType = SVX_NUM_TIAN_GAN_ZH ;	break;
174
				case 31: 	eType = SVX_NUM_DI_ZI_ZH ;	break;
175
				case 10: 		
176
				case 11:
177
						eType = SVX_NUM_NUMBER_TRADITIONAL_JA ;	break;
178
				case 12:	eType = SVX_NUM_AIU_HALFWIDTH_JA ;	break;
179
				case 20: 	eType = SVX_NUM_AIU_FULLWIDTH_JA ;	break;
180
				case 13:	eType = SVX_NUM_IROHA_HALFWIDTH_JA ;	break;
181
				case 21: 	eType = SVX_NUM_IROHA_FULLWIDTH_JA ;	break;
182
				case 24: 	eType = style::NumberingType::HANGUL_SYLLABLE_KO;	break;
183
				case 25:	eType = style::NumberingType::HANGUL_JAMO_KO;		break;
184
				case 41:	eType = style::NumberingType::NUMBER_HANGUL_KO; break;
185
				case 44:	eType = style::NumberingType::NUMBER_UPPER_KO; break;
164
				}
186
				}
165
				if( pCurNumFmt )
187
				if( pCurNumFmt )
166
					pCurNumFmt->SetNumberingType(eType);
188
					pCurNumFmt->SetNumberingType(eType);
(-)main/sw/source/filter/ww8/ww8par2.cxx (+35 lines)
Lines 648-658 Link Here
648
648
649
    static SvxAdjust eAdjA[4] =
649
    static SvxAdjust eAdjA[4] =
650
    { SVX_ADJUST_LEFT, SVX_ADJUST_RIGHT, SVX_ADJUST_LEFT, SVX_ADJUST_LEFT };
650
    { SVX_ADJUST_LEFT, SVX_ADJUST_RIGHT, SVX_ADJUST_LEFT, SVX_ADJUST_LEFT };
651
    
652
    if (SVBT8ToByte( rAV.nfc ) < 8) {
653
    	rNum.SetNumberingType(static_cast< sal_Int16 >(eNumA[SVBT8ToByte( rAV.nfc ) ]));
654
    } else {
655
	SvxExtNumType eType = SVX_NUM_ARABIC; // Fallback to ARABIC instead of NONE
656
	sal_Int16 nType= -1;	
657
	switch(SVBT8ToByte( rAV.nfc )) {
658
		case 19:eType = SVX_NUM_FULL_WIDTH_ARABIC ;	break;
659
		case 30:eType = SVX_NUM_TIAN_GAN_ZH ;	break;
660
		case 31:eType = SVX_NUM_DI_ZI_ZH ;	break;
661
		case 35:
662
		case 36:
663
		case 37:
664
		case 39: 		
665
			eType = SVX_NUM_NUMBER_LOWER_ZH ;	break;
666
		case 34:eType = SVX_NUM_NUMBER_UPPER_ZH_TW ;	break;
667
		case 38:eType = SVX_NUM_NUMBER_UPPER_ZH ;	break;
668
	case 10: 		
669
	case 11:
670
			eType = SVX_NUM_NUMBER_TRADITIONAL_JA ;	break;
671
	case 20: 	eType = SVX_NUM_AIU_FULLWIDTH_JA ;	break;
672
	case 12: 	eType = SVX_NUM_AIU_HALFWIDTH_JA ;	break;
673
	case 21: 	eType = SVX_NUM_IROHA_FULLWIDTH_JA ;	break;
674
	case 13: 	eType = SVX_NUM_IROHA_HALFWIDTH_JA ;	break;
675
	case 24: 	nType = style::NumberingType::HANGUL_SYLLABLE_KO;break;
676
	case 25:	nType = style::NumberingType::HANGUL_JAMO_KO;break;
677
	case 41:	nType = style::NumberingType::NUMBER_HANGUL_KO; break;
678
	case 44:	nType = style::NumberingType::NUMBER_UPPER_KO; break;
679
	}
651
680
681
    	rNum.SetNumberingType(
682
		nType !=-1 ? nType:static_cast< sal_Int16 >(eType));
683
    }
684
685
#if 0
652
    rNum.SetNumberingType(
686
    rNum.SetNumberingType(
653
        static_cast< sal_Int16 >(( SVBT8ToByte( rAV.nfc ) < 8 )
687
        static_cast< sal_Int16 >(( SVBT8ToByte( rAV.nfc ) < 8 )
654
            ? eNumA[SVBT8ToByte( rAV.nfc ) ]
688
            ? eNumA[SVBT8ToByte( rAV.nfc ) ]
655
            : SVX_NUM_NUMBER_NONE) );
689
            : SVX_NUM_NUMBER_NONE) );
690
#endif
656
691
657
    if ((SVBT8ToByte(rAV.aBits1 ) & 0x4) >> 2)
692
    if ((SVBT8ToByte(rAV.aBits1 ) & 0x4) >> 2)
658
    {
693
    {
(-)main/sw/source/filter/ww8/ww8par3.cxx (-4 / +25 lines)
Lines 749-761 Link Here
749
    // 4. den Nummerierungsstring einlesen: ergibt Prefix und Postfix
749
    // 4. den Nummerierungsstring einlesen: ergibt Prefix und Postfix
750
    //
750
    //
751
    String sNumString(WW8Read_xstz(rSt, 0, false));
751
    String sNumString(WW8Read_xstz(rSt, 0, false));
752
753
    //
752
    //
754
    // 5. gelesene Werte in Writer Syntax umwandeln
753
    // 5. gelesene Werte in Writer Syntax umwandeln
755
    //
754
    //
756
    if( 0 <= aLVL.nStartAt )
755
    if( 0 <= aLVL.nStartAt )
757
        nStartNo = (sal_uInt16)aLVL.nStartAt;
756
        nStartNo = (sal_uInt16)aLVL.nStartAt;
758
757
    sal_Int16  nType = -1;
759
    switch( aLVL.nNFC )
758
    switch( aLVL.nNFC )
760
    {
759
    {
761
        case 0:
760
        case 0:
Lines 778-784 Link Here
778
            eType = SVX_NUM_ARABIC;
777
            eType = SVX_NUM_ARABIC;
779
            break;
778
            break;
780
        case 23:
779
        case 23:
781
        case 25:    //#114412#
782
            eType = SVX_NUM_CHAR_SPECIAL;
780
            eType = SVX_NUM_CHAR_SPECIAL;
783
			//For i120928,type info
781
			//For i120928,type info
784
			if (bIsPicBullet)
782
			if (bIsPicBullet)
Lines 790-795 Link Here
790
        case 255:
788
        case 255:
791
            eType = SVX_NUM_NUMBER_NONE;
789
            eType = SVX_NUM_NUMBER_NONE;
792
            break;
790
            break;
791
	case 18: 	eType = SVX_NUM_CIRCLE_NUMBER ;	break;
792
	case 19: 	eType = SVX_NUM_FULL_WIDTH_ARABIC ;	break;
793
	case 30: 	eType = SVX_NUM_TIAN_GAN_ZH ;	break;
794
	case 31: 	eType = SVX_NUM_DI_ZI_ZH ;	break;
795
	case 35:
796
	case 36:
797
	case 37:
798
	case 39: 		
799
			eType = SVX_NUM_NUMBER_LOWER_ZH ;	break;
800
	case 34: 	eType = SVX_NUM_NUMBER_UPPER_ZH_TW ;	break;
801
	case 38: 	eType = SVX_NUM_NUMBER_UPPER_ZH ;	break;
802
	case 10: 		
803
	case 11:
804
			eType = SVX_NUM_NUMBER_TRADITIONAL_JA ;	break;
805
	case 20: 	eType = SVX_NUM_AIU_FULLWIDTH_JA ;	break;
806
	case 12: 	eType = SVX_NUM_AIU_HALFWIDTH_JA ;	break;
807
	case 21: 	eType = SVX_NUM_IROHA_FULLWIDTH_JA ;	break;
808
	case 13: 	eType = SVX_NUM_IROHA_HALFWIDTH_JA ;	break;
809
	case 24: 	nType = style::NumberingType::HANGUL_SYLLABLE_KO;	break;
810
	case 25:	nType = style::NumberingType::HANGUL_JAMO_KO;		break;
811
	case 41:	nType = style::NumberingType::NUMBER_HANGUL_KO; break;
812
	case 44:	nType = style::NumberingType::NUMBER_UPPER_KO; break;
813
	
793
         default:
814
         default:
794
            // take default
815
            // take default
795
            eType = SVX_NUM_ARABIC;
816
            eType = SVX_NUM_ARABIC;
Lines 922-928 Link Here
922
    // 6. entsprechendes NumFmt konfigurieren
943
    // 6. entsprechendes NumFmt konfigurieren
923
    if( bSetStartNo )
944
    if( bSetStartNo )
924
        rNumFmt.SetStart( nStartNo );
945
        rNumFmt.SetStart( nStartNo );
925
    rNumFmt.SetNumberingType( static_cast< sal_Int16 >(eType) );
946
    rNumFmt.SetNumberingType( nType!=-1?nType:static_cast< sal_Int16 >(eType) );
926
    rNumFmt.SetNumAdjust( eAdj );
947
    rNumFmt.SetNumAdjust( eAdj );
927
948
928
    if( SVX_NUM_CHAR_SPECIAL == eType )
949
    if( SVX_NUM_CHAR_SPECIAL == eType )
(-)main/sw/source/filter/ww8/ww8atr.cxx (+27 lines)
Lines 669-675 Link Here
669
    case SVX_NUM_CHARS_LOWER_LETTER_N:  nRet = 4;       break;
669
    case SVX_NUM_CHARS_LOWER_LETTER_N:  nRet = 4;       break;
670
    case SVX_NUM_ROMAN_UPPER:           nRet = 1;       break;
670
    case SVX_NUM_ROMAN_UPPER:           nRet = 1;       break;
671
    case SVX_NUM_ROMAN_LOWER:           nRet = 2;       break;
671
    case SVX_NUM_ROMAN_LOWER:           nRet = 2;       break;
672
    case SVX_NUM_FULL_WIDTH_ARABIC:	nRet=19;	break;
673
    case SVX_NUM_CIRCLE_NUMBER:		nRet=18;	break;
674
    case SVX_NUM_NUMBER_LOWER_ZH:	
672
675
676
	if (LANGUAGE_CHINESE_SIMPLIFIED == Application::GetSettings().GetLanguage())
677
	{
678
		nRet=39;/* 39 for ZH_CN*/
679
	} else {
680
		nRet=35;/* 35 for ZH_TW or the others*/
681
	}
682
683
684
	break; 
685
    case SVX_NUM_NUMBER_UPPER_ZH:	nRet=38;	break;
686
    case SVX_NUM_NUMBER_UPPER_ZH_TW:	nRet=34;	break;
687
    case SVX_NUM_TIAN_GAN_ZH:		nRet=30;	break;
688
    case SVX_NUM_DI_ZI_ZH:		nRet=31;	break;
689
    case SVX_NUM_NUMBER_TRADITIONAL_JA:	nRet=10;	break;
690
    case SVX_NUM_AIU_FULLWIDTH_JA:	nRet=20;	break;
691
    case SVX_NUM_AIU_HALFWIDTH_JA:	nRet=12;	break;
692
    case SVX_NUM_IROHA_FULLWIDTH_JA:	nRet=21;	break;
693
    case SVX_NUM_IROHA_HALFWIDTH_JA:	nRet=13;	break;
694
case style::NumberingType::HANGUL_SYLLABLE_KO:	nRet = 24; break;// ganada
695
case style::NumberingType::HANGUL_JAMO_KO:	nRet = 25; break;// chosung
696
case style::NumberingType::HANGUL_CIRCLED_SYLLABLE_KO:	nRet = 24; break;
697
case style::NumberingType::HANGUL_CIRCLED_JAMO_KO:	nRet = 25; break;
698
case style::NumberingType::NUMBER_HANGUL_KO:		nRet = 41; break;
699
case style::NumberingType::NUMBER_UPPER_KO:		nRet = 44; break;
673
    case SVX_NUM_BITMAP:
700
    case SVX_NUM_BITMAP:
674
    case SVX_NUM_CHAR_SPECIAL:          nRet = 23;      break;
701
    case SVX_NUM_CHAR_SPECIAL:          nRet = 23;      break;
675
702
(-)main/sw/source/filter/ww8/rtfattributeoutput.cxx (+33 lines)
Lines 117-122 Link Here
117
#include <rtl/ustring.hxx>
117
#include <rtl/ustring.hxx>
118
#include <tools/color.hxx>
118
#include <tools/color.hxx>
119
#include <vcl/cvtgrf.hxx>
119
#include <vcl/cvtgrf.hxx>
120
#include <vcl/svapp.hxx>
120
#include <com/sun/star/i18n/ScriptType.hdl>
121
#include <com/sun/star/i18n/ScriptType.hdl>
121
#include <com/sun/star/drawing/XShape.hpp>
122
#include <com/sun/star/drawing/XShape.hpp>
122
#include <com/sun/star/frame/XModel.hpp>
123
#include <com/sun/star/frame/XModel.hpp>
Lines 1524-1532 Link Here
1524
        case SVX_NUM_CHARS_UPPER_LETTER_N:  nVal = 3;       break;
1525
        case SVX_NUM_CHARS_UPPER_LETTER_N:  nVal = 3;       break;
1525
        case SVX_NUM_CHARS_LOWER_LETTER:
1526
        case SVX_NUM_CHARS_LOWER_LETTER:
1526
        case SVX_NUM_CHARS_LOWER_LETTER_N:  nVal = 4;       break;
1527
        case SVX_NUM_CHARS_LOWER_LETTER_N:  nVal = 4;       break;
1528
    	case SVX_NUM_FULL_WIDTH_ARABIC:		nVal=19;	break;
1529
    	case SVX_NUM_CIRCLE_NUMBER:		nVal=18;	break;
1530
    	case SVX_NUM_NUMBER_LOWER_ZH:	
1527
1531
1532
	if (LANGUAGE_CHINESE_SIMPLIFIED == 
1533
		Application::GetSettings().GetLanguage())
1534
	{
1535
		nVal=39;/* 39 for ZH_CN*/
1536
	} else {
1537
		nVal=35;/* 35 for ZH_TW or the others*/
1538
	}
1539
1540
1541
	break; 
1542
    	case SVX_NUM_NUMBER_UPPER_ZH:	nVal=38;	break;
1543
    	case SVX_NUM_NUMBER_UPPER_ZH_TW:	nVal=34;	break;
1544
    	case SVX_NUM_TIAN_GAN_ZH:		nVal=30;	break;
1545
    	case SVX_NUM_DI_ZI_ZH:		nVal=31;	break;
1546
	/* Among 10,11,16, and 17, 16 have the result closest to AOO
1547
	   observed in MSO 2010 under Windows 7 traidtional Chinese version. 
1548
        */
1549
    	//case SVX_NUM_NUMBER_TRADITIONAL_JA:	nVal=16;	break;
1550
    	case SVX_NUM_AIU_FULLWIDTH_JA:	nVal=20;	break;
1551
    	case SVX_NUM_AIU_HALFWIDTH_JA:	nVal=12;	break;
1552
    	case SVX_NUM_IROHA_FULLWIDTH_JA:	nVal=21;	break;
1553
    	case SVX_NUM_IROHA_HALFWIDTH_JA:	nVal=13;	break;
1554
case style::NumberingType::HANGUL_SYLLABLE_KO:	nVal = 24; break;// ganada
1555
case style::NumberingType::HANGUL_JAMO_KO:	nVal = 25; break;// chosung
1556
case style::NumberingType::HANGUL_CIRCLED_SYLLABLE_KO:	nVal = 24; break;
1557
case style::NumberingType::HANGUL_CIRCLED_JAMO_KO:	nVal = 25; break;
1558
case style::NumberingType::NUMBER_HANGUL_KO:		nVal = 41; break;
1559
case style::NumberingType::NUMBER_UPPER_KO:		nVal = 44; break;
1528
        case SVX_NUM_BITMAP:
1560
        case SVX_NUM_BITMAP:
1529
        case SVX_NUM_CHAR_SPECIAL:                  nVal = 23;      break;
1561
        case SVX_NUM_CHAR_SPECIAL:                  nVal = 23;      break;
1562
1530
    }
1563
    }
1531
    m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_LEVELNFC;
1564
    m_rExport.Strm() << OOO_STRING_SVTOOLS_RTF_LEVELNFC;
1532
    m_rExport.OutULong( nVal );
1565
    m_rExport.OutULong( nVal );

Return to issue 125400