diff options
author | Petr Mladek <pmladek@suse.cz> | 2013-03-04 16:56:53 +0100 |
---|---|---|
committer | Petr Mladek <pmladek@suse.cz> | 2013-03-04 16:56:53 +0100 |
commit | 08e4a33966786b29550406fbd20ec8bb4f04d5b4 (patch) | |
tree | 1b184355689670680ac48eeefb4144babc76bea9 /xmloff | |
parent | bafef6a9e36380c7c75169e600632914fe099453 (diff) | |
parent | 5b932053079c0ed73ea23fd802d5f2f7c291ec25 (diff) |
Merge tag 'libreoffice-3.6.5.2' into suse-3.6
Tag libreoffice-3.6.5.2
Conflicts:
editeng/source/editeng/impedit3.cxx
instsetoo_native/util/openoffice.lst
oovbaapi/UnoApi_oovbaapi.mk
sc/source/filter/oox/workbookhelper.cxx
sc/source/ui/app/scmod.cxx
sc/source/ui/cctrl/checklistmenu.cxx
solenv/inc/minor.mk
writerfilter/source/dmapper/DomainMapper_Impl.cxx
writerfilter/source/dmapper/DomainMapper_Impl.hxx
writerfilter/source/dmapper/PropertyMap.cxx
Change-Id: I7ea70b82b3b874cbe78354d5dd97307e63842e72
Diffstat (limited to 'xmloff')
-rw-r--r-- | xmloff/inc/xmloff/xmlnumfe.hxx | 2 | ||||
-rw-r--r-- | xmloff/inc/xmloff/xmltoken.hxx | 1 | ||||
-rw-r--r-- | xmloff/source/core/xmltoken.cxx | 1 | ||||
-rw-r--r-- | xmloff/source/style/xmlnumfe.cxx | 21 | ||||
-rw-r--r-- | xmloff/source/style/xmlnumfi.cxx | 20 |
5 files changed, 34 insertions, 11 deletions
diff --git a/xmloff/inc/xmloff/xmlnumfe.hxx b/xmloff/inc/xmloff/xmlnumfe.hxx index b1f00e72ca95..6521a448f68d 100644 --- a/xmloff/inc/xmloff/xmlnumfe.hxx +++ b/xmloff/inc/xmloff/xmlnumfe.hxx @@ -76,7 +76,7 @@ private: SAL_DLLPRIVATE void WriteScientificElement_Impl( sal_Int32 nDecimals, sal_Int32 nInteger, sal_Bool bGrouping, sal_Int32 nExp ); SAL_DLLPRIVATE void WriteFractionElement_Impl( sal_Int32 nInteger, sal_Bool bGrouping, - sal_Int32 nNumerator, sal_Int32 nDenominator ); + sal_Int32 nNumeratorDigits, sal_Int32 nDenominatorDigits, sal_Int32 nDenominator ); SAL_DLLPRIVATE void WriteCurrencyElement_Impl( const ::rtl::OUString& rString, const ::rtl::OUString& rExt ); SAL_DLLPRIVATE void WriteBooleanElement_Impl(); diff --git a/xmloff/inc/xmloff/xmltoken.hxx b/xmloff/inc/xmloff/xmltoken.hxx index e45091eeaff5..16fe5e86744a 100644 --- a/xmloff/inc/xmloff/xmltoken.hxx +++ b/xmloff/inc/xmloff/xmltoken.hxx @@ -597,6 +597,7 @@ namespace xmloff { namespace token { XML_DELAY, XML_DELETION, XML_DELETIONS, + XML_DENOMINATOR_VALUE, XML_DEPENDENCE, XML_DEPENDENCES, XML_DEPENDENCIES, diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx index 875d0d933fb9..a1147aa8a462 100644 --- a/xmloff/source/core/xmltoken.cxx +++ b/xmloff/source/core/xmltoken.cxx @@ -601,6 +601,7 @@ namespace xmloff { namespace token { TOKEN( "delay", XML_DELAY ), TOKEN( "deletion", XML_DELETION ), TOKEN( "deletions", XML_DELETIONS ), + TOKEN( "denominator-value", XML_DENOMINATOR_VALUE ), TOKEN( "dependence", XML_DEPENDENCE ), TOKEN( "dependences", XML_DEPENDENCES ), TOKEN( "dependencies", XML_DEPENDENCIES ), diff --git a/xmloff/source/style/xmlnumfe.cxx b/xmloff/source/style/xmlnumfe.cxx index c4f93608ba15..27c0b94548ee 100644 --- a/xmloff/source/style/xmlnumfe.cxx +++ b/xmloff/source/style/xmlnumfe.cxx @@ -675,7 +675,7 @@ void SvXMLNumFmtExport::WriteScientificElement_Impl( void SvXMLNumFmtExport::WriteFractionElement_Impl( sal_Int32 nInteger, sal_Bool bGrouping, - sal_Int32 nNumerator, sal_Int32 nDenominator ) + sal_Int32 nNumeratorDigits, sal_Int32 nDenominatorDigits, sal_Int32 nDenominator ) { FinishTextElement_Impl(); @@ -693,17 +693,23 @@ void SvXMLNumFmtExport::WriteFractionElement_Impl( } // numerator digits - if ( nNumerator >= 0 ) + if ( nNumeratorDigits >= 0 ) { rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_MIN_NUMERATOR_DIGITS, - OUString::valueOf( nNumerator ) ); + OUString::valueOf( nNumeratorDigits ) ); } - // denominator digits - if ( nDenominator >= 0 ) + if ( nDenominator ) + { + rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_DENOMINATOR_VALUE, + OUString::valueOf( nDenominator) ); + } + // I guess it's not necessary to export nDenominatorDigits + // if we have a forced denominator ( remove ? ) + if ( nDenominatorDigits >= 0 ) { rExport.AddAttribute( XML_NAMESPACE_NUMBER, XML_MIN_DENOMINATOR_DIGITS, - OUString::valueOf( nDenominator ) ); + OUString::valueOf( nDenominatorDigits ) ); } SvXMLElementExport aElem( rExport, XML_NAMESPACE_NUMBER, XML_FRACTION, @@ -1414,7 +1420,8 @@ void SvXMLNumFmtExport::ExportPart_Impl( const SvNumberformat& rFormat, sal_uInt // min-integer-digits attribute must be written. nInteger = -1; } - WriteFractionElement_Impl( nInteger, bThousand, nPrecision, nPrecision ); + sal_Int32 nDenominator = rFormat.GetForcedDenominatorForType( nPart ); + WriteFractionElement_Impl( nInteger, bThousand, nPrecision, nPrecision, nDenominator ); bAnyContent = sal_True; } break; diff --git a/xmloff/source/style/xmlnumfi.cxx b/xmloff/source/style/xmlnumfi.cxx index 15d55fec2c4c..fcd92bdae280 100644 --- a/xmloff/source/style/xmlnumfi.cxx +++ b/xmloff/source/style/xmlnumfi.cxx @@ -129,6 +129,7 @@ struct SvXMLNumberInfo sal_Int32 nExpDigits; sal_Int32 nNumerDigits; sal_Int32 nDenomDigits; + sal_Int32 nFracDenominator; sal_Bool bGrouping; sal_Bool bDecReplace; sal_Bool bVarDecimals; @@ -137,7 +138,7 @@ struct SvXMLNumberInfo SvXMLNumberInfo() { - nDecimals = nInteger = nExpDigits = nNumerDigits = nDenomDigits = -1; + nDecimals = nInteger = nExpDigits = nNumerDigits = nDenomDigits = nFracDenominator = -1; bGrouping = bDecReplace = bVarDecimals = sal_False; fDisplayFactor = 1.0; } @@ -291,6 +292,7 @@ enum SvXMLStyleElemAttrTokens XML_TOK_ELEM_ATTR_GROUPING, XML_TOK_ELEM_ATTR_DISPLAY_FACTOR, XML_TOK_ELEM_ATTR_DECIMAL_REPLACEMENT, + XML_TOK_ELEM_ATTR_DENOMINATOR_VALUE, XML_TOK_ELEM_ATTR_MIN_EXPONENT_DIGITS, XML_TOK_ELEM_ATTR_MIN_NUMERATOR_DIGITS, XML_TOK_ELEM_ATTR_MIN_DENOMINATOR_DIGITS, @@ -583,6 +585,7 @@ const SvXMLTokenMap& SvXMLNumImpData::GetStyleElemAttrTokenMap() { XML_NAMESPACE_NUMBER, XML_GROUPING, XML_TOK_ELEM_ATTR_GROUPING }, { XML_NAMESPACE_NUMBER, XML_DISPLAY_FACTOR, XML_TOK_ELEM_ATTR_DISPLAY_FACTOR }, { XML_NAMESPACE_NUMBER, XML_DECIMAL_REPLACEMENT, XML_TOK_ELEM_ATTR_DECIMAL_REPLACEMENT }, + { XML_NAMESPACE_NUMBER, XML_DENOMINATOR_VALUE, XML_TOK_ELEM_ATTR_DENOMINATOR_VALUE }, { XML_NAMESPACE_NUMBER, XML_MIN_EXPONENT_DIGITS, XML_TOK_ELEM_ATTR_MIN_EXPONENT_DIGITS }, { XML_NAMESPACE_NUMBER, XML_MIN_NUMERATOR_DIGITS, XML_TOK_ELEM_ATTR_MIN_NUMERATOR_DIGITS }, { XML_NAMESPACE_NUMBER, XML_MIN_DENOMINATOR_DIGITS, XML_TOK_ELEM_ATTR_MIN_DENOMINATOR_DIGITS }, @@ -986,6 +989,10 @@ SvXMLNumFmtElementContext::SvXMLNumFmtElementContext( SvXMLImport& rImport, if (::sax::Converter::convertNumber( nAttrVal, sValue, 0 )) aNumInfo.nDenomDigits = nAttrVal; break; + case XML_TOK_ELEM_ATTR_DENOMINATOR_VALUE: + if (::sax::Converter::convertNumber( nAttrVal, sValue, 0 )) + aNumInfo.nFracDenominator = nAttrVal; + break; case XML_TOK_ELEM_ATTR_LANGUAGE: sLanguage = sValue; break; @@ -1207,8 +1214,15 @@ void SvXMLNumFmtElementContext::EndElement() for (i=0; i<aNumInfo.nNumerDigits; i++) rParent.AddToCode( OUString::valueOf((sal_Unicode)'?') ); rParent.AddToCode( OUString::valueOf((sal_Unicode)'/') ); - for (i=0; i<aNumInfo.nDenomDigits; i++) - rParent.AddToCode( OUString::valueOf((sal_Unicode)'?') ); + if ( aNumInfo.nFracDenominator > 0 ) + { + rParent.AddToCode( OUString::valueOf( aNumInfo.nFracDenominator ) ); + } + else + { + for (i=0; i<aNumInfo.nDenomDigits; i++) + rParent.AddToCode( OUString::valueOf((sal_Unicode)'?') ); + } } break; |