diff options
author | Noel <noelgrandin@gmail.com> | 2020-12-15 09:38:19 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2020-12-15 10:50:28 +0100 |
commit | a79e6a7cf1ce3be46e4339a54b013ddaa534dd39 (patch) | |
tree | 3de6cf2d804dfe0e929f999103fa1c2c01b9ec53 /xmloff/source/style | |
parent | 15e4427e8fb56a143caa28b8a3120f3761fc77a5 (diff) |
use views to parse rather than allocating OUString
Change-Id: If0a848c64ce8077d1681661873629c83307cf8b2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107736
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'xmloff/source/style')
-rw-r--r-- | xmloff/source/style/DashStyle.cxx | 30 | ||||
-rw-r--r-- | xmloff/source/style/GradientStyle.cxx | 24 | ||||
-rw-r--r-- | xmloff/source/style/HatchStyle.cxx | 13 | ||||
-rw-r--r-- | xmloff/source/style/TransGradientStyle.cxx | 20 | ||||
-rw-r--r-- | xmloff/source/style/XMLFootnoteSeparatorImport.cxx | 15 | ||||
-rw-r--r-- | xmloff/source/style/xmlnumfi.cxx | 86 | ||||
-rw-r--r-- | xmloff/source/style/xmlnumi.cxx | 78 | ||||
-rw-r--r-- | xmloff/source/style/xmltabi.cxx | 26 |
8 files changed, 137 insertions, 155 deletions
diff --git a/xmloff/source/style/DashStyle.cxx b/xmloff/source/style/DashStyle.cxx index 18462d82b4c4..68aeb7770966 100644 --- a/xmloff/source/style/DashStyle.cxx +++ b/xmloff/source/style/DashStyle.cxx @@ -78,66 +78,64 @@ void XMLDashStyleImport::importXML( for (auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList )) { - const OUString aStrValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(DRAW, XML_NAME): case XML_ELEMENT(DRAW_OOO, XML_NAME): { - rStrName = aStrValue; + rStrName = aIter.toString(); } break; case XML_ELEMENT(DRAW, XML_DISPLAY_NAME): case XML_ELEMENT(DRAW_OOO, XML_DISPLAY_NAME): { - aDisplayName = aStrValue; + aDisplayName = aIter.toString(); } break; case XML_ELEMENT(DRAW, XML_STYLE): case XML_ELEMENT(DRAW_OOO, XML_STYLE): { - SvXMLUnitConverter::convertEnum( aLineDash.Style, aStrValue, pXML_DashStyle_Enum ); + SvXMLUnitConverter::convertEnum( aLineDash.Style, aIter.toString(), pXML_DashStyle_Enum ); } break; case XML_ELEMENT(DRAW, XML_DOTS1): case XML_ELEMENT(DRAW_OOO, XML_DOTS1): - aLineDash.Dots = static_cast<sal_Int16>(aStrValue.toInt32()); + aLineDash.Dots = static_cast<sal_Int16>(aIter.toInt32()); break; case XML_ELEMENT(DRAW, XML_DOTS1_LENGTH): case XML_ELEMENT(DRAW_OOO, XML_DOTS1_LENGTH): { - if( aStrValue.indexOf( '%' ) != -1 ) // it's a percentage + if( aIter.toView().find( '%' ) != std::string_view::npos ) // it's a percentage { bIsRel = true; - ::sax::Converter::convertPercent(aLineDash.DotLen, aStrValue); + ::sax::Converter::convertPercent(aLineDash.DotLen, aIter.toView()); } else { rUnitConverter.convertMeasureToCore( aLineDash.DotLen, - aStrValue ); + aIter.toView() ); } } break; case XML_ELEMENT(DRAW, XML_DOTS2): case XML_ELEMENT(DRAW_OOO, XML_DOTS2): - aLineDash.Dashes = static_cast<sal_Int16>(aStrValue.toInt32()); + aLineDash.Dashes = static_cast<sal_Int16>(aIter.toInt32()); break; case XML_ELEMENT(DRAW, XML_DOTS2_LENGTH): case XML_ELEMENT(DRAW_OOO, XML_DOTS2_LENGTH): { - if( aStrValue.indexOf( '%' ) != -1 ) // it's a percentage + if( aIter.toView().find( '%' ) != std::string_view::npos ) // it's a percentage { bIsRel = true; - ::sax::Converter::convertPercent(aLineDash.DashLen, aStrValue); + ::sax::Converter::convertPercent(aLineDash.DashLen, aIter.toView()); } else { rUnitConverter.convertMeasureToCore( aLineDash.DashLen, - aStrValue ); + aIter.toView() ); } } break; @@ -145,15 +143,15 @@ void XMLDashStyleImport::importXML( case XML_ELEMENT(DRAW, XML_DISTANCE): case XML_ELEMENT(DRAW_OOO, XML_DISTANCE): { - if( aStrValue.indexOf( '%' ) != -1 ) // it's a percentage + if( aIter.toView().find( '%' ) != std::string_view::npos ) // it's a percentage { bIsRel = true; - ::sax::Converter::convertPercent(aLineDash.Distance, aStrValue); + ::sax::Converter::convertPercent(aLineDash.Distance, aIter.toView()); } else { rUnitConverter.convertMeasureToCore( aLineDash.Distance, - aStrValue ); + aIter.toView() ); } } break; diff --git a/xmloff/source/style/GradientStyle.cxx b/xmloff/source/style/GradientStyle.cxx index 221023d6e072..47070f0ac67c 100644 --- a/xmloff/source/style/GradientStyle.cxx +++ b/xmloff/source/style/GradientStyle.cxx @@ -78,48 +78,46 @@ void XMLGradientStyleImport::importXML( for (auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList )) { - const OUString aStrValue = aIter.toString(); - sal_Int32 nTmpValue; switch( aIter.getToken() ) { case XML_ELEMENT(DRAW, XML_NAME): - rStrName = aStrValue; + rStrName = aIter.toString(); break; case XML_ELEMENT(DRAW, XML_DISPLAY_NAME): - aDisplayName = aStrValue; + aDisplayName = aIter.toString(); break; case XML_ELEMENT(DRAW, XML_STYLE): - SvXMLUnitConverter::convertEnum( aGradient.Style, aStrValue, pXML_GradientStyle_Enum ); + SvXMLUnitConverter::convertEnum( aGradient.Style, aIter.toString(), pXML_GradientStyle_Enum ); break; case XML_ELEMENT(DRAW, XML_CX): - ::sax::Converter::convertPercent( nTmpValue, aStrValue ); + ::sax::Converter::convertPercent( nTmpValue, aIter.toView() ); aGradient.XOffset = static_cast< sal_Int16 >( nTmpValue ); break; case XML_ELEMENT(DRAW, XML_CY): - ::sax::Converter::convertPercent( nTmpValue, aStrValue ); + ::sax::Converter::convertPercent( nTmpValue, aIter.toView() ); aGradient.YOffset = static_cast< sal_Int16 >( nTmpValue ); break; case XML_ELEMENT(DRAW, XML_START_COLOR): - ::sax::Converter::convertColor(aGradient.StartColor, aStrValue); + ::sax::Converter::convertColor(aGradient.StartColor, aIter.toString()); break; case XML_ELEMENT(DRAW, XML_END_COLOR): - ::sax::Converter::convertColor(aGradient.EndColor, aStrValue); + ::sax::Converter::convertColor(aGradient.EndColor, aIter.toString()); break; case XML_ELEMENT(DRAW, XML_START_INTENSITY): - ::sax::Converter::convertPercent( nTmpValue, aStrValue ); + ::sax::Converter::convertPercent( nTmpValue, aIter.toView() ); aGradient.StartIntensity = static_cast< sal_Int16 >( nTmpValue ); break; case XML_ELEMENT(DRAW, XML_END_INTENSITY): - ::sax::Converter::convertPercent( nTmpValue, aStrValue ); + ::sax::Converter::convertPercent( nTmpValue, aIter.toView() ); aGradient.EndIntensity = static_cast< sal_Int16 >( nTmpValue ); break; case XML_ELEMENT(DRAW, XML_GRADIENT_ANGLE): { auto const cmp12(rImport.GetODFVersion().compareTo(u"" ODFVER_012_TEXT)); bool const bSuccess = - ::sax::Converter::convertAngle(aGradient.Angle, aStrValue, + ::sax::Converter::convertAngle(aGradient.Angle, aIter.toView(), // tdf#89475 try to detect borked OOo angles (cmp12 < 0) || (cmp12 == 0 && (rImport.isGeneratorVersionOlderThan(SvXMLImport::AOO_4x, SvXMLImport::LO_7x) @@ -129,7 +127,7 @@ void XMLGradientStyleImport::importXML( } break; case XML_ELEMENT(DRAW, XML_BORDER): - ::sax::Converter::convertPercent( nTmpValue, aStrValue ); + ::sax::Converter::convertPercent( nTmpValue, aIter.toView() ); aGradient.Border = static_cast< sal_Int16 >( nTmpValue ); break; diff --git a/xmloff/source/style/HatchStyle.cxx b/xmloff/source/style/HatchStyle.cxx index eeee5edd2423..59d79a838551 100644 --- a/xmloff/source/style/HatchStyle.cxx +++ b/xmloff/source/style/HatchStyle.cxx @@ -75,34 +75,33 @@ void XMLHatchStyleImport::importXML( for (auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList )) { - const OUString aStrValue = aIter.toString(); switch( aIter.getToken() ) { case XML_ELEMENT(DRAW, XML_NAME): case XML_ELEMENT(DRAW_OOO, XML_NAME): - rStrName = aStrValue; + rStrName = aIter.toString(); break; case XML_ELEMENT(DRAW, XML_DISPLAY_NAME): case XML_ELEMENT(DRAW_OOO, XML_DISPLAY_NAME): - aDisplayName = aStrValue; + aDisplayName = aIter.toString(); break; case XML_ELEMENT(DRAW, XML_STYLE): case XML_ELEMENT(DRAW_OOO, XML_STYLE): - SvXMLUnitConverter::convertEnum( aHatch.Style, aStrValue, pXML_HatchStyle_Enum ); + SvXMLUnitConverter::convertEnum( aHatch.Style, aIter.toString(), pXML_HatchStyle_Enum ); break; case XML_ELEMENT(DRAW, XML_COLOR): case XML_ELEMENT(DRAW_OOO, XML_COLOR): - ::sax::Converter::convertColor(aHatch.Color, aStrValue); + ::sax::Converter::convertColor(aHatch.Color, aIter.toString()); break; case XML_ELEMENT(DRAW, XML_DISTANCE): case XML_ELEMENT(DRAW_OOO, XML_DISTANCE): - rUnitConverter.convertMeasureToCore(aHatch.Distance, aStrValue); + rUnitConverter.convertMeasureToCore(aHatch.Distance, aIter.toView()); break; case XML_ELEMENT(DRAW, XML_ROTATION): case XML_ELEMENT(DRAW_OOO, XML_ROTATION): { sal_Int32 nValue; - if (::sax::Converter::convertNumber(nValue, aStrValue, 0, 3600)) + if (::sax::Converter::convertNumber(nValue, aIter.toView(), 0, 3600)) aHatch.Angle = sal_Int16(nValue); break; } diff --git a/xmloff/source/style/TransGradientStyle.cxx b/xmloff/source/style/TransGradientStyle.cxx index 8f7fe41d1444..f7cbb53a753a 100644 --- a/xmloff/source/style/TransGradientStyle.cxx +++ b/xmloff/source/style/TransGradientStyle.cxx @@ -79,39 +79,37 @@ void XMLTransGradientStyleImport::importXML( for (auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList )) { - const OUString aStrValue = aIter.toString(); - sal_Int32 nTmpValue; switch( aIter.getToken() ) { case XML_ELEMENT(DRAW, XML_NAME): { - rStrName = aStrValue; + rStrName = aIter.toString(); } break; case XML_ELEMENT(DRAW, XML_DISPLAY_NAME): { - aDisplayName = aStrValue; + aDisplayName = aIter.toString(); } break; case XML_ELEMENT(DRAW, XML_STYLE): { - SvXMLUnitConverter::convertEnum( aGradient.Style, aStrValue, pXML_GradientStyle_Enum ); + SvXMLUnitConverter::convertEnum( aGradient.Style, aIter.toString(), pXML_GradientStyle_Enum ); } break; case XML_ELEMENT(DRAW, XML_CX): - ::sax::Converter::convertPercent( nTmpValue, aStrValue ); + ::sax::Converter::convertPercent( nTmpValue, aIter.toView() ); aGradient.XOffset = sal::static_int_cast< sal_Int16 >(nTmpValue); break; case XML_ELEMENT(DRAW, XML_CY): - ::sax::Converter::convertPercent( nTmpValue, aStrValue ); + ::sax::Converter::convertPercent( nTmpValue, aIter.toView() ); aGradient.YOffset = sal::static_int_cast< sal_Int16 >(nTmpValue); break; case XML_ELEMENT(DRAW, XML_START): { sal_Int32 aStartTransparency; - ::sax::Converter::convertPercent( aStartTransparency, aStrValue ); + ::sax::Converter::convertPercent( aStartTransparency, aIter.toView() ); sal_uInt8 n = sal::static_int_cast< sal_uInt8 >( ( (100 - aStartTransparency) * 255 ) / 100 ); @@ -123,7 +121,7 @@ void XMLTransGradientStyleImport::importXML( case XML_ELEMENT(DRAW, XML_END): { sal_Int32 aEndTransparency; - ::sax::Converter::convertPercent( aEndTransparency, aStrValue ); + ::sax::Converter::convertPercent( aEndTransparency, aIter.toView() ); sal_uInt8 n = sal::static_int_cast< sal_uInt8 >( ( (100 - aEndTransparency) * 255 ) / 100 ); @@ -136,7 +134,7 @@ void XMLTransGradientStyleImport::importXML( { auto const cmp12(rImport.GetODFVersion().compareTo(u"" ODFVER_012_TEXT)); bool const bSuccess = - ::sax::Converter::convertAngle(aGradient.Angle, aStrValue, + ::sax::Converter::convertAngle(aGradient.Angle, aIter.toView(), // tdf#89475 try to detect borked OOo angles (cmp12 < 0) || (cmp12 == 0 && (rImport.isGeneratorVersionOlderThan(SvXMLImport::AOO_4x, SvXMLImport::LO_7x) @@ -146,7 +144,7 @@ void XMLTransGradientStyleImport::importXML( } break; case XML_ELEMENT(DRAW, XML_BORDER): - ::sax::Converter::convertPercent( nTmpValue, aStrValue ); + ::sax::Converter::convertPercent( nTmpValue, aIter.toView() ); aGradient.Border = sal::static_int_cast< sal_Int16 >(nTmpValue); break; diff --git a/xmloff/source/style/XMLFootnoteSeparatorImport.cxx b/xmloff/source/style/XMLFootnoteSeparatorImport.cxx index f2b776510e6c..879f4d3ffa13 100644 --- a/xmloff/source/style/XMLFootnoteSeparatorImport.cxx +++ b/xmloff/source/style/XMLFootnoteSeparatorImport.cxx @@ -89,14 +89,13 @@ void XMLFootnoteSeparatorImport::startFastElement( // iterate over xattribute list and fill values for (auto &aIter : sax_fastparser::castToFastAttributeList(xAttrList)) { - OUString sAttrValue = aIter.toString(); sal_Int32 nTmp; switch (aIter.getToken()) { case XML_ELEMENT(STYLE, XML_WIDTH): { if (GetImport().GetMM100UnitConverter().convertMeasureToCore( - nTmp, sAttrValue)) + nTmp, aIter.toView())) { nLineWeight = static_cast<sal_Int16>(nTmp); } @@ -105,14 +104,14 @@ void XMLFootnoteSeparatorImport::startFastElement( case XML_ELEMENT(STYLE, XML_DISTANCE_BEFORE_SEP): { if (GetImport().GetMM100UnitConverter().convertMeasureToCore( - nTmp, sAttrValue)) + nTmp, aIter.toView())) nLineTextDistance = nTmp; break; } case XML_ELEMENT(STYLE, XML_DISTANCE_AFTER_SEP): { if (GetImport().GetMM100UnitConverter().convertMeasureToCore( - nTmp, sAttrValue)) + nTmp, aIter.toView())) nLineDistance = nTmp; break; } @@ -127,18 +126,18 @@ void XMLFootnoteSeparatorImport::startFastElement( }; SvXMLUnitConverter::convertEnum( - eLineAdjust, sAttrValue, aXML_HorizontalAdjust_Enum); + eLineAdjust, aIter.toString(), aXML_HorizontalAdjust_Enum); break; } case XML_ELEMENT(STYLE, XML_REL_WIDTH ): { - if (::sax::Converter::convertPercent(nTmp, sAttrValue)) + if (::sax::Converter::convertPercent(nTmp, aIter.toView())) nLineRelWidth = static_cast<sal_uInt8>(nTmp); break; } case XML_ELEMENT(STYLE, XML_COLOR): { - if (::sax::Converter::convertColor(nTmp, sAttrValue)) + if (::sax::Converter::convertColor(nTmp, aIter.toView())) { nLineColor = nTmp; } @@ -155,7 +154,7 @@ void XMLFootnoteSeparatorImport::startFastElement( { XML_TOKEN_INVALID, 0 } }; - SvXMLUnitConverter::convertEnum(nLineStyle, sAttrValue, aXML_LineStyle_Enum); + SvXMLUnitConverter::convertEnum(nLineStyle, aIter.toString(), aXML_LineStyle_Enum); break; } default: diff --git a/xmloff/source/style/xmlnumfi.cxx b/xmloff/source/style/xmlnumfi.cxx index 1910950e9662..10c57aaa04f8 100644 --- a/xmloff/source/style/xmlnumfi.cxx +++ b/xmloff/source/style/xmlnumfi.cxx @@ -421,12 +421,11 @@ SvXMLNumFmtPropContext::SvXMLNumFmtPropContext( SvXMLImport& rImport, { for( auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList ) ) { - OUString sValue = aIter.toString(); switch ( aIter.getToken()) { case XML_ELEMENT(FO, XML_COLOR): case XML_ELEMENT(FO_COMPAT, XML_COLOR): - bColSet = ::sax::Converter::convertColor( m_nColor, sValue ); + bColSet = ::sax::Converter::convertColor( m_nColor, aIter.toString() ); break; default: XMLOFF_WARN_UNKNOWN("xmloff", aIter); @@ -456,10 +455,9 @@ SvXMLNumFmtEmbeddedTextContext::SvXMLNumFmtEmbeddedTextContext( SvXMLImport& rIm for( auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList ) ) { - OUString sValue = aIter.toString(); if ( aIter.getToken() == XML_ELEMENT(NUMBER, XML_POSITION) ) { - if (::sax::Converter::convertNumber( nAttrVal, sValue, 0 )) + if (::sax::Converter::convertNumber( nAttrVal, aIter.toView(), 0 )) nTextPosition = nAttrVal; } else @@ -655,11 +653,10 @@ SvXMLNumFmtElementContext::SvXMLNumFmtElementContext( SvXMLImport& rImport, for( auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList ) ) { - OUString sValue = aIter.toString(); switch (aIter.getToken()) { case XML_ELEMENT(NUMBER, XML_DECIMAL_PLACES): - if (::sax::Converter::convertNumber( nAttrVal, sValue, 0 )) + if (::sax::Converter::convertNumber( nAttrVal, aIter.toView(), 0 )) { // fdo#58539 & gnome#627420: limit number of digits during import aNumInfo.nDecimals = std::min<sal_Int32>(nAttrVal, NF_MAX_FORMAT_SYMBOLS); @@ -667,61 +664,61 @@ SvXMLNumFmtElementContext::SvXMLNumFmtElementContext( SvXMLImport& rImport, break; case XML_ELEMENT(LO_EXT, XML_MIN_DECIMAL_PLACES): case XML_ELEMENT(NUMBER, XML_MIN_DECIMAL_PLACES): - if (::sax::Converter::convertNumber( nAttrVal, sValue, 0 )) + if (::sax::Converter::convertNumber( nAttrVal, aIter.toView(), 0 )) aNumInfo.nMinDecimalDigits = nAttrVal; break; case XML_ELEMENT(NUMBER, XML_MIN_INTEGER_DIGITS): - if (::sax::Converter::convertNumber( nAttrVal, sValue, 0 )) + if (::sax::Converter::convertNumber( nAttrVal, aIter.toView(), 0 )) aNumInfo.nInteger = nAttrVal; break; case XML_ELEMENT(NUMBER, XML_GROUPING): - if (::sax::Converter::convertBool( bAttrBool, sValue )) + if (::sax::Converter::convertBool( bAttrBool, aIter.toView() )) aNumInfo.bGrouping = bAttrBool; break; case XML_ELEMENT(NUMBER, XML_DISPLAY_FACTOR): - if (::sax::Converter::convertDouble( fAttrDouble, sValue )) + if (::sax::Converter::convertDouble( fAttrDouble, aIter.toView() )) aNumInfo.fDisplayFactor = fAttrDouble; break; case XML_ELEMENT(NUMBER, XML_DECIMAL_REPLACEMENT): - if ( sValue == " " ) + if ( aIter.toView() == " " ) { aNumInfo.bDecAlign = true; // space replacement for "?" bVarDecimals = true; } else - if ( sValue.isEmpty() ) + if ( aIter.isEmpty() ) bVarDecimals = true; // empty replacement string: variable decimals else // all other strings aNumInfo.bDecReplace = true; // decimal replacement with dashes break; case XML_ELEMENT(NUMBER, XML_MIN_EXPONENT_DIGITS): - if (::sax::Converter::convertNumber( nAttrVal, sValue, 0 )) + if (::sax::Converter::convertNumber( nAttrVal, aIter.toView(), 0 )) aNumInfo.nExpDigits = std::min<sal_Int32>(nAttrVal, NF_MAX_FORMAT_SYMBOLS); break; case XML_ELEMENT(NUMBER, XML_EXPONENT_INTERVAL): case XML_ELEMENT(LO_EXT, XML_EXPONENT_INTERVAL): - if (::sax::Converter::convertNumber( nAttrVal, sValue, 0 )) + if (::sax::Converter::convertNumber( nAttrVal, aIter.toView(), 0 )) aNumInfo.nExpInterval = nAttrVal; break; case XML_ELEMENT(NUMBER, XML_FORCED_EXPONENT_SIGN): case XML_ELEMENT(LO_EXT, XML_FORCED_EXPONENT_SIGN): - if (::sax::Converter::convertBool( bAttrBool, sValue )) + if (::sax::Converter::convertBool( bAttrBool, aIter.toView() )) aNumInfo.bExpSign = bAttrBool; break; case XML_ELEMENT(NUMBER, XML_MIN_NUMERATOR_DIGITS): - if (::sax::Converter::convertNumber( nAttrVal, sValue, 0 )) + if (::sax::Converter::convertNumber( nAttrVal, aIter.toView(), 0 )) aNumInfo.nMinNumerDigits = nAttrVal; break; case XML_ELEMENT(NUMBER, XML_MIN_DENOMINATOR_DIGITS): - if (::sax::Converter::convertNumber( nAttrVal, sValue, 0 )) + if (::sax::Converter::convertNumber( nAttrVal, aIter.toView(), 0 )) aNumInfo.nMinDenomDigits = nAttrVal; break; case XML_ELEMENT(LO_EXT, XML_MAX_NUMERATOR_DIGITS): - if (::sax::Converter::convertNumber( nAttrVal, sValue, 1 )) // at least one '#' + if (::sax::Converter::convertNumber( nAttrVal, aIter.toView(), 1 )) // at least one '#' aNumInfo.nMaxNumerDigits = nAttrVal; break; case XML_ELEMENT(NUMBER, XML_DENOMINATOR_VALUE): - if (::sax::Converter::convertNumber( nAttrVal, sValue, 1 )) // 0 is not valid + if (::sax::Converter::convertNumber( nAttrVal, aIter.toView(), 1 )) // 0 is not valid { aNumInfo.nFracDenominator = nAttrVal; bIsMaxDenominator = false; @@ -729,7 +726,7 @@ SvXMLNumFmtElementContext::SvXMLNumFmtElementContext( SvXMLImport& rImport, break; case XML_ELEMENT(NUMBER, XML_MAX_DENOMINATOR_VALUE): // part of ODF 1.3 case XML_ELEMENT(LO_EXT, XML_MAX_DENOMINATOR_VALUE): - if (::sax::Converter::convertNumber( nAttrVal, sValue, 1 ) && aNumInfo.nFracDenominator <= 0) + if (::sax::Converter::convertNumber( nAttrVal, aIter.toView(), 1 ) && aNumInfo.nFracDenominator <= 0) { // if denominator value not yet defined aNumInfo.nFracDenominator = nAttrVal; bIsMaxDenominator = true; @@ -737,39 +734,39 @@ SvXMLNumFmtElementContext::SvXMLNumFmtElementContext( SvXMLImport& rImport, break; case XML_ELEMENT(LO_EXT, XML_ZEROS_NUMERATOR_DIGITS): case XML_ELEMENT(NUMBER, XML_ZEROS_NUMERATOR_DIGITS): - if (::sax::Converter::convertNumber( nAttrVal, sValue, 0 )) + if (::sax::Converter::convertNumber( nAttrVal, aIter.toView(), 0 )) aNumInfo.nZerosNumerDigits = nAttrVal; break; case XML_ELEMENT(NUMBER, XML_ZEROS_DENOMINATOR_DIGITS): case XML_ELEMENT(LO_EXT, XML_ZEROS_DENOMINATOR_DIGITS): - if (::sax::Converter::convertNumber( nAttrVal, sValue, 0 )) + if (::sax::Converter::convertNumber( nAttrVal, aIter.toView(), 0 )) aNumInfo.nZerosDenomDigits = nAttrVal; break; case XML_ELEMENT(NUMBER, XML_INTEGER_FRACTION_DELIMITER): case XML_ELEMENT(LO_EXT, XML_INTEGER_FRACTION_DELIMITER): - aNumInfo.aIntegerFractionDelimiter = sValue; + aNumInfo.aIntegerFractionDelimiter = aIter.toString(); break; case XML_ELEMENT(NUMBER, XML_RFC_LANGUAGE_TAG): - aLanguageTagODF.maRfcLanguageTag = sValue; + aLanguageTagODF.maRfcLanguageTag = aIter.toString(); break; case XML_ELEMENT(NUMBER, XML_LANGUAGE): - aLanguageTagODF.maLanguage = sValue; + aLanguageTagODF.maLanguage = aIter.toString(); break; case XML_ELEMENT(NUMBER, XML_SCRIPT): - aLanguageTagODF.maScript = sValue; + aLanguageTagODF.maScript = aIter.toString(); break; case XML_ELEMENT(NUMBER, XML_COUNTRY): - aLanguageTagODF.maCountry = sValue; + aLanguageTagODF.maCountry = aIter.toString(); break; case XML_ELEMENT(NUMBER, XML_STYLE): - SvXMLUnitConverter::convertEnum( bLong, sValue, aStyleValueMap ); + SvXMLUnitConverter::convertEnum( bLong, aIter.toString(), aStyleValueMap ); break; case XML_ELEMENT(NUMBER, XML_TEXTUAL): - if (::sax::Converter::convertBool( bAttrBool, sValue )) + if (::sax::Converter::convertBool( bAttrBool, aIter.toView() )) bTextual = bAttrBool; break; case XML_ELEMENT(NUMBER, XML_CALENDAR): - sCalendar = sValue; + sCalendar = aIter.toString(); break; default: XMLOFF_WARN_UNKNOWN("xmloff", aIter); @@ -1146,59 +1143,58 @@ SvXMLNumFormatContext::SvXMLNumFormatContext( SvXMLImport& rImport, for( auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList ) ) { - OUString sValue = aIter.toString(); switch (aIter.getToken()) { // attributes for a style case XML_ELEMENT(STYLE, XML_NAME): break; case XML_ELEMENT(NUMBER, XML_RFC_LANGUAGE_TAG): - aLanguageTagODF.maRfcLanguageTag = sValue; + aLanguageTagODF.maRfcLanguageTag = aIter.toString(); break; case XML_ELEMENT(NUMBER, XML_LANGUAGE): - aLanguageTagODF.maLanguage = sValue; + aLanguageTagODF.maLanguage = aIter.toString(); break; case XML_ELEMENT(NUMBER, XML_SCRIPT): - aLanguageTagODF.maScript = sValue; + aLanguageTagODF.maScript = aIter.toString(); break; case XML_ELEMENT(NUMBER, XML_COUNTRY): - aLanguageTagODF.maCountry = sValue; + aLanguageTagODF.maCountry = aIter.toString(); break; case XML_ELEMENT(NUMBER, XML_TITLE): - sFormatTitle = sValue; + sFormatTitle = aIter.toString(); break; case XML_ELEMENT(NUMBER, XML_AUTOMATIC_ORDER): - if (::sax::Converter::convertBool( bAttrBool, sValue )) + if (::sax::Converter::convertBool( bAttrBool, aIter.toView() )) bAutoOrder = bAttrBool; break; case XML_ELEMENT(NUMBER, XML_FORMAT_SOURCE): - SvXMLUnitConverter::convertEnum( bFromSystem, sValue, aFormatSourceMap ); + SvXMLUnitConverter::convertEnum( bFromSystem, aIter.toString(), aFormatSourceMap ); break; case XML_ELEMENT(NUMBER, XML_TRUNCATE_ON_OVERFLOW): - if (::sax::Converter::convertBool( bAttrBool, sValue )) + if (::sax::Converter::convertBool( bAttrBool, aIter.toView() )) bTruncate = bAttrBool; break; case XML_ELEMENT(STYLE, XML_VOLATILE): // volatile formats can be removed after importing // if not used in other styles - if (::sax::Converter::convertBool( bAttrBool, sValue )) + if (::sax::Converter::convertBool( bAttrBool, aIter.toView() )) bRemoveAfterUse = bAttrBool; break; case XML_ELEMENT(NUMBER, XML_TRANSLITERATION_FORMAT): - aNatNumAttr.Format = sValue; + aNatNumAttr.Format = aIter.toString(); break; case XML_ELEMENT(LO_EXT, XML_TRANSLITERATION_SPELLOUT): case XML_ELEMENT(NUMBER, XML_TRANSLITERATION_SPELLOUT): - aSpellout = sValue; + aSpellout = aIter.toString(); break; case XML_ELEMENT(NUMBER, XML_TRANSLITERATION_LANGUAGE): - aNatNumAttr.Locale.Language = sValue; + aNatNumAttr.Locale.Language = aIter.toString(); break; case XML_ELEMENT(NUMBER, XML_TRANSLITERATION_COUNTRY): - aNatNumAttr.Locale.Country = sValue; + aNatNumAttr.Locale.Country = aIter.toString(); break; case XML_ELEMENT(NUMBER, XML_TRANSLITERATION_STYLE): - aNatNumAttr.Style = sValue; + aNatNumAttr.Style = aIter.toString(); break; default: XMLOFF_WARN_UNKNOWN("xmloff", aIter); diff --git a/xmloff/source/style/xmlnumi.cxx b/xmloff/source/style/xmlnumi.cxx index dae61e273821..3d2cc5807789 100644 --- a/xmloff/source/style/xmlnumi.cxx +++ b/xmloff/source/style/xmlnumi.cxx @@ -258,29 +258,28 @@ SvxXMLListLevelStyleContext_Impl::SvxXMLListLevelStyleContext_Impl( for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - const OUString sValue = aIter.toString(); switch( aIter.getToken() ) { case XML_ELEMENT(TEXT, XML_LEVEL): - nLevel = sValue.toInt32(); + nLevel = aIter.toInt32(); if( nLevel >= 1 ) nLevel--; else nLevel = 0; break; case XML_ELEMENT(TEXT, XML_STYLE_NAME): - sTextStyleName = sValue; + sTextStyleName = aIter.toString(); break; case XML_ELEMENT(TEXT, XML_BULLET_CHAR): - if (!sValue.isEmpty()) + if (!aIter.isEmpty()) { sal_Int32 nIndexUtf16 = 0; - cBullet = sValue.iterateCodePoints(&nIndexUtf16); + cBullet = aIter.toString().iterateCodePoints(&nIndexUtf16); } break; case XML_ELEMENT(XLINK, XML_HREF): if( bImage ) - sImageURL = sValue; + sImageURL = aIter.toString(); break; case XML_ELEMENT(XLINK, XML_TYPE): case XML_ELEMENT(XLINK, XML_SHOW): @@ -289,22 +288,22 @@ SvxXMLListLevelStyleContext_Impl::SvxXMLListLevelStyleContext_Impl( break; case XML_ELEMENT(STYLE, XML_NUM_FORMAT): if( bNum ) - sNumFormat = sValue; + sNumFormat = aIter.toString(); break; case XML_ELEMENT(STYLE, XML_NUM_PREFIX): - sPrefix = sValue; + sPrefix = aIter.toString(); break; case XML_ELEMENT(STYLE, XML_NUM_SUFFIX): - sSuffix = sValue; + sSuffix = aIter.toString(); break; case XML_ELEMENT(STYLE, XML_NUM_LETTER_SYNC): if( bNum ) - sNumLetterSync = sValue; + sNumLetterSync = aIter.toString(); break; case XML_ELEMENT(TEXT, XML_START_VALUE): if( bNum ) { - sal_Int32 nTmp = sValue.toInt32(); + sal_Int32 nTmp = aIter.toInt32(); nNumStartValue = (nTmp < 0) ? 1 : ( (nTmp>SHRT_MAX) ? SHRT_MAX : static_cast<sal_Int16>(nTmp) ); @@ -313,7 +312,7 @@ SvxXMLListLevelStyleContext_Impl::SvxXMLListLevelStyleContext_Impl( case XML_ELEMENT(TEXT, XML_DISPLAY_LEVELS): if( bNum ) { - sal_Int32 nTmp = sValue.toInt32(); + sal_Int32 nTmp = aIter.toInt32(); nNumDisplayLevels = (nTmp < 1) ? 1 : ( (nTmp>SHRT_MAX) ? SHRT_MAX : static_cast<sal_Int16>(nTmp) ); @@ -553,74 +552,73 @@ SvxXMLListLevelStyleAttrContext_Impl::SvxXMLListLevelStyleAttrContext_Impl( for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - const OUString sValue = aIter.toString(); sal_Int32 nVal; switch( aIter.getToken() ) { case XML_ELEMENT(TEXT, XML_SPACE_BEFORE): - if (rUnitConv.convertMeasureToCore(nVal, sValue, SHRT_MIN, SHRT_MAX)) + if (rUnitConv.convertMeasureToCore(nVal, aIter.toView(), SHRT_MIN, SHRT_MAX)) rListLevel.SetSpaceBefore( nVal ); break; case XML_ELEMENT(TEXT, XML_MIN_LABEL_WIDTH): - if (rUnitConv.convertMeasureToCore( nVal, sValue, 0, SHRT_MAX )) + if (rUnitConv.convertMeasureToCore( nVal, aIter.toView(), 0, SHRT_MAX )) rListLevel.SetMinLabelWidth( nVal ); break; case XML_ELEMENT(TEXT, XML_MIN_LABEL_DISTANCE): - if (rUnitConv.convertMeasureToCore( nVal, sValue, 0, USHRT_MAX )) + if (rUnitConv.convertMeasureToCore( nVal, aIter.toView(), 0, USHRT_MAX )) rListLevel.SetMinLabelDist( nVal ); break; case XML_ELEMENT(FO, XML_TEXT_ALIGN): case XML_ELEMENT(FO_COMPAT, XML_TEXT_ALIGN): - if( !sValue.isEmpty() ) + if( !aIter.isEmpty() ) { sal_Int16 eAdjust = HoriOrientation::LEFT; - if( IsXMLToken( sValue, XML_CENTER ) ) + if( IsXMLToken( aIter, XML_CENTER ) ) eAdjust = HoriOrientation::CENTER; - else if( IsXMLToken( sValue, XML_END ) ) + else if( IsXMLToken( aIter, XML_END ) ) eAdjust = HoriOrientation::RIGHT; rListLevel.SetAdjust( eAdjust ); } break; case XML_ELEMENT(STYLE, XML_FONT_NAME): - sFontName = sValue; + sFontName = aIter.toString(); break; case XML_ELEMENT(FO, XML_FONT_FAMILY): case XML_ELEMENT(FO_COMPAT, XML_FONT_FAMILY): - sFontFamily = sValue; + sFontFamily = aIter.toString(); break; case XML_ELEMENT(STYLE, XML_FONT_FAMILY_GENERIC): - sFontFamilyGeneric = sValue; + sFontFamilyGeneric = aIter.toString(); break; case XML_ELEMENT(STYLE, XML_FONT_STYLE_NAME): - sFontStyleName = sValue; + sFontStyleName = aIter.toString(); break; case XML_ELEMENT(STYLE, XML_FONT_PITCH): - sFontPitch = sValue; + sFontPitch = aIter.toString(); break; case XML_ELEMENT(STYLE, XML_FONT_CHARSET): - sFontCharset = sValue; + sFontCharset = aIter.toString(); break; case XML_ELEMENT(STYLE, XML_VERTICAL_POS): - sVerticalPos = sValue; + sVerticalPos = aIter.toString(); break; case XML_ELEMENT(STYLE, XML_VERTICAL_REL): - sVerticalRel = sValue; + sVerticalRel = aIter.toString(); break; case XML_ELEMENT(FO, XML_WIDTH): case XML_ELEMENT(FO_COMPAT, XML_WIDTH): - if (rUnitConv.convertMeasureToCore(nVal, sValue)) + if (rUnitConv.convertMeasureToCore(nVal, aIter.toView())) rListLevel.SetImageWidth( nVal ); break; case XML_ELEMENT(FO, XML_HEIGHT): case XML_ELEMENT(FO_COMPAT, XML_HEIGHT): - if (rUnitConv.convertMeasureToCore(nVal, sValue)) + if (rUnitConv.convertMeasureToCore(nVal, aIter.toView())) rListLevel.SetImageHeight( nVal ); break; case XML_ELEMENT(FO, XML_COLOR): case XML_ELEMENT(FO_COMPAT, XML_COLOR): { sal_Int32 nColor(0); - if (::sax::Converter::convertColor( nColor, sValue )) + if (::sax::Converter::convertColor( nColor, aIter.toView() )) { rListLevel.SetColor( Color(nColor) ); } @@ -628,19 +626,19 @@ SvxXMLListLevelStyleAttrContext_Impl::SvxXMLListLevelStyleAttrContext_Impl( break; case XML_ELEMENT(STYLE, XML_USE_WINDOW_FONT_COLOR): { - if( IsXMLToken( sValue, XML_TRUE ) ) + if( IsXMLToken( aIter, XML_TRUE ) ) rListLevel.SetColor(COL_AUTO); } break; case XML_ELEMENT(FO, XML_FONT_SIZE): case XML_ELEMENT(FO_COMPAT, XML_FONT_SIZE): - if (::sax::Converter::convertPercent( nVal, sValue )) + if (::sax::Converter::convertPercent( nVal, aIter.toView() )) rListLevel.SetRelSize( static_cast<sal_Int16>(nVal) ); break; case XML_ELEMENT(TEXT, XML_LIST_LEVEL_POSITION_AND_SPACE_MODE): { sal_Int16 ePosAndSpaceMode = PositionAndSpaceMode::LABEL_WIDTH_AND_POSITION; - if( IsXMLToken( sValue, XML_LABEL_ALIGNMENT ) ) + if( IsXMLToken( aIter, XML_LABEL_ALIGNMENT ) ) ePosAndSpaceMode = PositionAndSpaceMode::LABEL_ALIGNMENT; rListLevel.SetPosAndSpaceMode( ePosAndSpaceMode ); } @@ -805,8 +803,6 @@ SvxXMLListLevelStyleLabelAlignmentAttrContext_Impl::SvxXMLListLevelStyleLabelAli sal_Int16 eLabelFollowedBy = LabelFollow::LISTTAB; for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - const OUString sValue = aIter.toString(); - sal_Int32 nVal; switch( aIter.getToken() ) { @@ -816,26 +812,26 @@ SvxXMLListLevelStyleLabelAlignmentAttrContext_Impl::SvxXMLListLevelStyleLabelAli if( eLabelFollowedBy == LabelFollow::NEWLINE) //NewLine from LO_EXT has precedence over other values of the Non LO_EXT namespace break; - if( IsXMLToken( sValue, XML_SPACE ) ) + if( IsXMLToken( aIter, XML_SPACE ) ) eLabelFollowedBy = LabelFollow::SPACE; - else if( IsXMLToken( sValue, XML_NOTHING ) ) + else if( IsXMLToken( aIter, XML_NOTHING ) ) eLabelFollowedBy = LabelFollow::NOTHING; - else if( IsXMLToken( sValue, XML_NEWLINE ) ) + else if( IsXMLToken( aIter, XML_NEWLINE ) ) eLabelFollowedBy = LabelFollow::NEWLINE; } break; case XML_ELEMENT(TEXT, XML_LIST_TAB_STOP_POSITION): - if (rUnitConv.convertMeasureToCore(nVal, sValue, 0, SHRT_MAX)) + if (rUnitConv.convertMeasureToCore(nVal, aIter.toView(), 0, SHRT_MAX)) rLLevel.SetListtabStopPosition( nVal ); break; case XML_ELEMENT(FO, XML_TEXT_INDENT): case XML_ELEMENT(FO_COMPAT, XML_TEXT_INDENT): - if (rUnitConv.convertMeasureToCore(nVal, sValue, SHRT_MIN, SHRT_MAX)) + if (rUnitConv.convertMeasureToCore(nVal, aIter.toView(), SHRT_MIN, SHRT_MAX)) rLLevel.SetFirstLineIndent( nVal ); break; case XML_ELEMENT(FO, XML_MARGIN_LEFT): case XML_ELEMENT(FO_COMPAT, XML_MARGIN_LEFT): - if (rUnitConv.convertMeasureToCore(nVal, sValue, SHRT_MIN, SHRT_MAX)) + if (rUnitConv.convertMeasureToCore(nVal, aIter.toView(), SHRT_MIN, SHRT_MAX)) rLLevel.SetIndentAt( nVal ); break; default: diff --git a/xmloff/source/style/xmltabi.cxx b/xmloff/source/style/xmltabi.cxx index 5c8db3fc89c5..f93e7d86c9b1 100644 --- a/xmloff/source/style/xmltabi.cxx +++ b/xmloff/source/style/xmltabi.cxx @@ -59,55 +59,53 @@ SvxXMLTabStopContext_Impl::SvxXMLTabStopContext_Impl( for (auto &aIter : sax_fastparser::castToFastAttributeList(xAttrList)) { - const OUString sValue = aIter.toString(); - sal_Int32 nVal; switch( aIter.getToken() ) { case XML_ELEMENT(STYLE, XML_POSITION): if (GetImport().GetMM100UnitConverter().convertMeasureToCore( - nVal, sValue)) + nVal, aIter.toView())) { aTabStop.Position = nVal; } break; case XML_ELEMENT(STYLE, XML_TYPE): - if( IsXMLToken( sValue, XML_LEFT ) ) + if( IsXMLToken( aIter, XML_LEFT ) ) { aTabStop.Alignment = style::TabAlign_LEFT; } - else if( IsXMLToken( sValue, XML_RIGHT ) ) + else if( IsXMLToken( aIter, XML_RIGHT ) ) { aTabStop.Alignment = style::TabAlign_RIGHT; } - else if( IsXMLToken( sValue, XML_CENTER ) ) + else if( IsXMLToken( aIter, XML_CENTER ) ) { aTabStop.Alignment = style::TabAlign_CENTER; } - else if( IsXMLToken( sValue, XML_CHAR ) ) + else if( IsXMLToken( aIter, XML_CHAR ) ) { aTabStop.Alignment = style::TabAlign_DECIMAL; } - else if( IsXMLToken( sValue, XML_DEFAULT ) ) + else if( IsXMLToken( aIter, XML_DEFAULT ) ) { aTabStop.Alignment = style::TabAlign_DEFAULT; } break; case XML_ELEMENT(STYLE, XML_CHAR): - if( !sValue.isEmpty() ) - aTabStop.DecimalChar = sValue[0]; + if( !aIter.isEmpty() ) + aTabStop.DecimalChar = aIter.toString()[0]; break; case XML_ELEMENT(STYLE, XML_LEADER_STYLE): - if( IsXMLToken( sValue, XML_NONE ) ) + if( IsXMLToken( aIter, XML_NONE ) ) aTabStop.FillChar = ' '; - else if( IsXMLToken( sValue, XML_DOTTED ) ) + else if( IsXMLToken( aIter, XML_DOTTED ) ) aTabStop.FillChar = '.'; else aTabStop.FillChar = '_'; break; case XML_ELEMENT(STYLE, XML_LEADER_TEXT): - if( !sValue.isEmpty() ) - cTextFillChar = sValue[0]; + if( !aIter.isEmpty() ) + cTextFillChar = aIter.toString()[0]; break; default: XMLOFF_WARN_UNKNOWN("xmloff", aIter); |