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 | |
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>
85 files changed, 1244 insertions, 802 deletions
diff --git a/dbaccess/source/filter/xml/xmlColumn.cxx b/dbaccess/source/filter/xml/xmlColumn.cxx index 9d8560cf1364..198a92f76fa4 100644 --- a/dbaccess/source/filter/xml/xmlColumn.cxx +++ b/dbaccess/source/filter/xml/xmlColumn.cxx @@ -48,38 +48,36 @@ OXMLColumn::OXMLColumn( ODBFilter& rImport OUString sType; for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() & TOKEN_MASK ) { case XML_NAME: - m_sName = sValue; + m_sName = aIter.toString(); break; case XML_STYLE_NAME: - m_sStyleName = sValue; + m_sStyleName = aIter.toString(); break; case XML_HELP_MESSAGE: - m_sHelpMessage = sValue; + m_sHelpMessage = aIter.toString(); break; case XML_VISIBILITY: - m_bHidden = sValue != "visible"; + m_bHidden = aIter.toView() != "visible"; break; case XML_TYPE_NAME: - sType = sValue; + sType = aIter.toString(); OSL_ENSURE(!sType.isEmpty(),"No type name set"); break; case XML_DEFAULT_VALUE: - if ( !(sValue.isEmpty() || sType.isEmpty()) ) - m_aDefaultValue <<= sValue; + if ( !(aIter.isEmpty() || sType.isEmpty()) ) + m_aDefaultValue <<= aIter.toString(); break; case XML_VISIBLE: - m_bHidden = sValue == "false"; + m_bHidden = aIter.toView() == "false"; break; case XML_DEFAULT_CELL_STYLE_NAME: - m_sCellStyleName = sValue; + m_sCellStyleName = aIter.toString(); break; default: - XMLOFF_WARN_UNKNOWN_ATTR("dbaccess", aIter.getToken(), aIter.toString()); + XMLOFF_WARN_UNKNOWN("dbaccess", aIter); } } } diff --git a/dbaccess/source/filter/xml/xmlComponent.cxx b/dbaccess/source/filter/xml/xmlComponent.cxx index 144eb4ec9234..a9ba7a708842 100644 --- a/dbaccess/source/filter/xml/xmlComponent.cxx +++ b/dbaccess/source/filter/xml/xmlComponent.cxx @@ -44,19 +44,16 @@ OXMLComponent::OXMLComponent( ODBFilter& rImport OUString sName; OUString sHREF; bool bAsTemplate(false); - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(XLINK, XML_HREF): - sHREF = sValue; + sHREF = aIter.toString(); break; case XML_ELEMENT(DB, XML_NAME): case XML_ELEMENT(DB_OASIS, XML_NAME): - sName = sValue; + sName = aIter.toString(); // sanitize the name. Previously, we allowed to create forms/reports/queries which contain // a / in their name, which nowadays is forbidden. To not lose such objects if they're contained // in older files, we replace the slash with something less offending. @@ -64,10 +61,10 @@ OXMLComponent::OXMLComponent( ODBFilter& rImport break; case XML_ELEMENT(DB, XML_AS_TEMPLATE): case XML_ELEMENT(DB_OASIS, XML_AS_TEMPLATE): - bAsTemplate = sValue == s_sTRUE; + bAsTemplate = IsXMLToken(aIter, XML_TRUE); break; default: - XMLOFF_WARN_UNKNOWN_ATTR("dbaccess", aIter.getToken(), aIter.toString()); + XMLOFF_WARN_UNKNOWN("dbaccess", aIter); } } if ( !(!sHREF.isEmpty() && !sName.isEmpty() && _xParentContainer.is()) ) diff --git a/dbaccess/source/filter/xml/xmlConnectionResource.cxx b/dbaccess/source/filter/xml/xmlConnectionResource.cxx index 70f7fe210415..e5d92a8d0a8e 100644 --- a/dbaccess/source/filter/xml/xmlConnectionResource.cxx +++ b/dbaccess/source/filter/xml/xmlConnectionResource.cxx @@ -42,7 +42,6 @@ OXMLConnectionResource::OXMLConnectionResource( ODBFilter& rImport, for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); aProperty.Name.clear(); aProperty.Value = Any(); @@ -51,7 +50,7 @@ OXMLConnectionResource::OXMLConnectionResource( ODBFilter& rImport, case XML_ELEMENT(XLINK, XML_HREF): try { - xDataSource->setPropertyValue(PROPERTY_URL,makeAny(sValue)); + xDataSource->setPropertyValue(PROPERTY_URL,makeAny(aIter.toString())); } catch(const Exception&) { @@ -68,12 +67,12 @@ OXMLConnectionResource::OXMLConnectionResource( ODBFilter& rImport, aProperty.Name = "Actuate"; break; default: - XMLOFF_WARN_UNKNOWN_ATTR("dbaccess", aIter.getToken(), aIter.toString()); + XMLOFF_WARN_UNKNOWN("dbaccess", aIter); } if ( !aProperty.Name.isEmpty() ) { if ( !aProperty.Value.hasValue() ) - aProperty.Value <<= sValue; + aProperty.Value <<= aIter.toString(); rImport.addInfo(aProperty); } } diff --git a/dbaccess/source/filter/xml/xmlDataSource.cxx b/dbaccess/source/filter/xml/xmlDataSource.cxx index c179cb23ded9..e133d09cbc29 100644 --- a/dbaccess/source/filter/xml/xmlDataSource.cxx +++ b/dbaccess/source/filter/xml/xmlDataSource.cxx @@ -49,13 +49,10 @@ OXMLDataSource::OXMLDataSource( ODBFilter& rImport, bool bFoundAppendTableAliasName = false; bool bFoundSuppressVersionColumns = false; - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); if (xDataSource.is()) { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - aProperty.Name.clear(); aProperty.Value = Any(); @@ -64,7 +61,7 @@ OXMLDataSource::OXMLDataSource( ODBFilter& rImport, case XML_CONNECTION_RESOURCE: try { - xDataSource->setPropertyValue(PROPERTY_URL,makeAny(sValue)); + xDataSource->setPropertyValue(PROPERTY_URL,makeAny(aIter.toString())); } catch(const Exception&) { @@ -74,7 +71,7 @@ OXMLDataSource::OXMLDataSource( ODBFilter& rImport, case XML_SUPPRESS_VERSION_COLUMNS: try { - xDataSource->setPropertyValue(PROPERTY_SUPPRESSVERSIONCL,makeAny(sValue == s_sTRUE)); + xDataSource->setPropertyValue(PROPERTY_SUPPRESSVERSIONCL,makeAny(IsXMLToken(aIter, XML_TRUE))); bFoundSuppressVersionColumns = true; } catch(const Exception&) @@ -90,15 +87,15 @@ OXMLDataSource::OXMLDataSource( ODBFilter& rImport, break; case XML_IS_FIRST_ROW_HEADER_LINE: aProperty.Name = INFO_TEXTFILEHEADER; - aProperty.Value <<= (sValue == s_sTRUE); + aProperty.Value <<= IsXMLToken(aIter, XML_TRUE); break; case XML_SHOW_DELETED: aProperty.Name = INFO_SHOWDELETEDROWS; - aProperty.Value <<= (sValue == s_sTRUE); + aProperty.Value <<= IsXMLToken(aIter, XML_TRUE); break; case XML_IS_TABLE_NAME_LENGTH_LIMITED: aProperty.Name = INFO_ALLOWLONGTABLENAMES; - aProperty.Value <<= (sValue == s_sTRUE); + aProperty.Value <<= IsXMLToken(aIter, XML_TRUE); bFoundTableNameLengthLimited = true; break; case XML_SYSTEM_DRIVER_SETTINGS: @@ -106,54 +103,54 @@ OXMLDataSource::OXMLDataSource( ODBFilter& rImport, break; case XML_ENABLE_SQL92_CHECK: aProperty.Name = PROPERTY_ENABLESQL92CHECK; - aProperty.Value <<= (sValue == s_sTRUE); + aProperty.Value <<= IsXMLToken(aIter, XML_TRUE); break; case XML_APPEND_TABLE_ALIAS_NAME: aProperty.Name = INFO_APPEND_TABLE_ALIAS; - aProperty.Value <<= (sValue == s_sTRUE); + aProperty.Value <<= IsXMLToken(aIter, XML_TRUE); bFoundAppendTableAliasName = true; break; case XML_PARAMETER_NAME_SUBSTITUTION: aProperty.Name = INFO_PARAMETERNAMESUBST; - aProperty.Value <<= (sValue == s_sTRUE); + aProperty.Value <<= IsXMLToken(aIter, XML_TRUE); bFoundParamNameSubstitution = true; break; case XML_IGNORE_DRIVER_PRIVILEGES: aProperty.Name = INFO_IGNOREDRIVER_PRIV; - aProperty.Value <<= (sValue == s_sTRUE); + aProperty.Value <<= IsXMLToken(aIter, XML_TRUE); break; case XML_BOOLEAN_COMPARISON_MODE: aProperty.Name = PROPERTY_BOOLEANCOMPARISONMODE; - if ( sValue == "equal-integer" ) + if ( aIter.toView() == "equal-integer" ) aProperty.Value <<= sal_Int32(0); - else if ( sValue == "is-boolean" ) + else if ( aIter.toView() == "is-boolean" ) aProperty.Value <<= sal_Int32(1); - else if ( sValue == "equal-boolean" ) + else if ( aIter.toView() == "equal-boolean" ) aProperty.Value <<= sal_Int32(2); - else if ( sValue == "equal-use-only-zero" ) + else if ( aIter.toView() == "equal-use-only-zero" ) aProperty.Value <<= sal_Int32(3); break; case XML_USE_CATALOG: aProperty.Name = INFO_USECATALOG; - aProperty.Value <<= (sValue == s_sTRUE); + aProperty.Value <<= IsXMLToken(aIter, XML_TRUE); break; case XML_BASE_DN: aProperty.Name = INFO_CONN_LDAP_BASEDN; break; case XML_MAX_ROW_COUNT: aProperty.Name = INFO_CONN_LDAP_ROWCOUNT; - aProperty.Value <<= sValue.toInt32(); + aProperty.Value <<= aIter.toInt32(); break; case XML_JAVA_CLASSPATH: aProperty.Name = "JavaDriverClassPath"; break; default: - XMLOFF_WARN_UNKNOWN_ATTR("dbaccess", aIter.getToken(), aIter.toString()); + XMLOFF_WARN_UNKNOWN("dbaccess", aIter); } if ( !aProperty.Name.isEmpty() ) { if ( !aProperty.Value.hasValue() ) - aProperty.Value <<= sValue; + aProperty.Value <<= aIter.toString(); rImport.addInfo(aProperty); } } diff --git a/dbaccess/source/filter/xml/xmlDataSourceInfo.cxx b/dbaccess/source/filter/xml/xmlDataSourceInfo.cxx index ec1a42d6e9af..e7362ca5ba77 100644 --- a/dbaccess/source/filter/xml/xmlDataSourceInfo.cxx +++ b/dbaccess/source/filter/xml/xmlDataSourceInfo.cxx @@ -39,8 +39,6 @@ OXMLDataSourceInfo::OXMLDataSourceInfo( ODBFilter& rImport bool bFoundField = false,bFoundThousand = false, bFoundCharset = false; for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - aProperty.Name.clear(); switch( aIter.getToken() & TOKEN_MASK ) @@ -76,7 +74,7 @@ OXMLDataSourceInfo::OXMLDataSourceInfo( ODBFilter& rImport } if ( !aProperty.Name.isEmpty() ) { - aProperty.Value <<= sValue; + aProperty.Value <<= aIter.toString(); rImport.addInfo(aProperty); } } diff --git a/dbaccess/source/filter/xml/xmlDataSourceSetting.cxx b/dbaccess/source/filter/xml/xmlDataSourceSetting.cxx index f709757a5f7d..525162664865 100644 --- a/dbaccess/source/filter/xml/xmlDataSourceSetting.cxx +++ b/dbaccess/source/filter/xml/xmlDataSourceSetting.cxx @@ -47,12 +47,10 @@ OXMLDataSourceSetting::OXMLDataSourceSetting( ODBFilter& rImport for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() & TOKEN_MASK ) { case XML_DATA_SOURCE_SETTING_IS_LIST: - m_bIsList = sValue == "true"; + m_bIsList = aIter.toView() == "true"; break; case XML_DATA_SOURCE_SETTING_TYPE: { @@ -71,17 +69,17 @@ OXMLDataSourceSetting::OXMLDataSourceSetting( ODBFilter& rImport return tmp; }(); - const std::map< OUString, css::uno::Type >::const_iterator aTypePos = s_aTypeNameMap.find(sValue); + const std::map< OUString, css::uno::Type >::const_iterator aTypePos = s_aTypeNameMap.find(aIter.toString()); OSL_ENSURE(s_aTypeNameMap.end() != aTypePos, "OXMLDataSourceSetting::OXMLDataSourceSetting: invalid type!"); if (s_aTypeNameMap.end() != aTypePos) m_aPropType = aTypePos->second; } break; case XML_DATA_SOURCE_SETTING_NAME: - m_aSetting.Name = sValue; + m_aSetting.Name = aIter.toString(); break; default: - XMLOFF_WARN_UNKNOWN_ATTR("dbaccess", aIter.getToken(), aIter.toString()); + XMLOFF_WARN_UNKNOWN("dbaccess", aIter); } } diff --git a/dbaccess/source/filter/xml/xmlHierarchyCollection.cxx b/dbaccess/source/filter/xml/xmlHierarchyCollection.cxx index 7b2a8cc54e6b..879575482b54 100644 --- a/dbaccess/source/filter/xml/xmlHierarchyCollection.cxx +++ b/dbaccess/source/filter/xml/xmlHierarchyCollection.cxx @@ -50,12 +50,10 @@ OXMLHierarchyCollection::OXMLHierarchyCollection( ODBFilter& rImport OUString sName; for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() & TOKEN_MASK ) { case XML_NAME: - sName = sValue; + sName = aIter.toString(); break; default: XMLOFF_WARN_UNKNOWN("dbaccess", aIter); diff --git a/dbaccess/source/filter/xml/xmlLogin.cxx b/dbaccess/source/filter/xml/xmlLogin.cxx index a30988098595..cc7502301233 100644 --- a/dbaccess/source/filter/xml/xmlLogin.cxx +++ b/dbaccess/source/filter/xml/xmlLogin.cxx @@ -36,15 +36,12 @@ OXMLLogin::OXMLLogin( ODBFilter& rImport, { Reference<XPropertySet> xDataSource(rImport.getDataSource()); - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); bool bUserFound = false; if (!xDataSource.is()) return; for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - try { switch( aIter.getToken() & TOKEN_MASK ) @@ -55,7 +52,7 @@ OXMLLogin::OXMLLogin( ODBFilter& rImport, bUserFound = true; try { - xDataSource->setPropertyValue(PROPERTY_USER,makeAny(sValue)); + xDataSource->setPropertyValue(PROPERTY_USER,makeAny(aIter.toString())); } catch(const Exception&) { @@ -66,7 +63,7 @@ OXMLLogin::OXMLLogin( ODBFilter& rImport, case XML_IS_PASSWORD_REQUIRED: try { - xDataSource->setPropertyValue(PROPERTY_ISPASSWORDREQUIRED,makeAny(sValue == s_sTRUE)); + xDataSource->setPropertyValue(PROPERTY_ISPASSWORDREQUIRED,makeAny(IsXMLToken(aIter, XML_TRUE))); } catch(const Exception&) { @@ -79,14 +76,14 @@ OXMLLogin::OXMLLogin( ODBFilter& rImport, bUserFound = true; PropertyValue aProperty; aProperty.Name = "UseSystemUser"; - aProperty.Value <<= (sValue == s_sTRUE); + aProperty.Value <<= IsXMLToken(aIter, XML_TRUE); rImport.addInfo(aProperty); } break; case XML_LOGIN_TIMEOUT: try { - Reference< XDataSource>(xDataSource,UNO_QUERY_THROW)->setLoginTimeout(sValue.toInt32()); + Reference< XDataSource>(xDataSource,UNO_QUERY_THROW)->setLoginTimeout(aIter.toInt32()); } catch(const Exception&) { diff --git a/dbaccess/source/filter/xml/xmlQuery.cxx b/dbaccess/source/filter/xml/xmlQuery.cxx index 722e650c3b58..8f91145d72e9 100644 --- a/dbaccess/source/filter/xml/xmlQuery.cxx +++ b/dbaccess/source/filter/xml/xmlQuery.cxx @@ -44,15 +44,13 @@ OXMLQuery::OXMLQuery( ODBFilter& rImport { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() & TOKEN_MASK ) { case XML_COMMAND: - m_sCommand = sValue; + m_sCommand = aIter.toString(); break; case XML_ESCAPE_PROCESSING: - m_bEscapeProcessing = sValue == "true"; + m_bEscapeProcessing = aIter.toView() == "true"; break; default: XMLOFF_WARN_UNKNOWN("dbaccess", aIter); diff --git a/include/sax/fastattribs.hxx b/include/sax/fastattribs.hxx index e00452b0aa14..452280782067 100644 --- a/include/sax/fastattribs.hxx +++ b/include/sax/fastattribs.hxx @@ -27,6 +27,7 @@ #include <cppuhelper/implbase.hxx> #include <sax/saxdllapi.h> +#include <string_view> #include <vector> namespace com::sun::star::xml::sax { class XFastTokenHandler; } @@ -171,6 +172,11 @@ public: assert(mnIdx < mrList.maAttributeTokens.size()); return rtl_str_toDouble(mrList.getFastAttributeValue(mnIdx)); } + bool toBoolean() const + { + assert(mnIdx < mrList.maAttributeTokens.size()); + return rtl_str_toBoolean(mrList.getFastAttributeValue(mnIdx)); + } OUString toString() const { assert(mnIdx < mrList.maAttributeTokens.size()); @@ -188,6 +194,11 @@ public: assert(mnIdx < mrList.maAttributeTokens.size()); return mrList.AttributeValueLength(mnIdx); } + std::string_view toView() const + { + assert(mnIdx < mrList.maAttributeTokens.size()); + return std::string_view(mrList.getFastAttributeValue(mnIdx), mrList.AttributeValueLength(mnIdx)); + } bool isString(const char *str) const { assert(mnIdx < mrList.maAttributeTokens.size()); diff --git a/include/sax/tools/converter.hxx b/include/sax/tools/converter.hxx index 6d2347ef289d..07c2fb3207b1 100644 --- a/include/sax/tools/converter.hxx +++ b/include/sax/tools/converter.hxx @@ -64,6 +64,13 @@ public: sal_Int32 nMin = SAL_MIN_INT32, sal_Int32 nMax = SAL_MAX_INT32 ); + /** convert string to measure using optional min and max values*/ + static bool convertMeasure( sal_Int32& rValue, + std::string_view rString, + sal_Int16 nTargetUnit = css::util::MeasureUnit::MM_100TH, + sal_Int32 nMin = SAL_MIN_INT32, + sal_Int32 nMax = SAL_MAX_INT32 ); + /** convert measure to string */ static void convertMeasure( OUStringBuffer& rBuffer, sal_Int32 nMeasure, @@ -74,6 +81,10 @@ public: static bool convertBool( bool& rBool, std::u16string_view rString ); + /** convert string to boolean */ + static bool convertBool( bool& rBool, + std::string_view rString ); + /** convert boolean to string */ static void convertBool( OUStringBuffer& rBuffer, bool bValue ); @@ -82,14 +93,22 @@ public: static bool convertPercent( sal_Int32& rValue, std::u16string_view rString ); + /** convert string to percent */ + static bool convertPercent( sal_Int32& rValue, + std::string_view rString ); + /** convert percent to string */ static void convertPercent( OUStringBuffer& rBuffer, sal_Int32 nValue ); - /** convert string to pixel measure unite */ + /** convert string to pixel measure unit */ static bool convertMeasurePx( sal_Int32& rValue, std::u16string_view rString ); + /** convert string to pixel measure unit */ + static bool convertMeasurePx( sal_Int32& rValue, + std::string_view rString ); + /** convert pixel measure unit to string */ static void convertMeasurePx( OUStringBuffer& rBuffer, sal_Int32 nValue ); @@ -97,6 +116,8 @@ public: /** convert string to rgb color */ static bool convertColor( sal_Int32& rColor, std::u16string_view rValue ); + static bool convertColor( sal_Int32& rColor, + std::string_view rValue ); static bool convertColor( ::Color& rColor, std::u16string_view rValue ) { @@ -120,11 +141,23 @@ public: sal_Int32 nMax = SAL_MAX_INT32 ); /** convert string to number with optional min and max values */ + static bool convertNumber( sal_Int32& rValue, + std::string_view aString, + sal_Int32 nMin = SAL_MIN_INT32, + sal_Int32 nMax = SAL_MAX_INT32 ); + + /** convert string to number with optional min and max values */ static bool convertNumber64(sal_Int64& rValue, std::u16string_view aString, sal_Int64 nMin = SAL_MIN_INT64, sal_Int64 nMax = SAL_MAX_INT64); + /** convert string to number with optional min and max values */ + static bool convertNumber64(sal_Int64& rValue, + std::string_view aString, + sal_Int64 nMin = SAL_MIN_INT64, + sal_Int64 nMax = SAL_MAX_INT64); + /** convert double number to string (using ::rtl::math) and DO convert from source unit to target unit */ static void convertDouble( OUStringBuffer& rBuffer, @@ -146,6 +179,9 @@ public: /** convert string to double number (using ::rtl::math) without unit conversion */ static bool convertDouble(double& rValue, std::u16string_view rString); + /** convert string to double number (using ::rtl::math) without unit conversion */ + static bool convertDouble(double& rValue, std::string_view rString); + /** convert number, 10th of degrees with range [0..3600] to SVG angle */ static void convertAngle(OUStringBuffer& rBuffer, sal_Int16 nAngle, SvtSaveOptions::ODFSaneDefaultVersion nVersion); @@ -154,6 +190,10 @@ public: static bool convertAngle(sal_Int16& rAngle, std::u16string_view rString, bool isWrongOOo10thDegAngle); + /** convert SVG angle to number, 10th of degrees with range [0..3600] */ + static bool convertAngle(sal_Int16& rAngle, std::string_view rString, + bool isWrongOOo10thDegAngle); + /** convert double to XMLSchema-2 "duration" string; negative durations allowed */ static void convertDuration(OUStringBuffer& rBuffer, const double fTime); @@ -209,6 +249,7 @@ public: static double GetConversionFactor(OUStringBuffer& rUnit, sal_Int16 nSourceUnit, sal_Int16 nTargetUnit); static sal_Int16 GetUnitFromString(std::u16string_view rString, sal_Int16 nDefaultUnit); + static sal_Int16 GetUnitFromString(std::string_view rString, sal_Int16 nDefaultUnit); /** convert an Any to string (typesafe) */ static bool convertAny(OUStringBuffer& rsValue, diff --git a/include/xmloff/xmluconv.hxx b/include/xmloff/xmluconv.hxx index d4796bb82d94..06e047648832 100644 --- a/include/xmloff/xmluconv.hxx +++ b/include/xmloff/xmluconv.hxx @@ -115,6 +115,13 @@ public: sal_Int32 nMin = SAL_MIN_INT32, sal_Int32 nMax = SAL_MAX_INT32) const; + /** convert string to measure with meCoreMeasureUnit, + using optional min and max values*/ + bool convertMeasureToCore( sal_Int32& rValue, + std::string_view rString, + sal_Int32 nMin = SAL_MIN_INT32, + sal_Int32 nMax = SAL_MAX_INT32) const; + /** convert measure to string: from meCoreMeasureUnit to meXMLMeasureUnit */ void convertMeasureToXML( OUStringBuffer& rBuffer, sal_Int32 nMeasure ) const; @@ -205,13 +212,17 @@ public: static bool convertB3DVector( ::basegfx::B3DVector& rVector, const OUString& rValue ); + /** convert string to ::basegfx::B3DVector */ + static bool convertB3DVector( ::basegfx::B3DVector& rVector, + std::string_view rValue ); + /** convert B3DVector to string */ static void convertB3DVector( OUStringBuffer &rBuffer, const ::basegfx::B3DVector& rVector ); /** convert string to Position3D */ bool convertPosition3D( css::drawing::Position3D& rPosition, - const OUString& rValue ); + std::string_view rValue ); /** convert Position3D to string */ void convertPosition3D( OUStringBuffer &rBuffer, diff --git a/reportdesign/source/filter/xml/xmlColumn.cxx b/reportdesign/source/filter/xml/xmlColumn.cxx index f98f6507ffc5..9693ee3ceb0d 100644 --- a/reportdesign/source/filter/xml/xmlColumn.cxx +++ b/reportdesign/source/filter/xml/xmlColumn.cxx @@ -55,12 +55,10 @@ OXMLRowColumn::OXMLRowColumn( ORptFilter& rImport { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(TABLE, XML_STYLE_NAME): - fillStyle(sValue); + fillStyle(aIter.toString()); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlComponent.cxx b/reportdesign/source/filter/xml/xmlComponent.cxx index ab55e9215bf3..fc87f8da56e6 100644 --- a/reportdesign/source/filter/xml/xmlComponent.cxx +++ b/reportdesign/source/filter/xml/xmlComponent.cxx @@ -42,14 +42,12 @@ OXMLComponent::OXMLComponent( ORptFilter& _rImport for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - try { switch( aIter.getToken() ) { case XML_ELEMENT(DRAW, XML_NAME): - m_xComponent->setName(sValue); + m_xComponent->setName(aIter.toString()); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlCondPrtExpr.cxx b/reportdesign/source/filter/xml/xmlCondPrtExpr.cxx index 35167e338095..0ef9c8d98f61 100644 --- a/reportdesign/source/filter/xml/xmlCondPrtExpr.cxx +++ b/reportdesign/source/filter/xml/xmlCondPrtExpr.cxx @@ -43,12 +43,10 @@ OXMLCondPrtExpr::OXMLCondPrtExpr( ORptFilter& _rImport { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(REPORT, XML_FORMULA): - m_xComponent->setPropertyValue(PROPERTY_CONDITIONALPRINTEXPRESSION,uno::makeAny(ORptFilter::convertFormula(sValue))); + m_xComponent->setPropertyValue(PROPERTY_CONDITIONALPRINTEXPRESSION,uno::makeAny(ORptFilter::convertFormula(aIter.toString()))); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlControlProperty.cxx b/reportdesign/source/filter/xml/xmlControlProperty.cxx index fce0ef4cba11..1bc323d466c1 100644 --- a/reportdesign/source/filter/xml/xmlControlProperty.cxx +++ b/reportdesign/source/filter/xml/xmlControlProperty.cxx @@ -64,12 +64,10 @@ OXMLControlProperty::OXMLControlProperty( ORptFilter& rImport for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(FORM, XML_LIST_PROPERTY): - m_bIsList = sValue == "true"; + m_bIsList = aIter.toView() == "true"; break; case XML_ELEMENT(OOO, XML_VALUE_TYPE): { @@ -88,14 +86,14 @@ OXMLControlProperty::OXMLControlProperty( ORptFilter& rImport { GetXMLToken( XML_VOID) , cppu::UnoType<void>::get() }, }; - const std::map< OUString, css::uno::Type >::const_iterator aTypePos = s_aTypeNameMap.find(sValue); + const std::map< OUString, css::uno::Type >::const_iterator aTypePos = s_aTypeNameMap.find(aIter.toString()); OSL_ENSURE(s_aTypeNameMap.end() != aTypePos, "OXMLControlProperty::OXMLControlProperty: invalid type!"); if (s_aTypeNameMap.end() != aTypePos) m_aPropType = aTypePos->second; } break; case XML_ELEMENT(FORM, XML_PROPERTY_NAME): - m_aSetting.Name = sValue; + m_aSetting.Name = aIter.toString(); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlFormatCondition.cxx b/reportdesign/source/filter/xml/xmlFormatCondition.cxx index 235f6931778f..63aae9301105 100644 --- a/reportdesign/source/filter/xml/xmlFormatCondition.cxx +++ b/reportdesign/source/filter/xml/xmlFormatCondition.cxx @@ -42,23 +42,20 @@ OXMLFormatCondition::OXMLFormatCondition( ORptFilter& rImport, { OSL_ENSURE(m_xComponent.is(),"Component is NULL!"); - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); try { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(REPORT, XML_ENABLED): - m_xComponent->setEnabled(sValue == s_sTRUE); + m_xComponent->setEnabled(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(REPORT, XML_FORMULA): - m_xComponent->setFormula(ORptFilter::convertFormula(sValue)); + m_xComponent->setFormula(ORptFilter::convertFormula(aIter.toString())); break; case XML_ELEMENT(REPORT, XML_STYLE_NAME): - m_sStyleName = sValue; + m_sStyleName = aIter.toString(); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlFormattedField.cxx b/reportdesign/source/filter/xml/xmlFormattedField.cxx index c34f8adf2414..b453dbc4da79 100644 --- a/reportdesign/source/filter/xml/xmlFormattedField.cxx +++ b/reportdesign/source/filter/xml/xmlFormattedField.cxx @@ -43,12 +43,10 @@ OXMLFormattedField::OXMLFormattedField( ORptFilter& rImport { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(REPORT, XML_FORMULA): - _xComponent->setDataField(ORptFilter::convertFormula(sValue)); + _xComponent->setDataField(ORptFilter::convertFormula(aIter.toString())); break; case XML_ELEMENT(REPORT, XML_SELECT_PAGE): _xComponent->setDataField("rpt:PageNumber()"); diff --git a/reportdesign/source/filter/xml/xmlFunction.cxx b/reportdesign/source/filter/xml/xmlFunction.cxx index 62dcaa9256f7..cd6d072d24ac 100644 --- a/reportdesign/source/filter/xml/xmlFunction.cxx +++ b/reportdesign/source/filter/xml/xmlFunction.cxx @@ -45,30 +45,27 @@ OXMLFunction::OXMLFunction( ORptFilter& _rImport OSL_ENSURE(m_xFunctions.is(),"Functions is NULL!"); m_xFunction = m_xFunctions->createFunction(); - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - try { switch( aIter.getToken() ) { case XML_ELEMENT(REPORT, XML_NAME): - m_xFunction->setName(sValue); + m_xFunction->setName(aIter.toString()); break; case XML_ELEMENT(REPORT, XML_FORMULA): - m_xFunction->setFormula(ORptFilter::convertFormula(sValue)); + m_xFunction->setFormula(ORptFilter::convertFormula(aIter.toString())); break; case XML_ELEMENT(REPORT, XML_PRE_EVALUATED): - m_xFunction->setPreEvaluated(sValue == s_sTRUE); + m_xFunction->setPreEvaluated(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(REPORT, XML_INITIAL_FORMULA): - if ( !sValue.isEmpty() ) - m_xFunction->setInitialFormula(beans::Optional< OUString>(true,ORptFilter::convertFormula(sValue))); + if ( !aIter.isEmpty() ) + m_xFunction->setInitialFormula(beans::Optional< OUString>(true,ORptFilter::convertFormula(aIter.toString()))); break; case XML_ELEMENT(REPORT, XML_DEEP_TRAVERSING): - m_xFunction->setDeepTraversing(sValue == s_sTRUE); + m_xFunction->setDeepTraversing(IsXMLToken(aIter, XML_TRUE)); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlGroup.cxx b/reportdesign/source/filter/xml/xmlGroup.cxx index 94f6028494ce..b8a8e10abc10 100644 --- a/reportdesign/source/filter/xml/xmlGroup.cxx +++ b/reportdesign/source/filter/xml/xmlGroup.cxx @@ -58,26 +58,24 @@ OXMLGroup::OXMLGroup( ORptFilter& _rImport m_xGroup = m_xGroups->createGroup(); m_xGroup->setSortAscending(false);// the default value has to be set - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - try { switch( aIter.getToken() ) { case XML_ELEMENT(REPORT, XML_START_NEW_COLUMN): - m_xGroup->setStartNewColumn(sValue == s_sTRUE); + m_xGroup->setStartNewColumn(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(REPORT, XML_RESET_PAGE_NUMBER): - m_xGroup->setResetPageNumber(sValue == s_sTRUE); + m_xGroup->setResetPageNumber(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(REPORT, XML_SORT_ASCENDING): - m_xGroup->setSortAscending(sValue == s_sTRUE); + m_xGroup->setSortAscending(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(REPORT, XML_GROUP_EXPRESSION): { + OUString sValue = aIter.toString(); sal_Int32 nLen = sValue.getLength(); if ( nLen ) { @@ -156,7 +154,7 @@ OXMLGroup::OXMLGroup( ORptFilter& _rImport } break; case XML_ELEMENT(REPORT, XML_KEEP_TOGETHER): - m_xGroup->setKeepTogether(lcl_getKeepTogetherOption(sValue)); + m_xGroup->setKeepTogether(lcl_getKeepTogetherOption(aIter.toString())); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlImage.cxx b/reportdesign/source/filter/xml/xmlImage.cxx index 9f27b6151e82..d8736f5ca032 100644 --- a/reportdesign/source/filter/xml/xmlImage.cxx +++ b/reportdesign/source/filter/xml/xmlImage.cxx @@ -44,44 +44,42 @@ OXMLImage::OXMLImage( ORptFilter& rImport, { OSL_ENSURE(m_xReportComponent.is(),"Component is NULL!"); - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); try { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(FORM, XML_IMAGE_DATA): { SvtPathOptions aPathOptions; + OUString sValue = aIter.toString(); sValue = aPathOptions.SubstituteVariable(sValue); _xComponent->setImageURL(rImport.GetAbsoluteReference( sValue )); break; } case XML_ELEMENT(REPORT, XML_PRESERVE_IRI): - _xComponent->setPreserveIRI(s_sTRUE == sValue); + _xComponent->setPreserveIRI(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(REPORT, XML_SCALE): { sal_Int16 nRet = awt::ImageScaleMode::NONE; - if ( s_sTRUE == sValue ) + if ( IsXMLToken(aIter, XML_TRUE) ) { nRet = awt::ImageScaleMode::ANISOTROPIC; } else { const SvXMLEnumMapEntry<sal_Int16>* aXML_EnumMap = OXMLHelper::GetImageScaleOptions(); - bool bConvertOk = SvXMLUnitConverter::convertEnum( nRet, sValue, aXML_EnumMap ); + bool bConvertOk = SvXMLUnitConverter::convertEnum( nRet, aIter.toString(), aXML_EnumMap ); SAL_WARN_IF(!bConvertOk, "reportdesign", "convertEnum failed"); } _xComponent->setScaleMode( nRet ); break; } case XML_ELEMENT(REPORT, XML_FORMULA): - _xComponent->setDataField(ORptFilter::convertFormula(sValue)); + _xComponent->setDataField(ORptFilter::convertFormula(aIter.toString())); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlReport.cxx b/reportdesign/source/filter/xml/xmlReport.cxx index a559946fc848..01a0a2a76765 100644 --- a/reportdesign/source/filter/xml/xmlReport.cxx +++ b/reportdesign/source/filter/xml/xmlReport.cxx @@ -49,42 +49,39 @@ OXMLReport::OXMLReport( ORptFilter& rImport, impl_initRuntimeDefaults(); - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); try { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(REPORT, XML_COMMAND_TYPE): { sal_Int32 nRet = sdb::CommandType::COMMAND; const SvXMLEnumMapEntry<sal_Int32>* aXML_EnumMap = OXMLHelper::GetCommandTypeOptions(); - bool bConvertOk = SvXMLUnitConverter::convertEnum( nRet, sValue, aXML_EnumMap ); + bool bConvertOk = SvXMLUnitConverter::convertEnum( nRet, aIter.toString(), aXML_EnumMap ); SAL_WARN_IF(!bConvertOk, "reportdesign", "convertEnum failed"); m_xReportDefinition->setCommandType(nRet); } break; case XML_ELEMENT(REPORT, XML_COMMAND): - m_xReportDefinition->setCommand(sValue); + m_xReportDefinition->setCommand(aIter.toString()); break; case XML_ELEMENT(REPORT, XML_FILTER): - m_xReportDefinition->setFilter(sValue); + m_xReportDefinition->setFilter(aIter.toString()); break; case XML_ELEMENT(REPORT, XML_CAPTION): case XML_ELEMENT(OFFICE, XML_CAPTION): - m_xReportDefinition->setCaption(sValue); + m_xReportDefinition->setCaption(aIter.toString()); break; case XML_ELEMENT(REPORT, XML_ESCAPE_PROCESSING): - m_xReportDefinition->setEscapeProcessing(sValue == s_sTRUE); + m_xReportDefinition->setEscapeProcessing(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(OFFICE, XML_MIMETYPE): - m_xReportDefinition->setMimeType(sValue); + m_xReportDefinition->setMimeType(aIter.toString()); break; case XML_ELEMENT(DRAW, XML_NAME): - m_xReportDefinition->setName(sValue); + m_xReportDefinition->setName(aIter.toString()); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlReportElement.cxx b/reportdesign/source/filter/xml/xmlReportElement.cxx index 0c49c9fb47e3..e488fb50a41c 100644 --- a/reportdesign/source/filter/xml/xmlReportElement.cxx +++ b/reportdesign/source/filter/xml/xmlReportElement.cxx @@ -45,20 +45,17 @@ OXMLReportElement::OXMLReportElement( ORptFilter& rImport, OSL_ENSURE(m_xComponent.is(),"Component is NULL!"); - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); try { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(REPORT, XML_PRINT_WHEN_GROUP_CHANGE): - m_xComponent->setPrintWhenGroupChange(s_sTRUE == sValue); + m_xComponent->setPrintWhenGroupChange(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(REPORT, XML_PRINT_REPEATED_VALUES): - m_xComponent->setPrintRepeatedValues(sValue == s_sTRUE); + m_xComponent->setPrintRepeatedValues(IsXMLToken(aIter, XML_TRUE)); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlSection.cxx b/reportdesign/source/filter/xml/xmlSection.cxx index 6e1954ab0456..71a458947fdd 100644 --- a/reportdesign/source/filter/xml/xmlSection.cxx +++ b/reportdesign/source/filter/xml/xmlSection.cxx @@ -55,23 +55,20 @@ OXMLSection::OXMLSection( ORptFilter& rImport, if (!m_xSection.is()) return; - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); try { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(REPORT, XML_PAGE_PRINT_OPTION): if ( _bPageHeader ) - m_xSection->getReportDefinition()->setPageHeaderOption(lcl_getReportPrintOption(sValue)); + m_xSection->getReportDefinition()->setPageHeaderOption(lcl_getReportPrintOption(aIter.toString())); else - m_xSection->getReportDefinition()->setPageFooterOption(lcl_getReportPrintOption(sValue)); + m_xSection->getReportDefinition()->setPageFooterOption(lcl_getReportPrintOption(aIter.toString())); break; case XML_ELEMENT(REPORT, XML_REPEAT_SECTION): - m_xSection->setRepeatSection(sValue == s_sTRUE ); + m_xSection->setRepeatSection(IsXMLToken(aIter, XML_TRUE)); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlTable.cxx b/reportdesign/source/filter/xml/xmlTable.cxx index 2c3bc48cbdda..f6934e2a3ae6 100644 --- a/reportdesign/source/filter/xml/xmlTable.cxx +++ b/reportdesign/source/filter/xml/xmlTable.cxx @@ -72,32 +72,29 @@ OXMLTable::OXMLTable( ORptFilter& rImport if (!m_xSection.is()) return; - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); try { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(REPORT, XML_VISIBLE): - m_xSection->setVisible(sValue == s_sTRUE); + m_xSection->setVisible(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(REPORT, XML_FORCE_NEW_PAGE): - m_xSection->setForceNewPage(lcl_getForceNewPageOption(sValue)); + m_xSection->setForceNewPage(lcl_getForceNewPageOption(aIter.toString())); break; case XML_ELEMENT(REPORT, XML_FORCE_NEW_COLUMN): - m_xSection->setNewRowOrCol(lcl_getForceNewPageOption(sValue)); + m_xSection->setNewRowOrCol(lcl_getForceNewPageOption(aIter.toString())); break; case XML_ELEMENT(REPORT, XML_KEEP_TOGETHER): - m_xSection->setKeepTogether(sValue == s_sTRUE); + m_xSection->setKeepTogether(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(TABLE, XML_NAME): - m_xSection->setName(sValue); + m_xSection->setName(aIter.toString()); break; case XML_ELEMENT(TABLE, XML_STYLE_NAME): - m_sStyleName = sValue; + m_sStyleName = aIter.toString(); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/sax/source/tools/converter.cxx b/sax/source/tools/converter.cxx index 07223cb01fb2..5caeb3161b8a 100644 --- a/sax/source/tools/converter.cxx +++ b/sax/source/tools/converter.cxx @@ -264,6 +264,219 @@ bool Converter::convertMeasure( sal_Int32& rValue, return true; } +/** convert string to measure using optional min and max values*/ +bool Converter::convertMeasure( sal_Int32& rValue, + std::string_view rString, + sal_Int16 nTargetUnit /* = MeasureUnit::MM_100TH */, + sal_Int32 nMin /* = SAL_MIN_INT32 */, + sal_Int32 nMax /* = SAL_MAX_INT32 */ ) +{ + bool bNeg = false; + double nVal = 0; + + sal_Int32 nPos = 0; + sal_Int32 const nLen = rString.size(); + + // skip white space + while( (nPos < nLen) && (rString[nPos] <= ' ') ) + nPos++; + + if( nPos < nLen && '-' == rString[nPos] ) + { + bNeg = true; + nPos++; + } + + // get number + while( nPos < nLen && + '0' <= rString[nPos] && + '9' >= rString[nPos] ) + { + // TODO: check overflow! + nVal *= 10; + nVal += (rString[nPos] - '0'); + nPos++; + } + if( nPos < nLen && '.' == rString[nPos] ) + { + nPos++; + double nDiv = 1.; + + while( nPos < nLen && + '0' <= rString[nPos] && + '9' >= rString[nPos] ) + { + // TODO: check overflow! + nDiv *= 10; + nVal += ( static_cast<double>(rString[nPos] - '0') / nDiv ); + nPos++; + } + } + + // skip white space + while( (nPos < nLen) && (rString[nPos] <= ' ') ) + nPos++; + + if( nPos < nLen ) + { + + if( MeasureUnit::PERCENT == nTargetUnit ) + { + if( '%' != rString[nPos] ) + return false; + } + else if( MeasureUnit::PIXEL == nTargetUnit ) + { + if( nPos + 1 >= nLen || + ('p' != rString[nPos] && + 'P' != rString[nPos])|| + ('x' != rString[nPos+1] && + 'X' != rString[nPos+1]) ) + return false; + } + else + { + OSL_ENSURE( MeasureUnit::TWIP == nTargetUnit || MeasureUnit::POINT == nTargetUnit || + MeasureUnit::MM_100TH == nTargetUnit || MeasureUnit::MM_10TH == nTargetUnit || + MeasureUnit::PIXEL == nTargetUnit, "unit is not supported"); + const char *aCmpsL[3] = { nullptr, nullptr, nullptr }; + const char *aCmpsU[3] = { nullptr, nullptr, nullptr }; + double aScales[3] = { 1., 1., 1. }; + + if( MeasureUnit::TWIP == nTargetUnit ) + { + switch( rString[nPos] ) + { + case u'c': + case u'C': + aCmpsL[0] = "cm"; + aCmpsU[0] = "CM"; + aScales[0] = (72.*20.)/2.54; // twip + break; + case u'i': + case u'I': + aCmpsL[0] = "in"; + aCmpsU[0] = "IN"; + aScales[0] = 72.*20.; // twip + break; + case u'm': + case u'M': + aCmpsL[0] = "mm"; + aCmpsU[0] = "MM"; + aScales[0] = (72.*20.)/25.4; // twip + break; + case u'p': + case u'P': + aCmpsL[0] = "pt"; + aCmpsU[0] = "PT"; + aScales[0] = 20.; // twip + + aCmpsL[1] = "pc"; + aCmpsU[1] = "PC"; + aScales[1] = 12.*20.; // twip + break; + } + } + else if( MeasureUnit::MM_100TH == nTargetUnit || MeasureUnit::MM_10TH == nTargetUnit ) + { + double nScaleFactor = (MeasureUnit::MM_100TH == nTargetUnit) ? 100.0 : 10.0; + switch( rString[nPos] ) + { + case u'c': + case u'C': + aCmpsL[0] = "cm"; + aCmpsU[0] = "CM"; + aScales[0] = 10.0 * nScaleFactor; // mm/100 + break; + case u'i': + case u'I': + aCmpsL[0] = "in"; + aCmpsU[0] = "IN"; + aScales[0] = 1000.*2.54; // mm/100 + break; + case u'm': + case u'M': + aCmpsL[0] = "mm"; + aCmpsU[0] = "MM"; + aScales[0] = 1.0 * nScaleFactor; // mm/100 + break; + case u'p': + case u'P': + aCmpsL[0] = "pt"; + aCmpsU[0] = "PT"; + aScales[0] = (10.0 * nScaleFactor*2.54)/72.; // mm/100 + + aCmpsL[1] = "pc"; + aCmpsU[1] = "PC"; + aScales[1] = (10.0 * nScaleFactor*2.54)/12.; // mm/100 + + aCmpsL[2] = "px"; + aCmpsU[2] = "PX"; + aScales[2] = 0.28 * nScaleFactor; // mm/100 + break; + } + } + else if( MeasureUnit::POINT == nTargetUnit ) + { + if( rString[nPos] == 'p' || rString[nPos] == 'P' ) + { + aCmpsL[0] = "pt"; + aCmpsU[0] = "PT"; + aScales[0] = 1; + } + } + + if( aCmpsL[0] == nullptr ) + return false; + + double nScale = 0.; + for( sal_uInt16 i= 0; i < 3; i++ ) + { + sal_Int32 nTmp = nPos; // come back to the initial position before each iteration + const char *pL = aCmpsL[i]; + if( pL ) + { + const char *pU = aCmpsU[i]; + while( nTmp < nLen && *pL ) + { + sal_Unicode c = rString[nTmp]; + if( c != *pL && c != *pU ) + break; + pL++; + pU++; + nTmp++; + } + if( !*pL && (nTmp == nLen || ' ' == rString[nTmp]) ) + { + nScale = aScales[i]; + break; + } + } + } + + if( 0. == nScale ) + return false; + + // TODO: check overflow + if( nScale != 1. ) + nVal *= nScale; + } + } + + nVal += .5; + if( bNeg ) + nVal = -nVal; + + if( nVal <= static_cast<double>(nMin) ) + rValue = nMin; + else if( nVal >= static_cast<double>(nMax) ) + rValue = nMax; + else + rValue = static_cast<sal_Int32>(nVal); + + return true; +} + /** convert measure in given unit to string with given unit */ void Converter::convertMeasure( OUStringBuffer& rBuffer, sal_Int32 nMeasure, @@ -431,6 +644,14 @@ bool Converter::convertBool( bool& rBool, std::u16string_view rString ) return rBool || (rString == u"false"); } +/** convert string to boolean */ +bool Converter::convertBool( bool& rBool, std::string_view rString ) +{ + rBool = rString == "true"; + + return rBool || (rString == "false"); +} + /** convert boolean to string */ void Converter::convertBool( OUStringBuffer& rBuffer, bool bValue ) { @@ -443,6 +664,12 @@ bool Converter::convertPercent( sal_Int32& rPercent, std::u16string_view rString return convertMeasure( rPercent, rString, MeasureUnit::PERCENT ); } +/** convert string to percent */ +bool Converter::convertPercent( sal_Int32& rPercent, std::string_view rString ) +{ + return convertMeasure( rPercent, rString, MeasureUnit::PERCENT ); +} + /** convert percent to string */ void Converter::convertPercent( OUStringBuffer& rBuffer, sal_Int32 nValue ) { @@ -456,6 +683,12 @@ bool Converter::convertMeasurePx( sal_Int32& rPixel, std::u16string_view rString return convertMeasure( rPixel, rString, MeasureUnit::PIXEL ); } +/** convert string to pixel measure */ +bool Converter::convertMeasurePx( sal_Int32& rPixel, std::string_view rString ) +{ + return convertMeasure( rPixel, rString, MeasureUnit::PIXEL ); +} + /** convert pixel measure to string */ void Converter::convertMeasurePx( OUStringBuffer& rBuffer, sal_Int32 nValue ) { @@ -493,6 +726,23 @@ bool Converter::convertColor( sal_Int32& rColor, std::u16string_view rValue ) return true; } +/** convert string to rgb color */ +bool Converter::convertColor( sal_Int32& rColor, std::string_view rValue ) +{ + if( rValue.size() != 7 || rValue[0] != '#' ) + return false; + + rColor = lcl_gethex( rValue[1] ) * 16 + lcl_gethex( rValue[2] ); + rColor <<= 8; + + rColor |= ( lcl_gethex( rValue[3] ) * 16 + lcl_gethex( rValue[4] ) ); + rColor <<= 8; + + rColor |= ( lcl_gethex( rValue[5] ) * 16 + lcl_gethex( rValue[6] ) ); + + return true; +} + const char aHexTab[] = "0123456789abcdef"; /** convert color to string */ @@ -526,6 +776,19 @@ bool Converter::convertNumber( sal_Int32& rValue, return bRet; } +/** convert string to number with optional min and max values */ +bool Converter::convertNumber( sal_Int32& rValue, + std::string_view aString, + sal_Int32 nMin, sal_Int32 nMax ) +{ + rValue = 0; + sal_Int64 nNumber = 0; + bool bRet = convertNumber64(nNumber,aString,nMin,nMax); + if ( bRet ) + rValue = static_cast<sal_Int32>(nNumber); + return bRet; +} + /** convert string to 64-bit number with optional min and max values */ bool Converter::convertNumber64( sal_Int64& rValue, std::u16string_view aString, @@ -563,6 +826,43 @@ bool Converter::convertNumber64( sal_Int64& rValue, return ( nPos == nLen && rValue >= nMin && rValue <= nMax ); } +/** convert string to 64-bit number with optional min and max values */ +bool Converter::convertNumber64( sal_Int64& rValue, + std::string_view aString, + sal_Int64 nMin, sal_Int64 nMax ) +{ + sal_Int32 nPos = 0; + sal_Int32 const nLen = aString.size(); + + // skip white space + while( (nPos < nLen) && (aString[nPos] <= ' ') ) + nPos++; + + sal_Int32 nNumberStartPos = nPos; + + if( nPos < nLen && '-' == aString[nPos] ) + { + nPos++; + } + + // get number + while( nPos < nLen && + '0' <= aString[nPos] && + '9' >= aString[nPos] ) + { + nPos++; + } + + rValue = rtl_str_toInt64_WithLength(aString.data() + nNumberStartPos, 10, nPos - nNumberStartPos); + + if( rValue < nMin ) + rValue = nMin; + else if( rValue > nMax ) + rValue = nMax; + + return ( nPos == nLen && rValue >= nMin && rValue <= nMax ); +} + /** convert double number to string (using ::rtl::math) */ void Converter::convertDouble( OUStringBuffer& rBuffer, double fNumber, @@ -623,6 +923,14 @@ bool Converter::convertDouble(double& rValue, std::u16string_view rString) return ( eStatus == rtl_math_ConversionStatus_Ok ); } +/** convert string to double number (using ::rtl::math) */ +bool Converter::convertDouble(double& rValue, std::string_view rString) +{ + rtl_math_ConversionStatus eStatus; + rValue = ::rtl::math::stringToDouble( rString, '.', ',', &eStatus ); + return ( eStatus == rtl_math_ConversionStatus_Ok ); +} + /** convert number, 10th of degrees with range [0..3600] to SVG angle */ void Converter::convertAngle(OUStringBuffer& rBuffer, sal_Int16 const nAngle, SvtSaveOptions::ODFSaneDefaultVersion const nVersion) @@ -690,6 +998,56 @@ bool Converter::convertAngle(sal_Int16& rAngle, std::u16string_view rString, return bRet; } +/** convert SVG angle to number, 10th of degrees with range [0..3600] */ +bool Converter::convertAngle(sal_Int16& rAngle, std::string_view rString, + bool const isWrongOOo10thDegAngle) +{ + // ODF 1.1 leaves it undefined what the number means, but ODF 1.2 says it's + // degrees, while OOo has historically used 10th of degrees :( + // So import degrees when we see the "deg" suffix but continue with 10th of + // degrees for now for the sake of existing OOo/LO documents, until the + // new versions that can read "deg" suffix are widely deployed and we can + // start to write the "deg" suffix. + sal_Int32 nValue(0); + double fValue(0.0); + bool bRet = ::sax::Converter::convertDouble(fValue, rString); + if (std::string_view::npos != rString.find("deg")) + { + nValue = fValue * 10.0; + } + else if (std::string_view::npos != rString.find("grad")) + { + nValue = (fValue * 9.0 / 10.0) * 10.0; + } + else if (std::string_view::npos != rString.find("rad")) + { + nValue = basegfx::rad2deg(fValue) * 10.0; + } + else // no explicit unit + { + if (isWrongOOo10thDegAngle) + { + nValue = fValue; // wrong, but backward compatible with OOo/LO < 7.0 + } + else + { + nValue = fValue * 10.0; // ODF 1.2 + } + } + // limit to valid range [0..3600] + nValue = nValue % 3600; + if (nValue < 0) + { + nValue += 3600; + } + assert(0 <= nValue && nValue <= 3600); + if (bRet) + { + rAngle = sal::static_int_cast<sal_Int16>(nValue); + } + return bRet; +} + /** convert double to ISO "duration" string; negative durations allowed */ void Converter::convertDuration(OUStringBuffer& rBuffer, const double fTime) @@ -2342,6 +2700,90 @@ sal_Int16 Converter::GetUnitFromString(std::u16string_view rString, sal_Int16 nD return nRetUnit; } +sal_Int16 Converter::GetUnitFromString(std::string_view rString, sal_Int16 nDefaultUnit) +{ + sal_Int32 nPos = 0; + sal_Int32 nLen = rString.size(); + sal_Int16 nRetUnit = nDefaultUnit; + + // skip white space + while( nPos < nLen && ' ' == rString[nPos] ) + nPos++; + + // skip negative + if( nPos < nLen && '-' == rString[nPos] ) + nPos++; + + // skip number + while( nPos < nLen && '0' <= rString[nPos] && '9' >= rString[nPos] ) + nPos++; + + if( nPos < nLen && '.' == rString[nPos] ) + { + nPos++; + while( nPos < nLen && '0' <= rString[nPos] && '9' >= rString[nPos] ) + nPos++; + } + + // skip white space + while( nPos < nLen && ' ' == rString[nPos] ) + nPos++; + + if( nPos < nLen ) + { + switch(rString[nPos]) + { + case u'%' : + { + nRetUnit = MeasureUnit::PERCENT; + break; + } + case u'c': + case u'C': + { + if(nPos+1 < nLen && (rString[nPos+1] == 'm' + || rString[nPos+1] == 'M')) + nRetUnit = MeasureUnit::CM; + break; + } + case u'e': + case u'E': + { + // CSS1_EMS or CSS1_EMX later + break; + } + case u'i': + case u'I': + { + if(nPos+1 < nLen && (rString[nPos+1] == 'n' + || rString[nPos+1] == 'N')) + nRetUnit = MeasureUnit::INCH; + break; + } + case u'm': + case u'M': + { + if(nPos+1 < nLen && (rString[nPos+1] == 'm' + || rString[nPos+1] == 'M')) + nRetUnit = MeasureUnit::MM; + break; + } + case u'p': + case u'P': + { + if(nPos+1 < nLen && (rString[nPos+1] == 't' + || rString[nPos+1] == 'T')) + nRetUnit = MeasureUnit::POINT; + if(nPos+1 < nLen && (rString[nPos+1] == 'c' + || rString[nPos+1] == 'C')) + nRetUnit = MeasureUnit::TWIP; + break; + } + } + } + + return nRetUnit; +} bool Converter::convertAny(OUStringBuffer& rsValue, OUStringBuffer& rsType , diff --git a/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx b/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx index d2d00b35df44..80bf77187c0a 100644 --- a/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx +++ b/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx @@ -193,15 +193,15 @@ void ScXMLChangeTrackingImportHelper::StartChangeAction(const ScChangeActionType } } -sal_uInt32 ScXMLChangeTrackingImportHelper::GetIDFromString(const OUString& sID) +sal_uInt32 ScXMLChangeTrackingImportHelper::GetIDFromString(std::string_view sID) { sal_uInt32 nResult(0); - if (!sID.isEmpty()) + if (!sID.empty()) { - if (sID.startsWith(SC_CHANGE_ID_PREFIX)) + if (sID.substr(0, strlen(SC_CHANGE_ID_PREFIX)) == SC_CHANGE_ID_PREFIX) { sal_Int32 nValue; - ::sax::Converter::convertNumber(nValue, std::u16string_view(sID).substr(strlen(SC_CHANGE_ID_PREFIX))); + ::sax::Converter::convertNumber(nValue, sID.substr(strlen(SC_CHANGE_ID_PREFIX))); OSL_ENSURE(nValue > 0, "wrong change action ID"); nResult = nValue; } diff --git a/sc/source/filter/xml/XMLChangeTrackingImportHelper.hxx b/sc/source/filter/xml/XMLChangeTrackingImportHelper.hxx index 4c318df17919..36529dfa47b0 100644 --- a/sc/source/filter/xml/XMLChangeTrackingImportHelper.hxx +++ b/sc/source/filter/xml/XMLChangeTrackingImportHelper.hxx @@ -187,7 +187,7 @@ public: void SetProtection(const css::uno::Sequence<sal_Int8>& rProtect) { aProtect = rProtect; } void StartChangeAction(const ScChangeActionType nActionType); - static sal_uInt32 GetIDFromString(const OUString& sID); + static sal_uInt32 GetIDFromString(std::string_view sID); void SetActionNumber(const sal_uInt32 nActionNumber) { pCurrentAction->nActionNumber = nActionNumber; } void SetActionState(const ScChangeActionState nActionState) { pCurrentAction->nActionState = nActionState; } diff --git a/sc/source/filter/xml/XMLTableHeaderFooterContext.cxx b/sc/source/filter/xml/XMLTableHeaderFooterContext.cxx index 3d2fc8c9ec72..62d3a217bbce 100644 --- a/sc/source/filter/xml/XMLTableHeaderFooterContext.cxx +++ b/sc/source/filter/xml/XMLTableHeaderFooterContext.cxx @@ -56,7 +56,7 @@ XMLTableHeaderFooterContext::XMLTableHeaderFooterContext( SvXMLImport& rImport, for( auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList ) ) { if( aIter.getToken() == XML_ELEMENT(STYLE, XML_DISPLAY) ) - bDisplay = IsXMLToken(aIter.toString(), XML_TRUE); + bDisplay = IsXMLToken(aIter, XML_TRUE); else XMLOFF_WARN_UNKNOWN("sc", aIter); } diff --git a/sc/source/filter/xml/XMLTableShapeImportHelper.cxx b/sc/source/filter/xml/XMLTableShapeImportHelper.cxx index 443f23d611d2..966204506256 100644 --- a/sc/source/filter/xml/XMLTableShapeImportHelper.cxx +++ b/sc/source/filter/xml/XMLTableShapeImportHelper.cxx @@ -97,8 +97,6 @@ void XMLTableShapeImportHelper::finishShape( SdrLayerID nLayerID = SDRLAYER_NOTFOUND; for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - const OUString sValue = aIter.toString(); - switch(aIter.getToken()) { case XML_ELEMENT(TABLE, XML_END_CELL_ADDRESS): @@ -106,7 +104,7 @@ void XMLTableShapeImportHelper::finishShape( sal_Int32 nOffset(0); ScDocument* pDoc = static_cast<ScXMLImport&>(mrImporter).GetDocument(); assert(pDoc); - ScRangeStringConverter::GetAddressFromString(aAnchor.maEnd, sValue, *pDoc, ::formula::FormulaGrammar::CONV_OOO, nOffset); + ScRangeStringConverter::GetAddressFromString(aAnchor.maEnd, aIter.toString(), *pDoc, ::formula::FormulaGrammar::CONV_OOO, nOffset); // When the cell end address is set, we let the shape resize with the cell aAnchor.mbResizeWithCell = true; break; @@ -115,7 +113,7 @@ void XMLTableShapeImportHelper::finishShape( { static_cast<ScXMLImport&>(mrImporter). GetMM100UnitConverter().convertMeasureToCore( - nEndX, sValue); + nEndX, aIter.toView()); aAnchor.maEndOffset.setX( nEndX ); break; } @@ -123,16 +121,16 @@ void XMLTableShapeImportHelper::finishShape( { static_cast<ScXMLImport&>(mrImporter). GetMM100UnitConverter().convertMeasureToCore( - nEndY, sValue); + nEndY, aIter.toView()); aAnchor.maEndOffset.setY( nEndY ); break; } case XML_ELEMENT(TABLE, XML_TABLE_BACKGROUND): - if (IsXMLToken(sValue, XML_TRUE)) + if (IsXMLToken(aIter, XML_TRUE)) nLayerID = SC_LAYER_BACK; break; case XML_ELEMENT(DRAW, XML_NOTIFY_ON_UPDATE_OF_RANGES): - xRangeList = sValue; + xRangeList = aIter.toString(); break; default: ; } @@ -216,7 +214,7 @@ void XMLTableShapeImportHelper::finishShape( { if (aIter.getToken() == XML_ELEMENT(TABLE, XML_TABLE_BACKGROUND)) { - if (IsXMLToken(aIter.toString(), XML_TRUE)) + if (IsXMLToken(aIter, XML_TRUE)) nLayerID = SC_LAYER_BACK; break; } diff --git a/sc/source/filter/xml/XMLTrackedChangesContext.cxx b/sc/source/filter/xml/XMLTrackedChangesContext.cxx index d8292c5feecd..3f8870ea32c2 100644 --- a/sc/source/filter/xml/XMLTrackedChangesContext.cxx +++ b/sc/source/filter/xml/XMLTrackedChangesContext.cxx @@ -522,7 +522,7 @@ ScXMLCellContentDeletionContext::ScXMLCellContentDeletionContext( ScXMLImport& { auto aIter( rAttrList->find( XML_ELEMENT( TABLE, XML_ID ) ) ); if (aIter != rAttrList->end()) - nID = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toString() ); + nID = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toView() ); } } @@ -568,7 +568,7 @@ ScXMLDependenceContext::ScXMLDependenceContext( ScXMLImport& rImport, { auto aIter( rAttrList->find( XML_ELEMENT( TABLE, XML_ID ) ) ); if (aIter != rAttrList->end()) - nID = ScXMLChangeTrackingImportHelper::GetIDFromString(aIter.toString()); + nID = ScXMLChangeTrackingImportHelper::GetIDFromString(aIter.toView()); } pChangeTrackingImportHelper->AddDependence(nID); } @@ -608,7 +608,7 @@ ScXMLChangeDeletionContext::ScXMLChangeDeletionContext( ScXMLImport& rImport, { auto aIter( rAttrList->find( XML_ELEMENT( TABLE, XML_ID ) ) ); if (aIter != rAttrList->end()) - nID = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toString() ); + nID = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toView() ); } pChangeTrackingImportHelper->AddDeleted(nID); } @@ -907,7 +907,7 @@ ScXMLPreviousContext::ScXMLPreviousContext( ScXMLImport& rImport, { auto aIter( rAttrList->find( XML_ELEMENT( TABLE, XML_ID ) ) ); if (aIter != rAttrList->end()) - nID = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toString() ); + nID = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toView() ); } } @@ -948,7 +948,7 @@ ScXMLContentChangeContext::ScXMLContentChangeContext( ScXMLImport& rImport, switch (aIter.getToken()) { case XML_ELEMENT( TABLE, XML_ID ): - nActionNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toString() ); + nActionNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toView() ); break; case XML_ELEMENT( TABLE, XML_ACCEPTANCE_STATE ): if (IsXMLToken( aIter, XML_ACCEPTED )) @@ -957,7 +957,7 @@ ScXMLContentChangeContext::ScXMLContentChangeContext( ScXMLImport& rImport, nActionState = SC_CAS_REJECTED; break; case XML_ELEMENT( TABLE, XML_REJECTING_CHANGE_ID ): - nRejectingNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toString() ); + nRejectingNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toView() ); } } } @@ -1024,7 +1024,7 @@ ScXMLInsertionContext::ScXMLInsertionContext( ScXMLImport& rImport, switch (aIter.getToken()) { case XML_ELEMENT( TABLE, XML_ID ): - nActionNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toString() ); + nActionNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toView() ); break; case XML_ELEMENT( TABLE, XML_ACCEPTANCE_STATE ): if (IsXMLToken( aIter, XML_ACCEPTED )) @@ -1033,7 +1033,7 @@ ScXMLInsertionContext::ScXMLInsertionContext( ScXMLImport& rImport, nActionState = SC_CAS_REJECTED; break; case XML_ELEMENT( TABLE, XML_REJECTING_CHANGE_ID ): - nRejectingNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toString() ); + nRejectingNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toView() ); break; case XML_ELEMENT( TABLE, XML_TYPE ): if (IsXMLToken( aIter, XML_ROW )) @@ -1098,15 +1098,13 @@ ScXMLInsertionCutOffContext::ScXMLInsertionCutOffContext( ScXMLImport& rImport, sal_Int32 nPosition(0); for (auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList )) { - const OUString sValue = aIter.toString(); - switch (aIter.getToken()) { case XML_ELEMENT(TABLE, XML_ID): - nID = ScXMLChangeTrackingImportHelper::GetIDFromString(sValue); + nID = ScXMLChangeTrackingImportHelper::GetIDFromString(aIter.toView()); break; case XML_ELEMENT(TABLE, XML_POSITION): - ::sax::Converter::convertNumber(nPosition, sValue); + ::sax::Converter::convertNumber(nPosition, aIter.toView()); break; } } @@ -1126,22 +1124,20 @@ ScXMLMovementCutOffContext::ScXMLMovementCutOffContext( ScXMLImport& rImport, bool bPosition(false); for (auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList )) { - const OUString sValue = aIter.toString(); - switch (aIter.getToken()) { case XML_ELEMENT(TABLE, XML_ID): - nID = ScXMLChangeTrackingImportHelper::GetIDFromString(sValue); + nID = ScXMLChangeTrackingImportHelper::GetIDFromString(aIter.toView()); break; case XML_ELEMENT(TABLE, XML_POSITION): bPosition = true; - ::sax::Converter::convertNumber(nPosition, sValue); + ::sax::Converter::convertNumber(nPosition, aIter.toView()); break; case XML_ELEMENT(TABLE, XML_START_POSITION): - ::sax::Converter::convertNumber(nStartPosition, sValue); + ::sax::Converter::convertNumber(nStartPosition, aIter.toView()); break; case XML_ELEMENT(TABLE, XML_END_POSITION): - ::sax::Converter::convertNumber(nEndPosition, sValue); + ::sax::Converter::convertNumber(nEndPosition, aIter.toView()); break; } } @@ -1193,7 +1189,7 @@ ScXMLDeletionContext::ScXMLDeletionContext( ScXMLImport& rImport, switch (nToken) { case XML_ELEMENT( TABLE, XML_ID ): - nActionNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toString() ); + nActionNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toView() ); break; case XML_ELEMENT( TABLE, XML_ACCEPTANCE_STATE ): if (IsXMLToken( aIter, XML_ACCEPTED )) @@ -1202,7 +1198,7 @@ ScXMLDeletionContext::ScXMLDeletionContext( ScXMLImport& rImport, nActionState = SC_CAS_REJECTED; break; case XML_ELEMENT( TABLE, XML_REJECTING_CHANGE_ID ): - nRejectingNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toString() ); + nRejectingNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toView() ); break; case XML_ELEMENT( TABLE, XML_TYPE ): if (IsXMLToken( aIter, XML_ROW )) @@ -1279,7 +1275,7 @@ ScXMLMovementContext::ScXMLMovementContext( ScXMLImport& rImport, switch (aIter.getToken()) { case XML_ELEMENT( TABLE, XML_ID ): - nActionNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toString() ); + nActionNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toView() ); break; case XML_ELEMENT( TABLE, XML_ACCEPTANCE_STATE ): if (IsXMLToken( aIter, XML_ACCEPTED )) @@ -1288,7 +1284,7 @@ ScXMLMovementContext::ScXMLMovementContext( ScXMLImport& rImport, nActionState = SC_CAS_REJECTED; break; case XML_ELEMENT( TABLE, XML_REJECTING_CHANGE_ID ): - nRejectingNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toString() ); + nRejectingNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toView() ); break; } } @@ -1352,7 +1348,7 @@ ScXMLRejectionContext::ScXMLRejectionContext( ScXMLImport& rImport, switch (aIter.getToken()) { case XML_ELEMENT( TABLE, XML_ID ): - nActionNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toString() ); + nActionNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toView() ); break; case XML_ELEMENT( TABLE, XML_ACCEPTANCE_STATE ): if (IsXMLToken( aIter, XML_ACCEPTED )) @@ -1361,7 +1357,7 @@ ScXMLRejectionContext::ScXMLRejectionContext( ScXMLImport& rImport, nActionState = SC_CAS_REJECTED; break; case XML_ELEMENT( TABLE, XML_REJECTING_CHANGE_ID ): - nRejectingNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toString() ); + nRejectingNumber = ScXMLChangeTrackingImportHelper::GetIDFromString( aIter.toView() ); break; } } diff --git a/sc/source/filter/xml/xmlannoi.cxx b/sc/source/filter/xml/xmlannoi.cxx index 143d60a414c1..5ce2980fbeaf 100644 --- a/sc/source/filter/xml/xmlannoi.cxx +++ b/sc/source/filter/xml/xmlannoi.cxx @@ -58,28 +58,26 @@ ScXMLAnnotationContext::ScXMLAnnotationContext( ScXMLImport& rImport, for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - const OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(OFFICE, XML_AUTHOR): { - maAuthorBuffer = sValue; + maAuthorBuffer = aIter.toString(); } break; case XML_ELEMENT(OFFICE, XML_CREATE_DATE): { - maCreateDateBuffer = sValue; + maCreateDateBuffer = aIter.toString(); } break; case XML_ELEMENT(OFFICE, XML_CREATE_DATE_STRING): { - maCreateDateStringBuffer = sValue; + maCreateDateStringBuffer = aIter.toString(); } break; case XML_ELEMENT(OFFICE, XML_DISPLAY): { - mrAnnotationData.mbShown = IsXMLToken(sValue, XML_TRUE); + mrAnnotationData.mbShown = IsXMLToken(aIter, XML_TRUE); } break; case XML_ELEMENT(SVG, XML_X): @@ -95,7 +93,7 @@ ScXMLAnnotationContext::ScXMLAnnotationContext( ScXMLImport& rImport, } break; default: - SAL_WARN("xmloff", "unknown attribute " << SvXMLImport::getPrefixAndNameFromToken(aIter.getToken()) << "=" << aIter.toString()); + XMLOFF_WARN_UNKNOWN("xmloff", aIter); } } } diff --git a/starmath/source/mathmlimport.cxx b/starmath/source/mathmlimport.cxx index e68184660850..04c4bc6b8837 100644 --- a/starmath/source/mathmlimport.cxx +++ b/starmath/source/mathmlimport.cxx @@ -565,18 +565,19 @@ void SmXMLContext_Helper::RetrieveAttrs( bool bMvFound = false; for (auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList)) { - OUString sValue = aIter.toString(); // sometimes they have namespace, sometimes not? switch (aIter.getToken() & TOKEN_MASK) { case XML_FONTWEIGHT: - nIsBold = sal_Int8(sValue == GetXMLToken(XML_BOLD)); + nIsBold = sal_Int8(IsXMLToken(aIter, XML_BOLD)); break; case XML_FONTSTYLE: - nIsItalic = sal_Int8(sValue == GetXMLToken(XML_ITALIC)); + nIsItalic = sal_Int8(IsXMLToken(aIter, XML_ITALIC)); break; case XML_FONTSIZE: case XML_MATHSIZE: + { + OUString sValue = aIter.toString(); ::sax::Converter::convertDouble(nFontSize, sValue); rContext.GetSmImport().GetMM100UnitConverter().SetXMLMeasureUnit( util::MeasureUnit::POINT); @@ -591,14 +592,15 @@ void SmXMLContext_Helper::RetrieveAttrs( } } break; + } case XML_FONTFAMILY: - sFontFamily = sValue; + sFontFamily = aIter.toString(); break; case XML_COLOR: - sColor = sValue; + sColor = aIter.toString(); break; case XML_MATHCOLOR: - sColor = sValue; + sColor = aIter.toString(); break; case XML_MATHVARIANT: bMvFound = true; @@ -1053,18 +1055,17 @@ void SmXMLFencedContext_Impl::startFastElement( { for (auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList)) { - OUString sValue = aIter.toString(); switch (aIter.getToken()) { //temp, starmath cannot handle multichar brackets (I think) case XML_OPEN: - cBegin = sValue[0]; + cBegin = aIter.toString()[0]; break; case XML_CLOSE: - cEnd = sValue[0]; + cEnd = aIter.toString()[0]; break; case XML_STRETCHY: - bIsStretchy = sValue == GetXMLToken(XML_TRUE); + bIsStretchy = IsXMLToken(aIter, XML_TRUE); break; default: XMLOFF_WARN_UNKNOWN("starmath", aIter); @@ -1210,12 +1211,11 @@ void SmXMLAnnotationContext_Impl::startFastElement( { for (auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList)) { - OUString sValue = aIter.toString(); // sometimes they have namespace, sometimes not? switch (aIter.getToken() & TOKEN_MASK) { case XML_ENCODING: - bIsStarMath = sValue == "StarMath 5.0"; + bIsStarMath = aIter.toView() == "StarMath 5.0"; break; default: XMLOFF_WARN_UNKNOWN("starmath", aIter); @@ -1441,19 +1441,18 @@ void SmXMLOperatorContext_Impl::startFastElement( for (auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList)) { - OUString sValue = aIter.toString(); switch (aIter.getToken()) { case XML_STRETCHY: - bIsStretchy = sValue == GetXMLToken(XML_TRUE); + bIsStretchy = IsXMLToken(aIter, XML_TRUE); break; case XML_FENCE: - bIsFenced = sValue == GetXMLToken(XML_TRUE); + bIsFenced = IsXMLToken(aIter, XML_TRUE); break; case XML_FORM: - isPrefix = sValue == GetXMLToken(XML_PREFIX); // < - isInfix = sValue == GetXMLToken(XML_INFIX); // | - isPostfix = sValue == GetXMLToken(XML_POSTFIX); // > + isPrefix = IsXMLToken(aIter, XML_PREFIX); // < + isInfix = IsXMLToken(aIter, XML_INFIX); // | + isPostfix = IsXMLToken(aIter, XML_POSTFIX); // > break; default: XMLOFF_WARN_UNKNOWN("starmath", aIter); @@ -2494,12 +2493,11 @@ void SmXMLActionContext_Impl::startFastElement( { for (auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList)) { - OUString sValue = aIter.toString(); switch (aIter.getToken()) { case XML_SELECTION: { - sal_uInt32 n = sValue.toUInt32(); + sal_Int32 n = aIter.toInt32(); if (n > 0) mnSelection = static_cast<size_t>(n); } diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx index be694b483d00..263fe55c188c 100644 --- a/sw/source/filter/xml/xmltbli.cxx +++ b/sw/source/filter/xml/xmltbli.cxx @@ -397,7 +397,7 @@ SwXMLTableCellContext_Impl::SwXMLTableCellContext_Impl( case XML_ELEMENT(OFFICE, XML_VALUE): { double fTmp; - if (::sax::Converter::convertDouble(fTmp, aIter.toString())) + if (::sax::Converter::convertDouble(fTmp, aIter.toView())) { m_fValue = fTmp; m_bHasValue = true; @@ -506,7 +506,7 @@ css::uno::Reference<css::xml::sax::XFastContextHandler> SwXMLTableCellContext_Im { if( aIter.getToken() == XML_ELEMENT(TABLE, XML_IS_SUB_TABLE) ) { - if ( IsXMLToken( aIter.toString(), XML_TRUE ) ) + if ( IsXMLToken( aIter, XML_TRUE ) ) bSubTable = true; } else @@ -925,25 +925,24 @@ void SwXMLDDETableContext_Impl::startFastElement( { for( auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList ) ) { - OUString aValue = aIter.toString(); switch (aIter.getToken()) { case XML_ELEMENT(OFFICE, XML_DDE_APPLICATION): - sDDEApplication = aValue; + sDDEApplication = aIter.toString(); break; case XML_ELEMENT(OFFICE, XML_DDE_TOPIC): - sDDETopic = aValue; + sDDETopic = aIter.toString(); break; case XML_ELEMENT(OFFICE, XML_DDE_ITEM): - sDDEItem = aValue; + sDDEItem = aIter.toString(); break; case XML_ELEMENT(OFFICE, XML_NAME): - sConnectionName = aValue; + sConnectionName = aIter.toString(); break; case XML_ELEMENT(OFFICE, XML_AUTOMATIC_UPDATE): { bool bTmp(false); - if (::sax::Converter::convertBool(bTmp, aValue)) + if (::sax::Converter::convertBool(bTmp, aIter.toView())) { bIsAutomaticUpdate = bTmp; } diff --git a/xmloff/source/chart/SchXMLAxisContext.cxx b/xmloff/source/chart/SchXMLAxisContext.cxx index 17ba48af5c9e..dd6c1fd62596 100644 --- a/xmloff/source/chart/SchXMLAxisContext.cxx +++ b/xmloff/source/chart/SchXMLAxisContext.cxx @@ -235,30 +235,29 @@ void SchXMLAxisContext::startFastElement( sal_Int32 /*nElement*/, // parse attributes for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString aValue = aIter.toString(); switch(aIter.getToken()) { case XML_ELEMENT(CHART, XML_DIMENSION): { SchXMLAxisDimension nEnumVal; - if( SvXMLUnitConverter::convertEnum( nEnumVal, aValue, aXMLAxisDimensionMap )) + if( SvXMLUnitConverter::convertEnum( nEnumVal, aIter.toString(), aXMLAxisDimensionMap )) m_aCurrentAxis.eDimension = nEnumVal; } break; case XML_ELEMENT(CHART, XML_NAME): - m_aCurrentAxis.aName = aValue; + m_aCurrentAxis.aName = aIter.toString(); break; case XML_ELEMENT(CHART, XML_AXIS_TYPE): case XML_ELEMENT(CHART_EXT, XML_AXIS_TYPE): sal_uInt16 nEnumVal; - if( SvXMLUnitConverter::convertEnum( nEnumVal, aValue, aXMLAxisTypeMap )) + if( SvXMLUnitConverter::convertEnum( nEnumVal, aIter.toString(), aXMLAxisTypeMap )) { m_nAxisType = nEnumVal; m_bAxisTypeImported = true; } break; case XML_ELEMENT(CHART, XML_STYLE_NAME): - m_aAutoStyleName = aValue; + m_aAutoStyleName = aIter.toString(); break; default: XMLOFF_WARN_UNKNOWN("xmloff", aIter); @@ -611,7 +610,7 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > SchXMLAxisContext::cre switch (aIter.getToken()) { case XML_ELEMENT(CHART, XML_CLASS): - if( IsXMLToken( aIter.toString(), XML_MINOR ) ) + if( IsXMLToken( aIter, XML_MINOR ) ) bIsMajor = false; break; case XML_ELEMENT(CHART, XML_STYLE_NAME): @@ -819,7 +818,7 @@ DateScaleContext::DateScaleContext( namespace { -sal_Int32 lcl_getTimeUnit( const OUString& rValue ) +sal_Int32 lcl_getTimeUnit( const sax_fastparser::FastAttributeList::FastAttributeIter& rValue ) { sal_Int32 nTimeUnit = css::chart::TimeUnit::DAY; if( IsXMLToken( rValue, XML_DAYS ) ) @@ -846,12 +845,11 @@ void DateScaleContext::startFastElement( sal_Int32 /*nElement*/, for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString aValue = aIter.toString(); switch( aIter.getToken() ) { case XML_ELEMENT(CHART, XML_BASE_TIME_UNIT): { - aIncrement.TimeResolution <<= lcl_getTimeUnit(aValue); + aIncrement.TimeResolution <<= lcl_getTimeUnit(aIter); bSetNewIncrement = true; } break; @@ -859,7 +857,7 @@ void DateScaleContext::startFastElement( sal_Int32 /*nElement*/, { chart::TimeInterval aInterval(1,0); aIncrement.MajorTimeInterval >>= aInterval; - ::sax::Converter::convertNumber( aInterval.Number, aValue ); + ::sax::Converter::convertNumber( aInterval.Number, aIter.toView() ); aIncrement.MajorTimeInterval <<= aInterval; bSetNewIncrement = true; } @@ -868,7 +866,7 @@ void DateScaleContext::startFastElement( sal_Int32 /*nElement*/, { chart::TimeInterval aInterval(1,0); aIncrement.MajorTimeInterval >>= aInterval; - aInterval.TimeUnit = lcl_getTimeUnit(aValue); + aInterval.TimeUnit = lcl_getTimeUnit(aIter); aIncrement.MajorTimeInterval <<= aInterval; bSetNewIncrement = true; } @@ -877,7 +875,7 @@ void DateScaleContext::startFastElement( sal_Int32 /*nElement*/, { chart::TimeInterval aInterval(1,0); aIncrement.MinorTimeInterval >>= aInterval; - ::sax::Converter::convertNumber( aInterval.Number, aValue ); + ::sax::Converter::convertNumber( aInterval.Number, aIter.toView() ); aIncrement.MinorTimeInterval <<= aInterval; bSetNewIncrement = true; } @@ -886,7 +884,7 @@ void DateScaleContext::startFastElement( sal_Int32 /*nElement*/, { chart::TimeInterval aInterval(1,0); aIncrement.MinorTimeInterval >>= aInterval; - aInterval.TimeUnit = lcl_getTimeUnit(aValue); + aInterval.TimeUnit = lcl_getTimeUnit(aIter); aIncrement.MinorTimeInterval <<= aInterval; bSetNewIncrement = true; } diff --git a/xmloff/source/chart/SchXMLChartContext.cxx b/xmloff/source/chart/SchXMLChartContext.cxx index 8b4f79582138..9c97c64a5a29 100644 --- a/xmloff/source/chart/SchXMLChartContext.cxx +++ b/xmloff/source/chart/SchXMLChartContext.cxx @@ -319,17 +319,17 @@ void SchXMLChartContext::startFastElement( sal_Int32 /*nElement*/, for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString aValue = aIter.toString(); switch( aIter.getToken() ) { case XML_ELEMENT(LO_EXT, XML_DATA_PILOT_SOURCE): - msDataPilotSource = aValue; + msDataPilotSource = aIter.toString(); break; case XML_ELEMENT(XLINK, XML_HREF): - m_aXLinkHRefAttributeToIndicateDataProvider = aValue; + m_aXLinkHRefAttributeToIndicateDataProvider = aIter.toString(); break; case XML_ELEMENT(CHART, XML_CLASS): { + OUString aValue = aIter.toString(); OUString sClassName; sal_uInt16 nClassPrefix = GetImport().GetNamespaceMap().GetKeyByAttrValueQName( @@ -365,24 +365,24 @@ void SchXMLChartContext::startFastElement( sal_Int32 /*nElement*/, case XML_ELEMENT(SVG, XML_WIDTH): case XML_ELEMENT(SVG_COMPAT, XML_WIDTH): GetImport().GetMM100UnitConverter().convertMeasureToCore( - maChartSize.Width, aValue ); + maChartSize.Width, aIter.toView() ); break; case XML_ELEMENT(SVG, XML_HEIGHT): case XML_ELEMENT(SVG_COMPAT, XML_HEIGHT): GetImport().GetMM100UnitConverter().convertMeasureToCore( - maChartSize.Height, aValue ); + maChartSize.Height, aIter.toView() ); break; case XML_ELEMENT(CHART, XML_STYLE_NAME): - sAutoStyleName = aValue; + sAutoStyleName = aIter.toString(); break; case XML_ELEMENT(CHART, XML_COLUMN_MAPPING): - msColTrans = aValue; + msColTrans = aIter.toString(); break; case XML_ELEMENT(CHART, XML_ROW_MAPPING): - msRowTrans = aValue; + msRowTrans = aIter.toString(); break; default: XMLOFF_WARN_UNKNOWN("xmloff", aIter); @@ -1176,14 +1176,13 @@ void SchXMLTitleContext::startFastElement( sal_Int32 /*nElement*/, for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString aValue = aIter.toString(); switch (aIter.getToken()) { case XML_ELEMENT(SVG, XML_X): case XML_ELEMENT(SVG_COMPAT, XML_X): { GetImport().GetMM100UnitConverter().convertMeasureToCore( - aPosition.X, aValue ); + aPosition.X, aIter.toView() ); bHasXPosition = true; break; } @@ -1191,12 +1190,12 @@ void SchXMLTitleContext::startFastElement( sal_Int32 /*nElement*/, case XML_ELEMENT(SVG_COMPAT, XML_Y): { GetImport().GetMM100UnitConverter().convertMeasureToCore( - aPosition.Y, aValue ); + aPosition.Y, aIter.toView() ); bHasYPosition = true; break; } case XML_ELEMENT(CHART, XML_STYLE_NAME): - msAutoStyleName = aValue; + msAutoStyleName = aIter.toString(); break; default: XMLOFF_WARN_UNKNOWN("xmloff", aIter); diff --git a/xmloff/source/chart/SchXMLLegendContext.cxx b/xmloff/source/chart/SchXMLLegendContext.cxx index 758863a688c6..4cc10dfe7a9e 100644 --- a/xmloff/source/chart/SchXMLLegendContext.cxx +++ b/xmloff/source/chart/SchXMLLegendContext.cxx @@ -85,13 +85,12 @@ void SchXMLLegendContext::startFastElement( sal_Int32 /*nElement*/, for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString aValue = aIter.toString(); switch(aIter.getToken()) { case XML_ELEMENT(CHART, XML_LEGEND_POSITION): try { - if( SchXMLEnumConverter::getLegendPositionConverter().importXML( aValue, aAny, GetImport().GetMM100UnitConverter() ) ) + if( SchXMLEnumConverter::getLegendPositionConverter().importXML( aIter.toString(), aAny, GetImport().GetMM100UnitConverter() ) ) xLegendProps->setPropertyValue("Alignment", aAny ); } catch(const beans::UnknownPropertyException&) @@ -102,7 +101,7 @@ void SchXMLLegendContext::startFastElement( sal_Int32 /*nElement*/, case XML_ELEMENT(LO_EXT, XML_OVERLAY): try { - bOverlay = aValue.toBoolean(); + bOverlay = aIter.toBoolean(); xLegendProps->setPropertyValue("Overlay", uno::makeAny(bOverlay)); } catch(const beans::UnknownPropertyException&) @@ -113,20 +112,20 @@ void SchXMLLegendContext::startFastElement( sal_Int32 /*nElement*/, case XML_ELEMENT(SVG, XML_X): case XML_ELEMENT(SVG_COMPAT, XML_X): GetImport().GetMM100UnitConverter().convertMeasureToCore( - aLegendPos.X, aValue ); + aLegendPos.X, aIter.toView() ); bHasXPosition = true; break; case XML_ELEMENT(SVG, XML_Y): case XML_ELEMENT(SVG_COMPAT, XML_Y): GetImport().GetMM100UnitConverter().convertMeasureToCore( - aLegendPos.Y, aValue ); + aLegendPos.Y, aIter.toView() ); bHasYPosition = true; break; case XML_ELEMENT(CHART, XML_STYLE_NAME): - sAutoStyleName = aValue; + sAutoStyleName = aIter.toString(); break; case XML_ELEMENT(STYLE, XML_LEGEND_EXPANSION): - SchXMLEnumConverter::getLegendPositionConverter().importXML( aValue, aAny, GetImport().GetMM100UnitConverter() ); + SchXMLEnumConverter::getLegendPositionConverter().importXML( aIter.toString(), aAny, GetImport().GetMM100UnitConverter() ); bHasExpansion = (aAny>>=nLegendExpansion); break; case XML_ELEMENT(STYLE, XML_LEGEND_EXPANSION_ASPECT_RATIO): @@ -135,14 +134,14 @@ void SchXMLLegendContext::startFastElement( sal_Int32 /*nElement*/, case XML_ELEMENT(SVG_COMPAT, XML_WIDTH): case XML_ELEMENT(CHART_EXT, XML_WIDTH): GetImport().GetMM100UnitConverter().convertMeasureToCore( - aLegendSize.Width, aValue ); + aLegendSize.Width, aIter.toView() ); bHasWidth = true; break; case XML_ELEMENT(SVG, XML_HEIGHT): case XML_ELEMENT(SVG_COMPAT, XML_HEIGHT): case XML_ELEMENT(CHART_EXT, XML_HEIGHT): GetImport().GetMM100UnitConverter().convertMeasureToCore( - aLegendSize.Height, aValue ); + aLegendSize.Height, aIter.toView() ); bHasHeight = true; break; default: diff --git a/xmloff/source/chart/SchXMLPlotAreaContext.cxx b/xmloff/source/chart/SchXMLPlotAreaContext.cxx index 985a4a633212..2d870e9b2f8e 100644 --- a/xmloff/source/chart/SchXMLPlotAreaContext.cxx +++ b/xmloff/source/chart/SchXMLPlotAreaContext.cxx @@ -225,23 +225,23 @@ void SchXMLPlotAreaContext::startFastElement (sal_Int32 /*nElement*/, case XML_ELEMENT(SVG_COMPAT, XML_WIDTH): case XML_ELEMENT(SVG, XML_HEIGHT): case XML_ELEMENT(SVG_COMPAT, XML_HEIGHT): - m_aOuterPositioning.readPositioningAttribute( aIter.getToken(), aValue ); + m_aOuterPositioning.readPositioningAttribute( aIter.getToken(), aIter.toView() ); break; case XML_ELEMENT(CHART, XML_STYLE_NAME): - msAutoStyleName = aValue; + msAutoStyleName = aIter.toString(); break; case XML_ELEMENT(TABLE, XML_CELL_RANGE_ADDRESS): - mrChartAddress = lcl_ConvertRange( aValue, xNewDoc ); + mrChartAddress = lcl_ConvertRange( aIter.toString(), xNewDoc ); // indicator for getting data from the outside m_rbHasRangeAtPlotArea = true; break; case XML_ELEMENT(CHART, XML_DATA_SOURCE_HAS_LABELS): { - if( aValue == ::xmloff::token::GetXMLToken( ::xmloff::token::XML_BOTH )) + if( IsXMLToken(aIter, XML_BOTH) ) mrColHasLabels = mrRowHasLabels = true; - else if( aValue == ::xmloff::token::GetXMLToken( ::xmloff::token::XML_ROW )) + else if( IsXMLToken(aIter, XML_ROW) ) mrRowHasLabels = true; - else if( aValue == ::xmloff::token::GetXMLToken( ::xmloff::token::XML_COLUMN )) + else if( IsXMLToken(aIter, XML_COLUMN) ) mrColHasLabels = true; } break; @@ -643,14 +643,13 @@ void SchXMLDataLabelContext::startFastElement( { for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sValue = aIter.toString(); switch(aIter.getToken()) { case XML_ELEMENT(SVG, XML_X): case XML_ELEMENT(SVG_COMPAT, XML_X): { sal_Int32 nResultValue; - GetImport().GetMM100UnitConverter().convertMeasureToCore(nResultValue, sValue); + GetImport().GetMM100UnitConverter().convertMeasureToCore(nResultValue, aIter.toView()); mrDataLabelStyle.mo_nLabelAbsolutePosX = nResultValue; break; } @@ -658,12 +657,12 @@ void SchXMLDataLabelContext::startFastElement( case XML_ELEMENT(SVG_COMPAT, XML_Y): { sal_Int32 nResultValue; - GetImport().GetMM100UnitConverter().convertMeasureToCore(nResultValue, sValue); + GetImport().GetMM100UnitConverter().convertMeasureToCore(nResultValue, aIter.toView()); mrDataLabelStyle.mo_nLabelAbsolutePosY = nResultValue; break; } case XML_ELEMENT(CHART, XML_STYLE_NAME): - mrDataLabelStyle.msStyleName = sValue; + mrDataLabelStyle.msStyleName = aIter.toString(); break; default: XMLOFF_WARN_UNKNOWN("xmloff", aIter); @@ -744,7 +743,7 @@ void SchXMLDataPointContext::startFastElement (sal_Int32 /*Element*/, break; case XML_ELEMENT(LO_EXT, XML_HIDE_LEGEND): { - bool bHideLegend = aIter.toString().toBoolean(); + bool bHideLegend = aIter.toBoolean(); if (bHideLegend) { uno::Sequence<sal_Int32> deletedLegendEntriesSeq; @@ -818,7 +817,7 @@ bool SchXMLPositionAttributesHelper::isAutomatic() const return m_bAutoSize || m_bAutoPosition; } -void SchXMLPositionAttributesHelper::readPositioningAttribute( sal_Int32 nAttributeToken, std::u16string_view rValue ) +void SchXMLPositionAttributesHelper::readPositioningAttribute( sal_Int32 nAttributeToken, std::string_view rValue ) { if( !IsTokenInNamespace(nAttributeToken, XML_NAMESPACE_SVG) && !IsTokenInNamespace(nAttributeToken, XML_NAMESPACE_SVG_COMPAT) ) return; @@ -854,7 +853,7 @@ void SchXMLPositionAttributesHelper::readPositioningAttribute( sal_Int32 nAttrib break; } default: - XMLOFF_WARN_UNKNOWN_ATTR("xmloff", nAttributeToken, OUString(rValue)); + XMLOFF_WARN_UNKNOWN_ATTR("xmloff", nAttributeToken, OUString::fromUtf8(rValue)); } } @@ -887,7 +886,7 @@ void SchXMLCoordinateRegionContext::startFastElement (sal_Int32 /*Element*/, { // parse attributes for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) - m_rPositioning.readPositioningAttribute( aIter.getToken(), aIter.toString() ); + m_rPositioning.readPositioningAttribute( aIter.getToken(), aIter.toView() ); } SchXMLWallFloorContext::SchXMLWallFloorContext( diff --git a/xmloff/source/chart/SchXMLPlotAreaContext.hxx b/xmloff/source/chart/SchXMLPlotAreaContext.hxx index aeda126bd33d..137bbb45d6e8 100644 --- a/xmloff/source/chart/SchXMLPlotAreaContext.hxx +++ b/xmloff/source/chart/SchXMLPlotAreaContext.hxx @@ -60,7 +60,7 @@ public: explicit SchXMLPositionAttributesHelper( SvXMLImport& rImporter ); ~SchXMLPositionAttributesHelper(); - void readPositioningAttribute( sal_Int32 nAttributeToken, std::u16string_view rValue ); + void readPositioningAttribute( sal_Int32 nAttributeToken, std::string_view rValue ); void readAutomaticPositioningProperties( XMLPropStyleContext const * pPropStyleContext, const SvXMLStylesContext* pStylesCtxt ); bool hasPosSize() const; diff --git a/xmloff/source/chart/SchXMLRegressionCurveObjectContext.cxx b/xmloff/source/chart/SchXMLRegressionCurveObjectContext.cxx index fcb95607b6aa..aac03261fb29 100644 --- a/xmloff/source/chart/SchXMLRegressionCurveObjectContext.cxx +++ b/xmloff/source/chart/SchXMLRegressionCurveObjectContext.cxx @@ -117,29 +117,28 @@ void SchXMLEquationContext::startFastElement (sal_Int32 /*nElement*/, for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString aValue = aIter.toString(); switch(aIter.getToken()) { case XML_ELEMENT(SVG, XML_X): case XML_ELEMENT(SVG_COMPAT, XML_X): rImport.GetMM100UnitConverter().convertMeasureToCore( - aPosition.X, aValue ); + aPosition.X, aIter.toView() ); bHasXPos = true; break; case XML_ELEMENT(SVG, XML_Y): case XML_ELEMENT(SVG_COMPAT, XML_Y): rImport.GetMM100UnitConverter().convertMeasureToCore( - aPosition.Y, aValue ); + aPosition.Y, aIter.toView() ); bHasYPos = true; break; case XML_ELEMENT(CHART, XML_DISPLAY_EQUATION): - (void)::sax::Converter::convertBool(bShowEquation, aValue); + (void)::sax::Converter::convertBool(bShowEquation, aIter.toView()); break; case XML_ELEMENT(CHART, XML_DISPLAY_R_SQUARE): - (void)::sax::Converter::convertBool(bShowRSquare, aValue); + (void)::sax::Converter::convertBool(bShowRSquare, aIter.toView()); break; case XML_ELEMENT(CHART, XML_STYLE_NAME): - sAutoStyleName = aValue; + sAutoStyleName = aIter.toString(); break; default: XMLOFF_WARN_UNKNOWN("xmloff", aIter); diff --git a/xmloff/source/chart/SchXMLTableContext.cxx b/xmloff/source/chart/SchXMLTableContext.cxx index 8b128461bf35..ac5bcdbc2515 100644 --- a/xmloff/source/chart/SchXMLTableContext.cxx +++ b/xmloff/source/chart/SchXMLTableContext.cxx @@ -261,7 +261,7 @@ void SchXMLTableContext::startFastElement (sal_Int32 /*nElement*/, mrTable.aTableNameOfFile = aIter.toString(); break; case XML_ELEMENT(TABLE, XML_PROTECTED): - if ( IsXMLToken( aIter.toString(), XML_TRUE ) ) + if ( IsXMLToken( aIter, XML_TRUE ) ) { mrTable.bProtected = true; } @@ -574,7 +574,6 @@ SchXMLTableCellContext::~SchXMLTableCellContext() void SchXMLTableCellContext::startFastElement (sal_Int32 /*nElement*/, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) { - OUString aValue; OUString aCellContent; SchXMLCellType eValueType = SCH_CELL_TYPE_UNKNOWN; @@ -583,10 +582,9 @@ void SchXMLTableCellContext::startFastElement (sal_Int32 /*nElement*/, switch(aIter.getToken()) { case XML_ELEMENT(OFFICE, XML_VALUE_TYPE): - aValue = aIter.toString(); - if( IsXMLToken( aValue, XML_FLOAT ) ) + if( IsXMLToken( aIter, XML_FLOAT ) ) eValueType = SCH_CELL_TYPE_FLOAT; - else if( IsXMLToken( aValue, XML_STRING ) ) + else if( IsXMLToken( aIter, XML_STRING ) ) eValueType = SCH_CELL_TYPE_STRING; break; diff --git a/xmloff/source/core/xmluconv.cxx b/xmloff/source/core/xmluconv.cxx index 98aa54df7b51..6b5a6b65634e 100644 --- a/xmloff/source/core/xmluconv.cxx +++ b/xmloff/source/core/xmluconv.cxx @@ -177,6 +177,16 @@ bool SvXMLUnitConverter::convertMeasureToCore( sal_Int32& nValue, nMin, nMax ); } +/** convert string to measure using optional min and max values*/ +bool SvXMLUnitConverter::convertMeasureToCore( sal_Int32& nValue, + std::string_view rString, + sal_Int32 nMin, sal_Int32 nMax ) const +{ + return ::sax::Converter::convertMeasure( nValue, rString, + m_pImpl->m_eCoreMeasureUnit, + nMin, nMax ); +} + /** convert measure to string */ void SvXMLUnitConverter::convertMeasureToXML( OUStringBuffer& rString, sal_Int32 nMeasure ) const @@ -501,8 +511,40 @@ static bool lcl_getPositions(const OUString& _sValue,OUString& _rContentX,OUStri _rContentZ = _sValue.copy(nPos, nFound - nPos); return true; +} + +static bool lcl_getPositions(std::string_view _sValue,OUString& _rContentX,OUString& _rContentY,OUString& _rContentZ) +{ + if(_sValue.empty() || _sValue[0] != '(') + return false; + + size_t nPos(1); + size_t nFound = _sValue.find(' ', nPos); + + if(nFound == std::string_view::npos || nFound <= nPos) + return false; + + _rContentX = OUString::fromUtf8(_sValue.substr(nPos, nFound - nPos)); + + nPos = nFound + 1; + nFound = _sValue.find(' ', nPos); + + if(nFound == std::string_view::npos || nFound <= nPos) + return false; + + _rContentY = OUString::fromUtf8(_sValue.substr(nPos, nFound - nPos)); + + nPos = nFound + 1; + nFound = _sValue.find(')', nPos); + + if(nFound == std::string_view::npos || nFound <= nPos) + return false; + + _rContentZ = OUString::fromUtf8(_sValue.substr(nPos, nFound - nPos)); + return true; } + /** convert string to ::basegfx::B3DVector */ bool SvXMLUnitConverter::convertB3DVector( ::basegfx::B3DVector& rVector, const OUString& rValue ) { @@ -531,6 +573,34 @@ bool SvXMLUnitConverter::convertB3DVector( ::basegfx::B3DVector& rVector, const return ( eStatus == rtl_math_ConversionStatus_Ok ); } +/** convert string to ::basegfx::B3DVector */ +bool SvXMLUnitConverter::convertB3DVector( ::basegfx::B3DVector& rVector, std::string_view rValue ) +{ + OUString aContentX,aContentY,aContentZ; + if ( !lcl_getPositions(rValue,aContentX,aContentY,aContentZ) ) + return false; + + rtl_math_ConversionStatus eStatus; + + rVector.setX(::rtl::math::stringToDouble(aContentX, '.', + ',', &eStatus)); + + if( eStatus != rtl_math_ConversionStatus_Ok ) + return false; + + rVector.setY(::rtl::math::stringToDouble(aContentY, '.', + ',', &eStatus)); + + if( eStatus != rtl_math_ConversionStatus_Ok ) + return false; + + rVector.setZ(::rtl::math::stringToDouble(aContentZ, '.', + ',', &eStatus)); + + + return ( eStatus == rtl_math_ConversionStatus_Ok ); +} + /** convert ::basegfx::B3DVector to string */ void SvXMLUnitConverter::convertB3DVector( OUStringBuffer &rBuffer, const ::basegfx::B3DVector& rVector ) { @@ -545,7 +615,7 @@ void SvXMLUnitConverter::convertB3DVector( OUStringBuffer &rBuffer, const ::base /** convert string to Position3D */ bool SvXMLUnitConverter::convertPosition3D( drawing::Position3D& rPosition, - const OUString& rValue ) + std::string_view rValue ) { OUString aContentX,aContentY,aContentZ; if ( !lcl_getPositions(rValue,aContentX,aContentY,aContentZ) ) diff --git a/xmloff/source/draw/QRCodeContext.cxx b/xmloff/source/draw/QRCodeContext.cxx index 978737b34131..f217fcf17ffa 100644 --- a/xmloff/source/draw/QRCodeContext.cxx +++ b/xmloff/source/draw/QRCodeContext.cxx @@ -65,7 +65,7 @@ QRCodeContext::QRCodeContext(SvXMLImport& rImport, sal_Int32 /*nElement*/, case XML_ELEMENT(LO_EXT, XML_QRCODE_BORDER): { sal_Int32 nAttrVal; - if (sax::Converter::convertNumber(nAttrVal, aIter.toString(), 0)) + if (sax::Converter::convertNumber(nAttrVal, aIter.toView(), 0)) aQRCode.Border = nAttrVal; break; } diff --git a/xmloff/source/draw/XMLNumberStyles.cxx b/xmloff/source/draw/XMLNumberStyles.cxx index db2f93e8b607..3d4407d8a5df 100644 --- a/xmloff/source/draw/XMLNumberStyles.cxx +++ b/xmloff/source/draw/XMLNumberStyles.cxx @@ -531,18 +531,16 @@ SdXMLNumberFormatMemberImportContext::SdXMLNumberFormatMemberImportContext( for (auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList )) { - OUString sValue = aIter.toString(); - switch (aIter.getToken()) { case XML_ELEMENT(NUMBER, XML_DECIMAL_PLACES): - mbDecimal02 = IsXMLToken( sValue, XML_2 ); + mbDecimal02 = IsXMLToken( aIter, XML_2 ); break; case XML_ELEMENT(NUMBER, XML_STYLE): - mbLong = IsXMLToken( sValue, XML_LONG ); + mbLong = IsXMLToken( aIter, XML_LONG ); break; case XML_ELEMENT(NUMBER, XML_TEXTUAL): - mbTextual = IsXMLToken( sValue, XML_TRUE ); + mbTextual = IsXMLToken( aIter, XML_TRUE ); break; default: XMLOFF_WARN_UNKNOWN("xmloff", aIter); @@ -591,9 +589,8 @@ SdXMLNumberFormatImportContext::SdXMLNumberFormatImportContext( SdXMLImport& rIm for (auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList )) { - OUString sValue = aIter.toString(); if( aIter.getToken() == XML_ELEMENT(NUMBER, XML_AUTOMATIC_ORDER) ) - mbAutomatic = IsXMLToken( sValue, XML_TRUE ); + mbAutomatic = IsXMLToken( aIter, XML_TRUE ); else XMLOFF_WARN_UNKNOWN("xmloff", aIter); } diff --git a/xmloff/source/draw/animationimport.cxx b/xmloff/source/draw/animationimport.cxx index 6c8672fa38b4..2813160d7691 100644 --- a/xmloff/source/draw/animationimport.cxx +++ b/xmloff/source/draw/animationimport.cxx @@ -122,10 +122,10 @@ AnimationsImportHelperImpl::AnimationsImportHelperImpl( SvXMLImport& rImport ) { } -static bool isDouble( const OUString& rValue ) +static bool isDouble( std::string_view rValue ) { - sal_Int32 nLength = rValue.getLength(); - const sal_Unicode * pStr = rValue.getStr(); + sal_Int32 nLength = rValue.size(); + const char * pStr = rValue.data(); while( nLength ) { if( (*pStr >= '0' && *pStr <= '9') || *pStr == '-' || *pStr == '.' || *pStr == '+' || *pStr == 'e' || *pStr == 'E' ) @@ -557,7 +557,6 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: sal_Int16 nEnum; for (auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList )) { - OUString rValue = aIter.toString(); auto nToken = aIter.getToken(); switch( nToken ) { @@ -565,28 +564,28 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(SMIL_COMPAT, XML_BEGIN): case XML_ELEMENT(SMIL_SO52, XML_BEGIN): { - mxNode->setBegin( mpHelper->convertTiming( rValue ) ); + mxNode->setBegin( mpHelper->convertTiming( aIter.toString() ) ); } break; case XML_ELEMENT(SMIL, XML_DUR): case XML_ELEMENT(SMIL_COMPAT, XML_DUR): case XML_ELEMENT(SMIL_SO52, XML_DUR): { - mxNode->setDuration( mpHelper->convertTiming( rValue ) ); + mxNode->setDuration( mpHelper->convertTiming( aIter.toString() ) ); } break; case XML_ELEMENT(SMIL, XML_END): case XML_ELEMENT(SMIL_COMPAT, XML_END): case XML_ELEMENT(SMIL_SO52, XML_END): { - mxNode->setEnd( mpHelper->convertTiming( rValue ) ); + mxNode->setEnd( mpHelper->convertTiming( aIter.toString() ) ); } break; case XML_ELEMENT(SMIL, XML_FILL): case XML_ELEMENT(SMIL_COMPAT, XML_FILL): case XML_ELEMENT(SMIL_SO52, XML_FILL): { - if( SvXMLUnitConverter::convertEnum( nEnum, rValue, aAnimations_EnumMap_Fill ) ) + if( SvXMLUnitConverter::convertEnum( nEnum, aIter.toString(), aAnimations_EnumMap_Fill ) ) mxNode->setFill( nEnum ); } break; @@ -594,7 +593,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(SMIL_COMPAT, XML_FILLDEFAULT): case XML_ELEMENT(SMIL_SO52, XML_FILLDEFAULT): { - if( SvXMLUnitConverter::convertEnum( nEnum, rValue, aAnimations_EnumMap_FillDefault ) ) + if( SvXMLUnitConverter::convertEnum( nEnum, aIter.toString(), aAnimations_EnumMap_FillDefault ) ) mxNode->setFillDefault( nEnum ); } break; @@ -602,7 +601,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(SMIL_COMPAT, XML_RESTART): case XML_ELEMENT(SMIL_SO52, XML_RESTART): { - if( SvXMLUnitConverter::convertEnum( nEnum, rValue, aAnimations_EnumMap_Restart ) ) + if( SvXMLUnitConverter::convertEnum( nEnum, aIter.toString(), aAnimations_EnumMap_Restart ) ) mxNode->setRestart( nEnum ); } break; @@ -610,7 +609,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(SMIL_COMPAT, XML_RESTARTDEFAULT): case XML_ELEMENT(SMIL_SO52, XML_RESTARTDEFAULT): { - if( SvXMLUnitConverter::convertEnum( nEnum, rValue, aAnimations_EnumMap_RestartDefault ) ) + if( SvXMLUnitConverter::convertEnum( nEnum, aIter.toString(), aAnimations_EnumMap_RestartDefault ) ) mxNode->setRestartDefault( nEnum ); } break; @@ -618,16 +617,16 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(SMIL_COMPAT, XML_ACCELERATE): case XML_ELEMENT(SMIL_SO52, XML_ACCELERATE): { - if( isDouble( rValue ) ) - mxNode->setAcceleration( rValue.toDouble() ); + if( isDouble( aIter.toView() ) ) + mxNode->setAcceleration( aIter.toDouble() ); } break; case XML_ELEMENT(SMIL, XML_DECELERATE): case XML_ELEMENT(SMIL_COMPAT, XML_DECELERATE): case XML_ELEMENT(SMIL_SO52, XML_DECELERATE): { - if( isDouble( rValue ) ) - mxNode->setDecelerate( rValue.toDouble() ); + if( isDouble( aIter.toView() ) ) + mxNode->setDecelerate( aIter.toDouble() ); } break; case XML_ELEMENT(SMIL, XML_AUTOREVERSE): @@ -635,7 +634,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(SMIL_SO52, XML_AUTOREVERSE): { bool bTemp; - if (::sax::Converter::convertBool( bTemp, rValue )) + if (::sax::Converter::convertBool( bTemp, aIter.toView() )) mxNode->setAutoReverse( bTemp ); } break; @@ -643,21 +642,21 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(SMIL_COMPAT, XML_REPEATCOUNT): case XML_ELEMENT(SMIL_SO52, XML_REPEATCOUNT): { - mxNode->setRepeatCount( mpHelper->convertTiming( rValue ) ); + mxNode->setRepeatCount( mpHelper->convertTiming( aIter.toString() ) ); } break; case XML_ELEMENT(SMIL, XML_REPEATDUR): case XML_ELEMENT(SMIL_COMPAT, XML_REPEATDUR): case XML_ELEMENT(SMIL_SO52, XML_REPEATDUR): { - mxNode->setRepeatDuration( mpHelper->convertTiming( rValue ) ); + mxNode->setRepeatDuration( mpHelper->convertTiming( aIter.toString() ) ); } break; case XML_ELEMENT(SMIL, XML_ENDSYNC): case XML_ELEMENT(SMIL_COMPAT, XML_ENDSYNC): case XML_ELEMENT(SMIL_SO52, XML_ENDSYNC): { - if( SvXMLUnitConverter::convertEnum( nEnum, rValue, aAnimations_EnumMap_Endsync ) ) + if( SvXMLUnitConverter::convertEnum( nEnum, aIter.toString(), aAnimations_EnumMap_Endsync ) ) mxNode->setEndSync( makeAny( nEnum ) ); } break; @@ -666,7 +665,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(PRESENTATION_OOO, XML_NODE_TYPE): case XML_ELEMENT(PRESENTATION_OASIS, XML_NODE_TYPE): { - if( SvXMLUnitConverter::convertEnum( nEnum, rValue, aAnimations_EnumMap_EffectNodeType ) ) + if( SvXMLUnitConverter::convertEnum( nEnum, aIter.toString(), aAnimations_EnumMap_EffectNodeType ) ) aUserData.emplace_back( GetXMLToken( XML_NODE_TYPE ), makeAny( nEnum ) ); } break; @@ -675,7 +674,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(PRESENTATION_OOO, XML_PRESET_ID): case XML_ELEMENT(PRESENTATION_OASIS, XML_PRESET_ID): { - aUserData.emplace_back( GetXMLToken( XML_PRESET_ID ), makeAny( rValue ) ); + aUserData.emplace_back( GetXMLToken( XML_PRESET_ID ), makeAny( aIter.toString() ) ); } break; case XML_ELEMENT(PRESENTATION, XML_PRESET_SUB_TYPE): @@ -683,7 +682,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(PRESENTATION_OOO, XML_PRESET_SUB_TYPE): case XML_ELEMENT(PRESENTATION_OASIS, XML_PRESET_SUB_TYPE): { - aUserData.emplace_back( GetXMLToken( XML_PRESET_SUB_TYPE ), makeAny( rValue ) ); + aUserData.emplace_back( GetXMLToken( XML_PRESET_SUB_TYPE ), makeAny( aIter.toString() ) ); } break; case XML_ELEMENT(PRESENTATION, XML_PRESET_CLASS): @@ -691,7 +690,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(PRESENTATION_OOO, XML_PRESET_CLASS): case XML_ELEMENT(PRESENTATION_OASIS, XML_PRESET_CLASS): { - if( SvXMLUnitConverter::convertEnum( nEnum, rValue, aAnimations_EnumMap_EffectPresetClass ) ) + if( SvXMLUnitConverter::convertEnum( nEnum, aIter.toString(), aAnimations_EnumMap_EffectPresetClass ) ) aUserData.emplace_back( GetXMLToken( XML_PRESET_CLASS ), makeAny( nEnum ) ); } break; @@ -700,7 +699,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(PRESENTATION_OOO, XML_AFTER_EFFECT): { bool bTemp; - if (::sax::Converter::convertBool( bTemp, rValue )) + if (::sax::Converter::convertBool( bTemp, aIter.toView() )) aUserData.emplace_back( GetXMLToken( XML_AFTER_EFFECT ), makeAny( bTemp ) ); } break; @@ -709,7 +708,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: if( nNodeType == AnimationNodeType::AUDIO ) { Reference< XAudio > xAudio( mxNode, UNO_QUERY_THROW ); - xAudio->setSource( makeAny(lcl_GetMediaReference(GetImport(), rValue)) ); + xAudio->setSource( makeAny(lcl_GetMediaReference(GetImport(), aIter.toString())) ); break; } [[fallthrough]]; @@ -718,7 +717,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(SMIL_COMPAT, XML_TARGETELEMENT): case XML_ELEMENT(SMIL_SO52, XML_TARGETELEMENT): { - Any aTarget( mpHelper->convertTarget( rValue ) ); + Any aTarget( mpHelper->convertTarget( aIter.toString() ) ); if( xAnimate.is() ) { @@ -740,10 +739,10 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: { if( nNodeType == AnimationNodeType::AUDIO ) { - if( isDouble( rValue ) ) + if( isDouble( aIter.toView() ) ) { Reference< XAudio > xAudio( mxNode, UNO_QUERY_THROW ); - xAudio->setVolume( rValue.toDouble() ); + xAudio->setVolume( aIter.toDouble() ); } } } @@ -753,7 +752,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(PRESENTATION_SO52, XML_MASTER_ELEMENT): case XML_ELEMENT(PRESENTATION_OOO, XML_MASTER_ELEMENT): { - Reference< XAnimationNode > xMaster( GetImport().getInterfaceToIdentifierMapper().getReference( rValue ), UNO_QUERY ); + Reference< XAnimationNode > xMaster( GetImport().getInterfaceToIdentifierMapper().getReference( aIter.toString() ), UNO_QUERY ); aUserData.emplace_back( GetXMLToken( XML_MASTER_ELEMENT ), makeAny( xMaster ) ); } break; @@ -761,7 +760,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(ANIMATION, XML_SUB_ITEM): case XML_ELEMENT(ANIMATION_OOO, XML_SUB_ITEM): { - if( SvXMLUnitConverter::convertEnum( nEnum, rValue, aAnimations_EnumMap_SubItem ) ) + if( SvXMLUnitConverter::convertEnum( nEnum, aIter.toString(), aAnimations_EnumMap_SubItem ) ) { if( xAnimate.is() ) { @@ -781,12 +780,12 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: { if( xAnimate.is() ) { - OUString aName( rValue ); + OUString aName( aIter.toString() ); const struct ImplAttributeNameConversion* p = getAnimationAttributeNamesConversionList(); while( p->mpAPIName ) { - if( IsXMLToken( aName, p->meXMLToken ) ) + if( IsXMLToken( aIter, p->meXMLToken ) ) { aName = OUString::createFromAscii( p->mpAPIName ); meAttributeName = p->meXMLToken; @@ -805,7 +804,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(SMIL_COMPAT, XML_VALUES): case XML_ELEMENT(SMIL_SO52, XML_VALUES): { - aValues = rValue; + aValues = aIter.toString(); } break; @@ -813,7 +812,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(SMIL_COMPAT, XML_FROM): case XML_ELEMENT(SMIL_SO52, XML_FROM): { - aFrom = rValue; + aFrom = aIter.toString(); } break; @@ -821,7 +820,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(SMIL_COMPAT, XML_BY): case XML_ELEMENT(SMIL_SO52, XML_BY): { - aBy = rValue; + aBy = aIter.toString(); } break; @@ -829,7 +828,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(SMIL_COMPAT, XML_TO): case XML_ELEMENT(SMIL_SO52, XML_TO): { - aTo = rValue; + aTo = aIter.toString(); } break; @@ -838,7 +837,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(SMIL_SO52, XML_KEYTIMES): { if( xAnimate.is() ) - xAnimate->setKeyTimes( AnimationsImportHelperImpl::convertKeyTimes( rValue ) ); + xAnimate->setKeyTimes( AnimationsImportHelperImpl::convertKeyTimes( aIter.toString() ) ); } break; @@ -846,19 +845,19 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(ANIMATION_OOO, XML_FORMULA): { if( xAnimate.is() ) - xAnimate->setFormula( rValue ); + xAnimate->setFormula( aIter.toString() ); } break; case XML_ELEMENT(ANIMATION, XML_ID): case XML_ELEMENT(ANIMATION_OOO, XML_ID): { - if (!bHaveXmlId) { sXmlId = rValue; } + if (!bHaveXmlId) { sXmlId = aIter.toString(); } } break; case XML_ELEMENT(XML, XML_ID): { - sXmlId = rValue; + sXmlId = aIter.toString(); bHaveXmlId = true; } break; @@ -869,7 +868,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: { if( xAnimate.is() ) { - if( SvXMLUnitConverter::convertEnum( nEnum, rValue, aAnimations_EnumMap_CalcMode ) ) + if( SvXMLUnitConverter::convertEnum( nEnum, aIter.toString(), aAnimations_EnumMap_CalcMode ) ) xAnimate->setCalcMode( nEnum ); } } @@ -880,7 +879,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(SMIL_SO52, XML_ACCUMULATE): { if( xAnimate.is() ) - xAnimate->setAccumulate( IsXMLToken( rValue, XML_SUM ) ); + xAnimate->setAccumulate( IsXMLToken( aIter, XML_SUM ) ); } break; @@ -893,7 +892,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: { if( xAnimate.is() ) { - if( SvXMLUnitConverter::convertEnum( nEnum, rValue, aAnimations_EnumMap_AdditiveMode ) ) + if( SvXMLUnitConverter::convertEnum( nEnum, aIter.toString(), aAnimations_EnumMap_AdditiveMode ) ) xAnimate->setAdditive( nEnum ); } } @@ -904,7 +903,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(SMIL_SO52, XML_KEYSPLINES): { if( xAnimate.is() ) - xAnimate->setTimeFilter( AnimationsImportHelperImpl::convertTimeFilter( rValue ) ); + xAnimate->setTimeFilter( AnimationsImportHelperImpl::convertTimeFilter( aIter.toString() ) ); } break; @@ -913,7 +912,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: { Reference< XAnimateMotion > xAnimateMotion( mxNode, UNO_QUERY ); if( xAnimateMotion.is() ) - xAnimateMotion->setPath( AnimationsImportHelperImpl::convertPath( rValue ) ); + xAnimateMotion->setPath( AnimationsImportHelperImpl::convertPath( aIter.toString() ) ); } break; @@ -923,7 +922,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: { Reference< XAnimatePhysics > xAnimatePhysics( mxNode, UNO_QUERY ); if( xAnimatePhysics.is() ) - xAnimatePhysics->setStartVelocityX( makeAny(rValue.toDouble()) ); + xAnimatePhysics->setStartVelocityX( makeAny(aIter.toDouble()) ); } break; @@ -933,7 +932,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: { Reference< XAnimatePhysics > xAnimatePhysics( mxNode, UNO_QUERY ); if( xAnimatePhysics.is() ) - xAnimatePhysics->setStartVelocityY( makeAny(rValue.toDouble()) ); + xAnimatePhysics->setStartVelocityY( makeAny(aIter.toDouble()) ); } break; @@ -943,7 +942,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: { Reference< XAnimatePhysics > xAnimatePhysics( mxNode, UNO_QUERY ); if( xAnimatePhysics.is() ) - xAnimatePhysics->setDensity( makeAny(rValue.toDouble()) ); + xAnimatePhysics->setDensity( makeAny(aIter.toDouble()) ); } break; @@ -953,7 +952,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: { Reference< XAnimatePhysics > xAnimatePhysics( mxNode, UNO_QUERY ); if( xAnimatePhysics.is() ) - xAnimatePhysics->setBounciness( makeAny(rValue.toDouble()) ); + xAnimatePhysics->setBounciness( makeAny(aIter.toDouble()) ); } break; @@ -962,7 +961,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: { Reference< XAnimateColor > xAnimateColor( mxNode, UNO_QUERY ); if( xAnimateColor.is() ) - xAnimateColor->setColorInterpolation( IsXMLToken( rValue, XML_HSL ) ? AnimationColorSpace::HSL : AnimationColorSpace::RGB ); + xAnimateColor->setColorInterpolation( IsXMLToken( aIter, XML_HSL ) ? AnimationColorSpace::HSL : AnimationColorSpace::RGB ); } break; @@ -971,7 +970,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: { Reference< XAnimateColor > xAnimateColor( mxNode, UNO_QUERY ); if( xAnimateColor.is() ) - xAnimateColor->setDirection( IsXMLToken( rValue, XML_CLOCKWISE ) ); + xAnimateColor->setDirection( IsXMLToken( aIter, XML_CLOCKWISE ) ); } break; @@ -981,7 +980,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: Reference< XAnimateTransform > xTransform( mxNode, UNO_QUERY ); if( xTransform.is() ) { - if( SvXMLUnitConverter::convertEnum( nEnum, rValue, aAnimations_EnumMap_TransformType ) ) + if( SvXMLUnitConverter::convertEnum( nEnum, aIter.toString(), aAnimations_EnumMap_TransformType ) ) { xTransform->setTransformType( nEnum ); switch( nEnum ) @@ -1005,7 +1004,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: { if( xTransitionFilter.is() ) { - if( SvXMLUnitConverter::convertEnum( nEnum, rValue, aAnimations_EnumMap_TransitionType ) ) + if( SvXMLUnitConverter::convertEnum( nEnum, aIter.toString(), aAnimations_EnumMap_TransitionType ) ) xTransitionFilter->setTransition( nEnum ); } } @@ -1017,7 +1016,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: { if( xTransitionFilter.is() ) { - if( SvXMLUnitConverter::convertEnum( nEnum, rValue, aAnimations_EnumMap_TransitionSubType ) ) + if( SvXMLUnitConverter::convertEnum( nEnum, aIter.toString(), aAnimations_EnumMap_TransitionSubType ) ) xTransitionFilter->setSubtype( nEnum ); } } @@ -1028,7 +1027,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(SMIL_SO52, XML_MODE): { if( xTransitionFilter.is() ) - xTransitionFilter->setMode( IsXMLToken( rValue, XML_IN ) ); + xTransitionFilter->setMode( IsXMLToken( aIter, XML_IN ) ); } break; @@ -1037,7 +1036,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(SMIL_SO52, XML_DIRECTION): { if( xTransitionFilter.is() ) - xTransitionFilter->setDirection( IsXMLToken( rValue, XML_FORWARD ) ); + xTransitionFilter->setDirection( IsXMLToken( aIter, XML_FORWARD ) ); } break; @@ -1048,7 +1047,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: if( xTransitionFilter.is() ) { sal_Int32 nColor(0); - ::sax::Converter::convertColor(nColor, rValue); + ::sax::Converter::convertColor(nColor, aIter.toView()); xTransitionFilter->setFadeColor(nColor); } } @@ -1057,7 +1056,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(ANIMATION, XML_ITERATE_TYPE): case XML_ELEMENT(ANIMATION_OOO, XML_ITERATE_TYPE): { - if( SvXMLUnitConverter::convertEnum( nEnum, rValue, aAnimations_EnumMap_IterateType ) ) + if( SvXMLUnitConverter::convertEnum( nEnum, aIter.toString(), aAnimations_EnumMap_IterateType ) ) { if( xIter.is() ) xIter->setIterateType( nEnum ); @@ -1070,6 +1069,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: { if( xIter.is() ) { + OUString rValue = aIter.toString(); double fInterval = 0.0; if( rValue.match("P") ) { @@ -1083,7 +1083,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: } else { - fInterval = rValue.toDouble(); + fInterval = aIter.toDouble(); } xIter->setIterateInterval( fInterval ); @@ -1095,7 +1095,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: case XML_ELEMENT(PRESENTATION_SO52, XML_GROUP_ID): case XML_ELEMENT(PRESENTATION_OOO, XML_GROUP_ID): { - aUserData.emplace_back( "group-id", makeAny( rValue.toInt32() ) ); + aUserData.emplace_back( "group-id", makeAny( aIter.toInt32() ) ); } break; @@ -1104,7 +1104,7 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: { if( xCommand.is() && nNodeType == AnimationNodeType::COMMAND ) { - if( SvXMLUnitConverter::convertEnum( nEnum, rValue, aAnimations_EnumMap_Command ) ) + if( SvXMLUnitConverter::convertEnum( nEnum, aIter.toString(), aAnimations_EnumMap_Command ) ) { xCommand->setCommand( nEnum ); } @@ -1120,11 +1120,10 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: || IsTokenInNamespace(nToken, XML_NAMESPACE_PRESENTATION_OASIS) || IsTokenInNamespace(nToken, XML_NAMESPACE_PRESENTATION_OOO)) { - aUserData.emplace_back( SvXMLImport::getNameFromToken(aIter.getToken()), makeAny( rValue ) ); + aUserData.emplace_back( SvXMLImport::getNameFromToken(aIter.getToken()), makeAny( aIter.toString() ) ); } else - SAL_WARN("xmloff", "unknown token '" + SvXMLImport::getNameFromToken(aIter.getToken()) - << "' 0x" << std::hex << aIter.getToken()); + XMLOFF_WARN_UNKNOWN("xmloff", aIter); } } } diff --git a/xmloff/source/draw/animimp.cxx b/xmloff/source/draw/animimp.cxx index 89cf45a37540..ca6d6cb28450 100644 --- a/xmloff/source/draw/animimp.cxx +++ b/xmloff/source/draw/animimp.cxx @@ -395,14 +395,13 @@ XMLAnimationsSoundContext::XMLAnimationsSoundContext( SvXMLImport& rImport, sal_ for (auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList )) { - OUString sValue = aIter.toString(); switch( aIter.getToken() ) { case XML_ELEMENT(XLINK, XML_HREF): - pParent->maSoundURL = rImport.GetAbsoluteReference(sValue); + pParent->maSoundURL = rImport.GetAbsoluteReference(aIter.toString()); break; case XML_ELEMENT(PRESENTATION, XML_PLAY_FULL): - pParent->mbPlayFull = IsXMLToken( sValue, XML_TRUE ); + pParent->mbPlayFull = IsXMLToken( aIter, XML_TRUE ); break; default: XMLOFF_WARN_UNKNOWN("xmloff", aIter); @@ -450,34 +449,33 @@ XMLAnimationsEffectContext::XMLAnimationsEffectContext( SvXMLImport& rImport, for (auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList )) { - OUString sValue = aIter.toString(); switch( aIter.getToken() ) { case XML_ELEMENT(DRAW, XML_SHAPE_ID): - maShapeId = sValue; + maShapeId = aIter.toString(); break; case XML_ELEMENT(DRAW, XML_COLOR): - ::sax::Converter::convertColor(maDimColor, sValue); + ::sax::Converter::convertColor(maDimColor, aIter.toString()); break; case XML_ELEMENT(PRESENTATION, XML_EFFECT): - SvXMLUnitConverter::convertEnum( meEffect, sValue, aXML_AnimationEffect_EnumMap ); + SvXMLUnitConverter::convertEnum( meEffect, aIter.toString(), aXML_AnimationEffect_EnumMap ); break; case XML_ELEMENT(PRESENTATION, XML_DIRECTION): - SvXMLUnitConverter::convertEnum( meDirection, sValue, aXML_AnimationDirection_EnumMap ); + SvXMLUnitConverter::convertEnum( meDirection, aIter.toString(), aXML_AnimationDirection_EnumMap ); break; case XML_ELEMENT(PRESENTATION, XML_START_SCALE): { sal_Int32 nScale; - if (::sax::Converter::convertPercent( nScale, sValue )) + if (::sax::Converter::convertPercent( nScale, aIter.toView() )) mnStartScale = static_cast<sal_Int16>(nScale); break; } case XML_ELEMENT(PRESENTATION, XML_SPEED): - SvXMLUnitConverter::convertEnum( meSpeed, sValue, aXML_AnimationSpeed_EnumMap ); + SvXMLUnitConverter::convertEnum( meSpeed, aIter.toString(), aXML_AnimationSpeed_EnumMap ); break; case XML_ELEMENT(PRESENTATION, XML_PATH_ID): - maPathShapeId = sValue; + maPathShapeId = aIter.toString(); break; default: XMLOFF_WARN_UNKNOWN("xmloff", aIter); diff --git a/xmloff/source/draw/eventimp.cxx b/xmloff/source/draw/eventimp.cxx index c71c71043cc2..2f90ed9e5e6c 100644 --- a/xmloff/source/draw/eventimp.cxx +++ b/xmloff/source/draw/eventimp.cxx @@ -106,14 +106,13 @@ XMLEventSoundContext::XMLEventSoundContext( SvXMLImport& rImp, const Reference< { for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sValue = aIter.toString(); switch( aIter.getToken() ) { case XML_ELEMENT(XLINK, XML_HREF): - pParent->maData.msSoundURL = rImp.GetAbsoluteReference(sValue); + pParent->maData.msSoundURL = rImp.GetAbsoluteReference(aIter.toString()); break; case XML_ELEMENT(PRESENTATION, XML_PLAY_FULL): - pParent->maData.mbPlayFull = IsXMLToken( sValue, XML_TRUE ); + pParent->maData.mbPlayFull = IsXMLToken( aIter, XML_TRUE ); break; default: XMLOFF_WARN_UNKNOWN("xmloff", aIter); @@ -145,36 +144,35 @@ SdXMLEventContext::SdXMLEventContext( SvXMLImport& rImp, OUString sEventName; for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sValue = aIter.toString(); switch( aIter.getToken() ) { case XML_ELEMENT(PRESENTATION, XML_ACTION): - SvXMLUnitConverter::convertEnum( maData.meClickAction, sValue, aXML_EventActions_EnumMap ); + SvXMLUnitConverter::convertEnum( maData.meClickAction, aIter.toString(), aXML_EventActions_EnumMap ); break; case XML_ELEMENT(PRESENTATION, XML_EFFECT): - SvXMLUnitConverter::convertEnum( maData.meEffect, sValue, aXML_AnimationEffect_EnumMap ); + SvXMLUnitConverter::convertEnum( maData.meEffect, aIter.toString(), aXML_AnimationEffect_EnumMap ); break; case XML_ELEMENT(PRESENTATION, XML_DIRECTION): - SvXMLUnitConverter::convertEnum( maData.meDirection, sValue, aXML_AnimationDirection_EnumMap ); + SvXMLUnitConverter::convertEnum( maData.meDirection, aIter.toString(), aXML_AnimationDirection_EnumMap ); break; case XML_ELEMENT(PRESENTATION, XML_START_SCALE): { sal_Int32 nScale; - if (::sax::Converter::convertPercent( nScale, sValue )) + if (::sax::Converter::convertPercent( nScale, aIter.toView() )) maData.mnStartScale = static_cast<sal_Int16>(nScale); } break; case XML_ELEMENT(PRESENTATION, XML_SPEED): - SvXMLUnitConverter::convertEnum( maData.meSpeed, sValue, aXML_AnimationSpeed_EnumMap ); + SvXMLUnitConverter::convertEnum( maData.meSpeed, aIter.toString(), aXML_AnimationSpeed_EnumMap ); break; case XML_ELEMENT(PRESENTATION, XML_VERB): - ::sax::Converter::convertNumber( maData.mnVerb, sValue ); + ::sax::Converter::convertNumber( maData.mnVerb, aIter.toView() ); break; case XML_ELEMENT(SCRIPT, XML_EVENT_NAME): { - sEventName = sValue; + sEventName = aIter.toString(); sal_uInt16 nScriptPrefix = - GetImport().GetNamespaceMap().GetKeyByAttrValueQName(sValue, &sEventName); + GetImport().GetNamespaceMap().GetKeyByAttrValueQName(sEventName, &sEventName); maData.mbValid = XML_NAMESPACE_DOM == nScriptPrefix && sEventName == "click"; } break; @@ -182,7 +180,7 @@ SdXMLEventContext::SdXMLEventContext( SvXMLImport& rImp, { // language is not evaluated! OUString aScriptLanguage; - maData.msLanguage = sValue; + maData.msLanguage = aIter.toString(); sal_uInt16 nScriptPrefix = rImp.GetNamespaceMap(). GetKeyByAttrValueQName(maData.msLanguage, &aScriptLanguage); if( XML_NAMESPACE_OOO == nScriptPrefix ) @@ -190,18 +188,18 @@ SdXMLEventContext::SdXMLEventContext( SvXMLImport& rImp, } break; case XML_ELEMENT(SCRIPT, XML_MACRO_NAME): - maData.msMacroName = sValue; + maData.msMacroName = aIter.toString(); break; case XML_ELEMENT(XLINK, XML_HREF): { if ( maData.mbScript ) { - maData.msMacroName = sValue; + maData.msMacroName = aIter.toString(); } else { const OUString &rTmp = - rImp.GetAbsoluteReference(sValue); + rImp.GetAbsoluteReference(aIter.toString()); INetURLObject::translateToInternal( rTmp, maData.msBookmark, INetURLObject::DecodeMechanism::Unambiguous ); } diff --git a/xmloff/source/draw/ximp3dobject.cxx b/xmloff/source/draw/ximp3dobject.cxx index abe34189c90d..c17defc2426b 100644 --- a/xmloff/source/draw/ximp3dobject.cxx +++ b/xmloff/source/draw/ximp3dobject.cxx @@ -97,14 +97,12 @@ SdXML3DCubeObjectShapeContext::SdXML3DCubeObjectShapeContext( { for(auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList)) { - OUString sValue = aIter.toString(); - switch(aIter.getToken()) { case XML_ELEMENT(DR3D, XML_MIN_EDGE): { ::basegfx::B3DVector aNewVec; - SvXMLUnitConverter::convertB3DVector(aNewVec, sValue); + SvXMLUnitConverter::convertB3DVector(aNewVec, aIter.toView()); if(aNewVec != maMinEdge) maMinEdge = aNewVec; @@ -113,7 +111,7 @@ SdXML3DCubeObjectShapeContext::SdXML3DCubeObjectShapeContext( case XML_ELEMENT(DR3D, XML_MAX_EDGE): { ::basegfx::B3DVector aNewVec; - SvXMLUnitConverter::convertB3DVector(aNewVec, sValue); + SvXMLUnitConverter::convertB3DVector(aNewVec, aIter.toView()); if(aNewVec != maMaxEdge) maMaxEdge = aNewVec; @@ -176,14 +174,12 @@ SdXML3DSphereObjectShapeContext::SdXML3DSphereObjectShapeContext( { for(auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList)) { - OUString sValue = aIter.toString(); - switch(aIter.getToken()) { case XML_ELEMENT(DR3D, XML_CENTER): { ::basegfx::B3DVector aNewVec; - SvXMLUnitConverter::convertB3DVector(aNewVec, sValue); + SvXMLUnitConverter::convertB3DVector(aNewVec, aIter.toView()); if(aNewVec != maCenter) maCenter = aNewVec; @@ -192,7 +188,7 @@ SdXML3DSphereObjectShapeContext::SdXML3DSphereObjectShapeContext( case XML_ELEMENT(DR3D, XML_SIZE): { ::basegfx::B3DVector aNewVec; - SvXMLUnitConverter::convertB3DVector(aNewVec, sValue); + SvXMLUnitConverter::convertB3DVector(aNewVec, aIter.toView()); if(aNewVec != maSphereSize) maSphereSize = aNewVec; diff --git a/xmloff/source/draw/ximp3dscene.cxx b/xmloff/source/draw/ximp3dscene.cxx index 9477481343e8..29a13ba961b3 100644 --- a/xmloff/source/draw/ximp3dscene.cxx +++ b/xmloff/source/draw/ximp3dscene.cxx @@ -49,36 +49,35 @@ SdXML3DLightContext::SdXML3DLightContext( // read attributes for the 3DScene for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sValue = aIter.toString(); switch(aIter.getToken()) { case XML_ELEMENT(DR3D, XML_DIFFUSE_COLOR): { - ::sax::Converter::convertColor(maDiffuseColor, sValue); + ::sax::Converter::convertColor(maDiffuseColor, aIter.toString()); break; } case XML_ELEMENT(DR3D, XML_DIRECTION): { ::basegfx::B3DVector aVal; - SvXMLUnitConverter::convertB3DVector(aVal, sValue); + SvXMLUnitConverter::convertB3DVector(aVal, aIter.toString()); if (!std::isnan(aVal.getX()) && !std::isnan(aVal.getY()) && !std::isnan(aVal.getZ())) { maDirection = aVal; } else { - SAL_WARN("xmloff", "NaNs found in light direction: " << sValue); + SAL_WARN("xmloff", "NaNs found in light direction: " << aIter.toString()); } break; } case XML_ELEMENT(DR3D, XML_ENABLED): { - (void)::sax::Converter::convertBool(mbEnabled, sValue); + (void)::sax::Converter::convertBool(mbEnabled, aIter.toView()); break; } case XML_ELEMENT(DR3D, XML_SPECULAR): { - (void)::sax::Converter::convertBool(mbSpecular, sValue); + (void)::sax::Converter::convertBool(mbSpecular, aIter.toView()); break; } default: diff --git a/xmloff/source/draw/ximpcustomshape.cxx b/xmloff/source/draw/ximpcustomshape.cxx index 8e23b0ee844f..f53c513d7e26 100644 --- a/xmloff/source/draw/ximpcustomshape.cxx +++ b/xmloff/source/draw/ximpcustomshape.cxx @@ -72,7 +72,7 @@ const SvXMLEnumMapEntry<sal_uInt16> aXML_GluePointEnumMap[] = { XML_TOKEN_INVALID, 0 } }; static void GetBool( std::vector< css::beans::PropertyValue >& rDest, - std::u16string_view rValue, const EnhancedCustomShapeTokenEnum eDestProp ) + std::string_view rValue, const EnhancedCustomShapeTokenEnum eDestProp ) { bool bAttrBool; if (::sax::Converter::convertBool( bAttrBool, rValue )) @@ -85,7 +85,7 @@ static void GetBool( std::vector< css::beans::PropertyValue >& rDest, } static void GetInt32( std::vector< css::beans::PropertyValue >& rDest, - std::u16string_view rValue, const EnhancedCustomShapeTokenEnum eDestProp ) + std::string_view rValue, const EnhancedCustomShapeTokenEnum eDestProp ) { sal_Int32 nAttrNumber; if (::sax::Converter::convertNumber( nAttrNumber, rValue )) @@ -98,7 +98,7 @@ static void GetInt32( std::vector< css::beans::PropertyValue >& rDest, } static void GetDouble( std::vector< css::beans::PropertyValue >& rDest, - std::u16string_view rValue, const EnhancedCustomShapeTokenEnum eDestProp ) + std::string_view rValue, const EnhancedCustomShapeTokenEnum eDestProp ) { double fAttrDouble; if (::sax::Converter::convertDouble( fAttrDouble, rValue )) @@ -135,7 +135,7 @@ static void GetEnum( std::vector< css::beans::PropertyValue >& rDest, } static void GetDoublePercentage( std::vector< css::beans::PropertyValue >& rDest, - const OUString& rValue, const EnhancedCustomShapeTokenEnum eDestProp ) + std::string_view rValue, const EnhancedCustomShapeTokenEnum eDestProp ) { sal_Int16 const eSrcUnit = ::sax::Converter::GetUnitFromString( rValue, util::MeasureUnit::MM_100TH); @@ -155,7 +155,7 @@ static void GetDoublePercentage( std::vector< css::beans::PropertyValue >& rDest } static void GetB3DVector( std::vector< css::beans::PropertyValue >& rDest, - const OUString& rValue, const EnhancedCustomShapeTokenEnum eDestProp ) + std::string_view rValue, const EnhancedCustomShapeTokenEnum eDestProp ) { ::basegfx::B3DVector aB3DVector; if ( SvXMLUnitConverter::convertB3DVector( aB3DVector, rValue ) ) @@ -424,7 +424,7 @@ static bool GetNextParameter( css::drawing::EnhancedCustomShapeParameter& rParam } static void GetPosition3D( std::vector< css::beans::PropertyValue >& rDest, // e.g. draw:extrusion-viewpoint - const OUString& rValue, const EnhancedCustomShapeTokenEnum eDestProp, + std::string_view rValue, const EnhancedCustomShapeTokenEnum eDestProp, SvXMLUnitConverter& rUnitConverter ) { drawing::Position3D aPosition3D; @@ -866,22 +866,20 @@ void XMLEnhancedCustomShapeContext::startFastElement( sal_Int32 nAttrNumber; for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString rValue = aIter.toString(); - switch( EASGet( aIter.getToken() ) ) { case EAS_type : - GetString( mrCustomShapeGeometry, rValue, EAS_Type ); + GetString( mrCustomShapeGeometry, aIter.toString(), EAS_Type ); break; case EAS_mirror_horizontal : - GetBool( mrCustomShapeGeometry, rValue, EAS_MirroredX ); + GetBool( mrCustomShapeGeometry, aIter.toView(), EAS_MirroredX ); break; case EAS_mirror_vertical : - GetBool( mrCustomShapeGeometry, rValue, EAS_MirroredY ); + GetBool( mrCustomShapeGeometry, aIter.toView(), EAS_MirroredY ); break; case EAS_viewBox : { - SdXMLImExViewBox aViewBox( rValue, GetImport().GetMM100UnitConverter() ); + SdXMLImExViewBox aViewBox( aIter.toString(), GetImport().GetMM100UnitConverter() ); awt::Rectangle aRect( aViewBox.GetX(), aViewBox.GetY(), aViewBox.GetWidth(), aViewBox.GetHeight() ); beans::PropertyValue aProp; aProp.Name = EASGet( EAS_ViewBox ); @@ -890,28 +888,29 @@ void XMLEnhancedCustomShapeContext::startFastElement( } break; case EAS_sub_view_size: - GetSizeSequence( maPath, rValue, EAS_SubViewSize ); + GetSizeSequence( maPath, aIter.toString(), EAS_SubViewSize ); break; case EAS_text_rotate_angle : - GetDouble( mrCustomShapeGeometry, rValue, EAS_TextRotateAngle ); + GetDouble( mrCustomShapeGeometry, aIter.toView(), EAS_TextRotateAngle ); break; case EAS_extrusion_allowed : - GetBool( maPath, rValue, EAS_ExtrusionAllowed ); + GetBool( maPath, aIter.toView(), EAS_ExtrusionAllowed ); break; case EAS_text_path_allowed : - GetBool( maPath, rValue, EAS_TextPathAllowed ); + GetBool( maPath, aIter.toView(), EAS_TextPathAllowed ); break; case EAS_concentric_gradient_fill_allowed : - GetBool( maPath, rValue, EAS_ConcentricGradientFillAllowed ); + GetBool( maPath, aIter.toView(), EAS_ConcentricGradientFillAllowed ); break; case EAS_extrusion : - GetBool( maExtrusion, rValue, EAS_Extrusion ); + GetBool( maExtrusion, aIter.toView(), EAS_Extrusion ); break; case EAS_extrusion_brightness : - GetDoublePercentage( maExtrusion, rValue, EAS_Brightness ); + GetDoublePercentage( maExtrusion, aIter.toView(), EAS_Brightness ); break; case EAS_extrusion_depth : { + OUString rValue = aIter.toString(); sal_Int32 nIndex = 0; css::drawing::EnhancedCustomShapeParameterPair aParameterPair; css::drawing::EnhancedCustomShapeParameter& rDepth = aParameterPair.First; @@ -953,43 +952,43 @@ void XMLEnhancedCustomShapeContext::startFastElement( } break; case EAS_extrusion_diffusion : - GetDoublePercentage( maExtrusion, rValue, EAS_Diffusion ); + GetDoublePercentage( maExtrusion, aIter.toView(), EAS_Diffusion ); break; case EAS_extrusion_number_of_line_segments : - GetInt32( maExtrusion, rValue, EAS_NumberOfLineSegments ); + GetInt32( maExtrusion, aIter.toView(), EAS_NumberOfLineSegments ); break; case EAS_extrusion_light_face : - GetBool( maExtrusion, rValue, EAS_LightFace ); + GetBool( maExtrusion, aIter.toView(), EAS_LightFace ); break; case EAS_extrusion_first_light_harsh : - GetBool( maExtrusion, rValue, EAS_FirstLightHarsh ); + GetBool( maExtrusion, aIter.toView(), EAS_FirstLightHarsh ); break; case EAS_extrusion_second_light_harsh : - GetBool( maExtrusion, rValue, EAS_SecondLightHarsh ); + GetBool( maExtrusion, aIter.toView(), EAS_SecondLightHarsh ); break; case EAS_extrusion_first_light_level : - GetDoublePercentage( maExtrusion, rValue, EAS_FirstLightLevel ); + GetDoublePercentage( maExtrusion, aIter.toView(), EAS_FirstLightLevel ); break; case EAS_extrusion_second_light_level : - GetDoublePercentage( maExtrusion, rValue, EAS_SecondLightLevel ); + GetDoublePercentage( maExtrusion, aIter.toView(), EAS_SecondLightLevel ); break; case EAS_extrusion_first_light_direction : - GetB3DVector( maExtrusion, rValue, EAS_FirstLightDirection ); + GetB3DVector( maExtrusion, aIter.toView(), EAS_FirstLightDirection ); break; case EAS_extrusion_second_light_direction : - GetB3DVector( maExtrusion, rValue, EAS_SecondLightDirection ); + GetB3DVector( maExtrusion, aIter.toView(), EAS_SecondLightDirection ); break; case EAS_extrusion_metal : - GetBool( maExtrusion, rValue, EAS_Metal ); + GetBool( maExtrusion, aIter.toView(), EAS_Metal ); break; case EAS_shade_mode : { drawing::ShadeMode eShadeMode( drawing::ShadeMode_FLAT ); - if( IsXMLToken( rValue, XML_PHONG ) ) + if( IsXMLToken( aIter, XML_PHONG ) ) eShadeMode = drawing::ShadeMode_PHONG; - else if ( IsXMLToken( rValue, XML_GOURAUD ) ) + else if ( IsXMLToken( aIter, XML_GOURAUD ) ) eShadeMode = drawing::ShadeMode_SMOOTH; - else if ( IsXMLToken( rValue, XML_DRAFT ) ) + else if ( IsXMLToken( aIter, XML_DRAFT ) ) eShadeMode = drawing::ShadeMode_DRAFT; beans::PropertyValue aProp; @@ -999,24 +998,24 @@ void XMLEnhancedCustomShapeContext::startFastElement( } break; case EAS_extrusion_rotation_angle : - GetEnhancedParameterPair( maExtrusion, rValue, EAS_RotateAngle ); + GetEnhancedParameterPair( maExtrusion, aIter.toString(), EAS_RotateAngle ); break; case EAS_extrusion_rotation_center : - GetB3DVector( maExtrusion, rValue, EAS_RotationCenter ); + GetB3DVector( maExtrusion, aIter.toView(), EAS_RotationCenter ); break; case EAS_extrusion_shininess : - GetDoublePercentage( maExtrusion, rValue, EAS_Shininess ); + GetDoublePercentage( maExtrusion, aIter.toView(), EAS_Shininess ); break; case EAS_extrusion_skew : - GetEnhancedParameterPair( maExtrusion, rValue, EAS_Skew ); + GetEnhancedParameterPair( maExtrusion, aIter.toString(), EAS_Skew ); break; case EAS_extrusion_specularity : - GetDoublePercentage( maExtrusion, rValue, EAS_Specularity ); + GetDoublePercentage( maExtrusion, aIter.toView(), EAS_Specularity ); break; case EAS_projection : { drawing::ProjectionMode eProjectionMode( drawing::ProjectionMode_PERSPECTIVE ); - if( IsXMLToken( rValue, XML_PARALLEL ) ) + if( IsXMLToken( aIter, XML_PARALLEL ) ) eProjectionMode = drawing::ProjectionMode_PARALLEL; beans::PropertyValue aProp; @@ -1026,20 +1025,20 @@ void XMLEnhancedCustomShapeContext::startFastElement( } break; case EAS_extrusion_viewpoint : - GetPosition3D( maExtrusion, rValue, EAS_ViewPoint, mrUnitConverter ); + GetPosition3D( maExtrusion, aIter.toView(), EAS_ViewPoint, mrUnitConverter ); break; case EAS_extrusion_origin : - GetEnhancedParameterPair( maExtrusion, rValue, EAS_Origin ); + GetEnhancedParameterPair( maExtrusion, aIter.toString(), EAS_Origin ); break; case EAS_extrusion_color : - GetBool( maExtrusion, rValue, EAS_Color ); + GetBool( maExtrusion, aIter.toView(), EAS_Color ); break; case EAS_enhanced_path : - GetEnhancedPath( maPath, rValue ); + GetEnhancedPath( maPath, aIter.toString() ); break; case EAS_path_stretchpoint_x : { - if (::sax::Converter::convertNumber(nAttrNumber, rValue)) + if (::sax::Converter::convertNumber(nAttrNumber, aIter.toView())) { beans::PropertyValue aProp; aProp.Name = EASGet( EAS_StretchX ); @@ -1050,7 +1049,7 @@ void XMLEnhancedCustomShapeContext::startFastElement( break; case EAS_path_stretchpoint_y : { - if (::sax::Converter::convertNumber(nAttrNumber, rValue)) + if (::sax::Converter::convertNumber(nAttrNumber, aIter.toView())) { beans::PropertyValue aProp; aProp.Name = EASGet( EAS_StretchY ); @@ -1060,31 +1059,31 @@ void XMLEnhancedCustomShapeContext::startFastElement( } break; case EAS_text_areas : - GetEnhancedRectangleSequence( maPath, rValue, EAS_TextFrames ); + GetEnhancedRectangleSequence( maPath, aIter.toString(), EAS_TextFrames ); break; case EAS_glue_points : { - sal_Int32 i, nPairs = GetEnhancedParameterPairSequence( maPath, rValue, EAS_GluePoints ); + sal_Int32 i, nPairs = GetEnhancedParameterPairSequence( maPath, aIter.toString(), EAS_GluePoints ); GetImport().GetShapeImport()->moveGluePointMapping( mrxShape, nPairs ); for ( i = 0; i < nPairs; i++ ) GetImport().GetShapeImport()->addGluePointMapping( mrxShape, i + 4, i + 4 ); } break; case EAS_glue_point_type : - GetEnum( maPath, rValue, EAS_GluePointType, *aXML_GluePointEnumMap ); + GetEnum( maPath, aIter.toString(), EAS_GluePointType, *aXML_GluePointEnumMap ); break; case EAS_glue_point_leaving_directions : - GetDoubleSequence( maPath, rValue, EAS_GluePointLeavingDirections ); + GetDoubleSequence( maPath, aIter.toString(), EAS_GluePointLeavingDirections ); break; case EAS_text_path : - GetBool( maTextPath, rValue, EAS_TextPath ); + GetBool( maTextPath, aIter.toView(), EAS_TextPath ); break; case EAS_text_path_mode : { css::drawing::EnhancedCustomShapeTextPathMode eTextPathMode( css::drawing::EnhancedCustomShapeTextPathMode_NORMAL ); - if( IsXMLToken( rValue, XML_PATH ) ) + if( IsXMLToken( aIter, XML_PATH ) ) eTextPathMode = css::drawing::EnhancedCustomShapeTextPathMode_PATH; - else if ( IsXMLToken( rValue, XML_SHAPE ) ) + else if ( IsXMLToken( aIter, XML_SHAPE ) ) eTextPathMode = css::drawing::EnhancedCustomShapeTextPathMode_SHAPE; beans::PropertyValue aProp; @@ -1095,7 +1094,7 @@ void XMLEnhancedCustomShapeContext::startFastElement( break; case EAS_text_path_scale : { - bool bScaleX = IsXMLToken( rValue, XML_SHAPE ); + bool bScaleX = IsXMLToken( aIter, XML_SHAPE ); beans::PropertyValue aProp; aProp.Name = EASGet( EAS_ScaleX ); aProp.Value <<= bScaleX; @@ -1103,10 +1102,10 @@ void XMLEnhancedCustomShapeContext::startFastElement( } break; case EAS_text_path_same_letter_heights : - GetBool( maTextPath, rValue, EAS_SameLetterHeights ); + GetBool( maTextPath, aIter.toView(), EAS_SameLetterHeights ); break; case EAS_modifiers : - GetAdjustmentValues( mrCustomShapeGeometry, rValue ); + GetAdjustmentValues( mrCustomShapeGeometry, aIter.toString() ); break; default: break; @@ -1329,41 +1328,40 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > XMLEnhancedCustomShape std::vector< css::beans::PropertyValue > aHandle; for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sValue = aIter.toString(); switch( EASGet( aIter.getToken() ) ) { case EAS_handle_mirror_vertical : - GetBool( aHandle, sValue, EAS_MirroredY ); + GetBool( aHandle, aIter.toView(), EAS_MirroredY ); break; case EAS_handle_mirror_horizontal : - GetBool( aHandle, sValue, EAS_MirroredX ); + GetBool( aHandle, aIter.toView(), EAS_MirroredX ); break; case EAS_handle_switched : - GetBool( aHandle, sValue, EAS_Switched ); + GetBool( aHandle, aIter.toView(), EAS_Switched ); break; case EAS_handle_position : - GetEnhancedParameterPair( aHandle, sValue, EAS_Position ); + GetEnhancedParameterPair( aHandle, aIter.toString(), EAS_Position ); break; case EAS_handle_range_x_minimum : - GetEnhancedParameter( aHandle, sValue, EAS_RangeXMinimum ); + GetEnhancedParameter( aHandle, aIter.toString(), EAS_RangeXMinimum ); break; case EAS_handle_range_x_maximum : - GetEnhancedParameter( aHandle, sValue, EAS_RangeXMaximum ); + GetEnhancedParameter( aHandle, aIter.toString(), EAS_RangeXMaximum ); break; case EAS_handle_range_y_minimum : - GetEnhancedParameter( aHandle, sValue, EAS_RangeYMinimum ); + GetEnhancedParameter( aHandle, aIter.toString(), EAS_RangeYMinimum ); break; case EAS_handle_range_y_maximum : - GetEnhancedParameter( aHandle, sValue, EAS_RangeYMaximum ); + GetEnhancedParameter( aHandle, aIter.toString(), EAS_RangeYMaximum ); break; case EAS_handle_polar : - GetEnhancedParameterPair( aHandle, sValue, EAS_Polar ); + GetEnhancedParameterPair( aHandle, aIter.toString(), EAS_Polar ); break; case EAS_handle_radius_range_minimum : - GetEnhancedParameter( aHandle, sValue, EAS_RadiusRangeMinimum ); + GetEnhancedParameter( aHandle, aIter.toString(), EAS_RadiusRangeMinimum ); break; case EAS_handle_radius_range_maximum : - GetEnhancedParameter( aHandle, sValue, EAS_RadiusRangeMaximum ); + GetEnhancedParameter( aHandle, aIter.toString(), EAS_RadiusRangeMaximum ); break; default: break; diff --git a/xmloff/source/draw/ximppage.cxx b/xmloff/source/draw/ximppage.cxx index b9492b96a776..2ddd5140545f 100644 --- a/xmloff/source/draw/ximppage.cxx +++ b/xmloff/source/draw/ximppage.cxx @@ -92,8 +92,6 @@ DrawAnnotationContext::DrawAnnotationContext( SvXMLImport& rImport, const Refere for (auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(SVG, XML_X): @@ -101,7 +99,7 @@ DrawAnnotationContext::DrawAnnotationContext( SvXMLImport& rImport, const Refere { sal_Int32 x; GetImport().GetMM100UnitConverter().convertMeasureToCore( - x, sValue); + x, aIter.toView()); aPosition.X = static_cast<double>(x) / 100.0; break; } @@ -110,7 +108,7 @@ DrawAnnotationContext::DrawAnnotationContext( SvXMLImport& rImport, const Refere { sal_Int32 y; GetImport().GetMM100UnitConverter().convertMeasureToCore( - y, sValue); + y, aIter.toView()); aPosition.Y = static_cast<double>(y) / 100.0; break; } @@ -119,7 +117,7 @@ DrawAnnotationContext::DrawAnnotationContext( SvXMLImport& rImport, const Refere { sal_Int32 w; GetImport().GetMM100UnitConverter().convertMeasureToCore( - w, sValue); + w, aIter.toView()); aSize.Width = static_cast<double>(w) / 100.0; break; } @@ -128,7 +126,7 @@ DrawAnnotationContext::DrawAnnotationContext( SvXMLImport& rImport, const Refere { sal_Int32 h; GetImport().GetMM100UnitConverter().convertMeasureToCore( - h, sValue); + h, aIter.toView()); aSize.Height = static_cast<double>(h) / 100.0; } break; diff --git a/xmloff/source/draw/ximpshap.cxx b/xmloff/source/draw/ximpshap.cxx index 5ae4680332ae..cabf4aa460a1 100644 --- a/xmloff/source/draw/ximpshap.cxx +++ b/xmloff/source/draw/ximpshap.cxx @@ -3420,7 +3420,7 @@ void SdXMLFrameShapeContext::endFastElement(sal_Int32 nElement) switch (aIter.getToken()) { case XML_ELEMENT(PRESENTATION, XML_PLACEHOLDER): - mbIsPlaceholder = IsXMLToken( aIter.toString(), XML_TRUE ); + mbIsPlaceholder = IsXMLToken( aIter, XML_TRUE ); break; case XML_ELEMENT(PRESENTATION, XML_CLASS): maPresentationClass = aIter.toString(); diff --git a/xmloff/source/draw/ximpshow.cxx b/xmloff/source/draw/ximpshow.cxx index 0e227d9cfa64..4fba11fd380a 100644 --- a/xmloff/source/draw/ximpshow.cxx +++ b/xmloff/source/draw/ximpshow.cxx @@ -77,26 +77,24 @@ SdXMLShowsContext::SdXMLShowsContext( SdXMLImport& rImport, const Reference< XFa // read attributes for (auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(PRESENTATION, XML_START_PAGE): { - mxPresProps->setPropertyValue("FirstPage", Any(sValue) ); + mxPresProps->setPropertyValue("FirstPage", Any(aIter.toString()) ); bAll = false; break; } case XML_ELEMENT(PRESENTATION, XML_SHOW): { - maCustomShowName = sValue; + maCustomShowName = aIter.toString(); bAll = false; break; } case XML_ELEMENT(PRESENTATION, XML_PAUSE): { Duration aDuration; - if (!::sax::Converter::convertDuration(aDuration, sValue)) + if (!::sax::Converter::convertDuration(aDuration, aIter.toString())) continue; const sal_Int32 nMS = (aDuration.Hours * 60 + @@ -106,60 +104,60 @@ SdXMLShowsContext::SdXMLShowsContext( SdXMLImport& rImport, const Reference< XFa } case XML_ELEMENT(PRESENTATION, XML_ANIMATIONS): { - aAny <<= IsXMLToken( sValue, XML_ENABLED ); + aAny <<= IsXMLToken( aIter, XML_ENABLED ); mxPresProps->setPropertyValue("AllowAnimations", aAny ); break; } case XML_ELEMENT(PRESENTATION, XML_STAY_ON_TOP): { - aAny <<= IsXMLToken( sValue, XML_TRUE ); + aAny <<= IsXMLToken( aIter, XML_TRUE ); mxPresProps->setPropertyValue("IsAlwaysOnTop", aAny ); break; } case XML_ELEMENT(PRESENTATION, XML_FORCE_MANUAL): { - aAny <<= IsXMLToken( sValue, XML_TRUE ); + aAny <<= IsXMLToken( aIter, XML_TRUE ); mxPresProps->setPropertyValue("IsAutomatic", aAny ); break; } case XML_ELEMENT(PRESENTATION, XML_ENDLESS): { - aAny <<= IsXMLToken( sValue, XML_TRUE ); + aAny <<= IsXMLToken( aIter, XML_TRUE ); mxPresProps->setPropertyValue("IsEndless", aAny ); break; } case XML_ELEMENT(PRESENTATION, XML_FULL_SCREEN): { - aAny <<= IsXMLToken( sValue, XML_TRUE ); + aAny <<= IsXMLToken( aIter, XML_TRUE ); mxPresProps->setPropertyValue("IsFullScreen", aAny ); break; } case XML_ELEMENT(PRESENTATION, XML_MOUSE_VISIBLE): { - bIsMouseVisible = IsXMLToken( sValue, XML_TRUE ); + bIsMouseVisible = IsXMLToken( aIter, XML_TRUE ); break; } case XML_ELEMENT(PRESENTATION, XML_START_WITH_NAVIGATOR): { - aAny <<= IsXMLToken( sValue, XML_TRUE ); + aAny <<= IsXMLToken( aIter, XML_TRUE ); mxPresProps->setPropertyValue("StartWithNavigator", aAny ); break; } case XML_ELEMENT(PRESENTATION, XML_MOUSE_AS_PEN): { - aAny <<= IsXMLToken( sValue, XML_TRUE ); + aAny <<= IsXMLToken( aIter, XML_TRUE ); mxPresProps->setPropertyValue("UsePen", aAny ); break; } case XML_ELEMENT(PRESENTATION, XML_TRANSITION_ON_CLICK): { - aAny <<= IsXMLToken( sValue, XML_ENABLED ); + aAny <<= IsXMLToken( aIter, XML_ENABLED ); mxPresProps->setPropertyValue("IsTransitionOnClick", aAny ); break; } case XML_ELEMENT(PRESENTATION, XML_SHOW_LOGO): { - aAny <<= IsXMLToken( sValue, XML_TRUE ); + aAny <<= IsXMLToken( aIter, XML_TRUE ); mxPresProps->setPropertyValue("IsShowLogo", aAny ); break; } diff --git a/xmloff/source/draw/ximpstyl.cxx b/xmloff/source/draw/ximpstyl.cxx index ee2c51add4bb..ac23bc3345a2 100644 --- a/xmloff/source/draw/ximpstyl.cxx +++ b/xmloff/source/draw/ximpstyl.cxx @@ -294,54 +294,53 @@ SdXMLPageMasterStyleContext::SdXMLPageMasterStyleContext( for (auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList )) { - OUString sValue = aIter.toString(); switch(aIter.getToken()) { case XML_ELEMENT(FO, XML_MARGIN_TOP): case XML_ELEMENT(FO_COMPAT, XML_MARGIN_TOP): { GetSdImport().GetMM100UnitConverter().convertMeasureToCore( - mnBorderTop, sValue); + mnBorderTop, aIter.toView()); break; } case XML_ELEMENT(FO, XML_MARGIN_BOTTOM): case XML_ELEMENT(FO_COMPAT, XML_MARGIN_BOTTOM): { GetSdImport().GetMM100UnitConverter().convertMeasureToCore( - mnBorderBottom, sValue); + mnBorderBottom, aIter.toView()); break; } case XML_ELEMENT(FO, XML_MARGIN_LEFT): case XML_ELEMENT(FO_COMPAT, XML_MARGIN_LEFT): { GetSdImport().GetMM100UnitConverter().convertMeasureToCore( - mnBorderLeft, sValue); + mnBorderLeft, aIter.toView()); break; } case XML_ELEMENT(FO, XML_MARGIN_RIGHT): case XML_ELEMENT(FO_COMPAT, XML_MARGIN_RIGHT): { GetSdImport().GetMM100UnitConverter().convertMeasureToCore( - mnBorderRight, sValue); + mnBorderRight, aIter.toView()); break; } case XML_ELEMENT(FO, XML_PAGE_WIDTH): case XML_ELEMENT(FO_COMPAT, XML_PAGE_WIDTH): { GetSdImport().GetMM100UnitConverter().convertMeasureToCore( - mnWidth, sValue); + mnWidth, aIter.toView()); break; } case XML_ELEMENT(FO, XML_PAGE_HEIGHT): case XML_ELEMENT(FO_COMPAT, XML_PAGE_HEIGHT): { GetSdImport().GetMM100UnitConverter().convertMeasureToCore( - mnHeight, sValue); + mnHeight, aIter.toView()); break; } case XML_ELEMENT(STYLE, XML_PRINT_ORIENTATION): { - if( IsXMLToken( sValue, XML_PORTRAIT ) ) + if( IsXMLToken( aIter, XML_PORTRAIT ) ) meOrientation = view::PaperOrientation_PORTRAIT; else meOrientation = view::PaperOrientation_LANDSCAPE; @@ -633,19 +632,18 @@ SdXMLPresentationPlaceholderContext::SdXMLPresentationPlaceholderContext( { for (auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList )) { - OUString sValue = aIter.toString(); switch(aIter.getToken()) { case XML_ELEMENT(PRESENTATION, XML_OBJECT): { - msName = sValue; + msName = aIter.toString(); break; } case XML_ELEMENT(SVG, XML_X): case XML_ELEMENT(SVG_COMPAT, XML_X): { GetSdImport().GetMM100UnitConverter().convertMeasureToCore( - mnX, sValue); + mnX, aIter.toView()); break; } case XML_ELEMENT(SVG, XML_Y): @@ -1373,18 +1371,17 @@ SdXMLHeaderFooterDeclContext::SdXMLHeaderFooterDeclContext(SvXMLImport& rImport, { for (auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList )) { - OUString sValue = aIter.toString(); if( aIter.getToken() == XML_ELEMENT(PRESENTATION, XML_NAME) ) { - maStrName = sValue; + maStrName = aIter.toString(); } else if( aIter.getToken() == XML_ELEMENT(PRESENTATION, XML_SOURCE) ) { - mbFixed = IsXMLToken( sValue, XML_FIXED ); + mbFixed = IsXMLToken( aIter, XML_FIXED ); } else if( aIter.getToken() == XML_ELEMENT(STYLE, XML_DATA_STYLE_NAME) ) { - maStrDateTimeFormat = sValue; + maStrDateTimeFormat = aIter.toString(); } else { 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); diff --git a/xmloff/source/text/XMLCalculationSettingsContext.cxx b/xmloff/source/text/XMLCalculationSettingsContext.cxx index 338080a3b643..fa7ff423658a 100644 --- a/xmloff/source/text/XMLCalculationSettingsContext.cxx +++ b/xmloff/source/text/XMLCalculationSettingsContext.cxx @@ -47,9 +47,7 @@ XMLCalculationSettingsContext::XMLCalculationSettingsContext( SvXMLImport& rImpo { if (aIter.getToken() == XML_ELEMENT(TABLE, XML_NULL_YEAR) ) { - sal_Int32 nTemp; - ::sax::Converter::convertNumber(nTemp, aIter.toString()); - nYear= static_cast <sal_Int16> (nTemp); + nYear = static_cast <sal_Int16> (aIter.toInt32()); } else XMLOFF_WARN_UNKNOWN("xmloff", aIter); diff --git a/xmloff/source/text/XMLChangedRegionImportContext.cxx b/xmloff/source/text/XMLChangedRegionImportContext.cxx index 400f18a9b44e..b96da6c36fa2 100644 --- a/xmloff/source/text/XMLChangedRegionImportContext.cxx +++ b/xmloff/source/text/XMLChangedRegionImportContext.cxx @@ -58,24 +58,23 @@ void XMLChangedRegionImportContext::startFastElement( bool bHaveXmlId( false ); for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - const OUString sValue = aIter.toString(); switch(aIter.getToken()) { case XML_ELEMENT(XML, XML_ID): { - sID = sValue; + sID = aIter.toString(); bHaveXmlId = true; break; } case XML_ELEMENT(TEXT, XML_ID): { - if (!bHaveXmlId) { sID = sValue; } + if (!bHaveXmlId) { sID = aIter.toString(); } break; } case XML_ELEMENT(TEXT, XML_MERGE_LAST_PARAGRAPH): { bool bTmp(false); - if (::sax::Converter::convertBool(bTmp, sValue)) + if (::sax::Converter::convertBool(bTmp, aIter.toView())) { bMergeLastPara = bTmp; } diff --git a/xmloff/source/text/XMLFootnoteConfigurationImportContext.cxx b/xmloff/source/text/XMLFootnoteConfigurationImportContext.cxx index 756c85377bab..1ce26817c015 100644 --- a/xmloff/source/text/XMLFootnoteConfigurationImportContext.cxx +++ b/xmloff/source/text/XMLFootnoteConfigurationImportContext.cxx @@ -136,7 +136,7 @@ XMLFootnoteConfigurationImportContext::XMLFootnoteConfigurationImportContext( { if( aIter.getToken() == XML_ELEMENT(TEXT, XML_NOTE_CLASS) ) { - if( IsXMLToken(aIter.toString(), XML_ENDNOTE ) ) + if( IsXMLToken(aIter, XML_ENDNOTE ) ) { bIsEndnote = true; SetFamily( XmlStyleFamily::TEXT_FOOTNOTECONFIG ); diff --git a/xmloff/source/text/XMLFootnoteImportContext.cxx b/xmloff/source/text/XMLFootnoteImportContext.cxx index fea2e95c4b2a..c7d3c599d86b 100644 --- a/xmloff/source/text/XMLFootnoteImportContext.cxx +++ b/xmloff/source/text/XMLFootnoteImportContext.cxx @@ -69,7 +69,7 @@ void XMLFootnoteImportContext::startFastElement( { if( aIter.getToken() == XML_ELEMENT(TEXT, XML_NOTE_CLASS) ) { - if( IsXMLToken( aIter.toString(), XML_ENDNOTE ) ) + if( IsXMLToken( aIter, XML_ENDNOTE ) ) bIsEndnote = true; break; } diff --git a/xmloff/source/text/XMLIndexBibliographyConfigurationContext.cxx b/xmloff/source/text/XMLIndexBibliographyConfigurationContext.cxx index 759c786f8aa8..b38fd4db03d4 100644 --- a/xmloff/source/text/XMLIndexBibliographyConfigurationContext.cxx +++ b/xmloff/source/text/XMLIndexBibliographyConfigurationContext.cxx @@ -140,7 +140,7 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > XMLIndexBibliographyCo case XML_ELEMENT(TEXT, XML_SORT_ASCENDING): { bool bTmp(false); - if (::sax::Converter::convertBool(bTmp, aIter.toString())) + if (::sax::Converter::convertBool(bTmp, aIter.toView())) bSort = bTmp; break; } diff --git a/xmloff/source/text/XMLIndexChapterInfoEntryContext.cxx b/xmloff/source/text/XMLIndexChapterInfoEntryContext.cxx index 8436d1bb339b..1f5bbc2ea11f 100644 --- a/xmloff/source/text/XMLIndexChapterInfoEntryContext.cxx +++ b/xmloff/source/text/XMLIndexChapterInfoEntryContext.cxx @@ -103,7 +103,7 @@ void XMLIndexChapterInfoEntryContext::startFastElement( case XML_ELEMENT(TEXT, XML_OUTLINE_LEVEL): { sal_Int32 nTmp; - if (::sax::Converter::convertNumber(nTmp, aIter.toString())) + if (::sax::Converter::convertNumber(nTmp, aIter.toView())) { //control on range is carried out in the UNO level nOutlineLevel = static_cast<sal_uInt16>(nTmp); diff --git a/xmloff/source/text/XMLIndexTOCContext.cxx b/xmloff/source/text/XMLIndexTOCContext.cxx index c883edf6cc28..d3a7ea4ef1b1 100644 --- a/xmloff/source/text/XMLIndexTOCContext.cxx +++ b/xmloff/source/text/XMLIndexTOCContext.cxx @@ -145,7 +145,7 @@ void XMLIndexTOCContext::startFastElement( case XML_ELEMENT(TEXT, XML_PROTECTED): { bool bTmp(false); - if (::sax::Converter::convertBool(bTmp, aIter.toString())) + if (::sax::Converter::convertBool(bTmp, aIter.toView())) { bProtected = bTmp; } diff --git a/xmloff/source/text/XMLIndexTOCStylesContext.cxx b/xmloff/source/text/XMLIndexTOCStylesContext.cxx index 830369240e7c..aee1b9c9f70b 100644 --- a/xmloff/source/text/XMLIndexTOCStylesContext.cxx +++ b/xmloff/source/text/XMLIndexTOCStylesContext.cxx @@ -65,7 +65,7 @@ void XMLIndexTOCStylesContext::startFastElement( { sal_Int32 nTmp; if (::sax::Converter::convertNumber( - nTmp, aIter.toString(), 1, + nTmp, aIter.toView(), 1, GetImport().GetTextImport()->GetChapterNumbering()-> getCount())) { diff --git a/xmloff/source/text/XMLIndexTabStopEntryContext.cxx b/xmloff/source/text/XMLIndexTabStopEntryContext.cxx index 1c785c53cc4d..b2ac30899440 100644 --- a/xmloff/source/text/XMLIndexTabStopEntryContext.cxx +++ b/xmloff/source/text/XMLIndexTabStopEntryContext.cxx @@ -64,7 +64,6 @@ void XMLIndexTabStopEntryContext::startFastElement( // process three attributes: type, position, leader char for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sValue = aIter.toString(); switch(aIter.getToken()) { case XML_ELEMENT(STYLE, XML_TYPE): @@ -72,14 +71,14 @@ void XMLIndexTabStopEntryContext::startFastElement( // if it's neither left nor right, value is // ignored. Since left is default, we only need to // check for right - bTabRightAligned = IsXMLToken( sValue, XML_RIGHT ); + bTabRightAligned = IsXMLToken( aIter, XML_RIGHT ); break; } case XML_ELEMENT(STYLE, XML_POSITION): { sal_Int32 nTmp; if (GetImport().GetMM100UnitConverter(). - convertMeasureToCore(nTmp, sValue)) + convertMeasureToCore(nTmp, aIter.toView())) { nTabPosition = nTmp; bTabPositionOK = true; @@ -88,16 +87,16 @@ void XMLIndexTabStopEntryContext::startFastElement( } case XML_ELEMENT(STYLE, XML_LEADER_CHAR): { - sLeaderChar = sValue; + sLeaderChar = aIter.toString(); // valid only, if we have a char! - bLeaderCharOK = !sValue.isEmpty(); + bLeaderCharOK = !sLeaderChar.isEmpty(); break; } case XML_ELEMENT(STYLE, XML_WITH_TAB): { // #i21237# bool bTmp(false); - if (::sax::Converter::convertBool(bTmp, sValue)) + if (::sax::Converter::convertBool(bTmp, aIter.toView())) bWithTab = bTmp; break; } diff --git a/xmloff/source/text/XMLLineNumberingSeparatorImportContext.cxx b/xmloff/source/text/XMLLineNumberingSeparatorImportContext.cxx index 8d6269235ed6..a275307275d1 100644 --- a/xmloff/source/text/XMLLineNumberingSeparatorImportContext.cxx +++ b/xmloff/source/text/XMLLineNumberingSeparatorImportContext.cxx @@ -56,7 +56,7 @@ void XMLLineNumberingSeparatorImportContext::startFastElement( if ( aIter.getToken() == XML_ELEMENT(TEXT, XML_INCREMENT) ) { sal_Int32 nTmp; - if (::sax::Converter::convertNumber(nTmp, aIter.toString(), 0)) + if (::sax::Converter::convertNumber(nTmp, aIter.toView(), 0)) { rLineNumberingContext.SetSeparatorIncrement(static_cast<sal_Int16>(nTmp)); } diff --git a/xmloff/source/text/XMLSectionFootnoteConfigImport.cxx b/xmloff/source/text/XMLSectionFootnoteConfigImport.cxx index 26e8af646d37..fcdbf2221b5a 100644 --- a/xmloff/source/text/XMLSectionFootnoteConfigImport.cxx +++ b/xmloff/source/text/XMLSectionFootnoteConfigImport.cxx @@ -77,14 +77,12 @@ void XMLSectionFootnoteConfigImport::startFastElement( // iterate over xattribute list and fill values for (auto &aIter : sax_fastparser::castToFastAttributeList(xAttrList)) { - OUString sAttrValue = aIter.toString(); - switch(aIter.getToken()) { case XML_ELEMENT(TEXT, XML_START_VALUE): { sal_Int32 nTmp; - if (::sax::Converter::convertNumber(nTmp, sAttrValue)) + if (::sax::Converter::convertNumber(nTmp, aIter.toView())) { nNumRestartAt = static_cast< sal_Int16 >( nTmp ) - 1; bNumRestart = true; @@ -93,31 +91,31 @@ void XMLSectionFootnoteConfigImport::startFastElement( } case XML_ELEMENT(TEXT, XML_NOTE_CLASS): { - if( IsXMLToken( sAttrValue, XML_ENDNOTE ) ) + if( IsXMLToken( aIter, XML_ENDNOTE ) ) bEndnote = true; break; } case XML_ELEMENT(STYLE, XML_NUM_PREFIX): { - sNumPrefix = sAttrValue; + sNumPrefix = aIter.toString(); bNumOwn = true; break; } case XML_ELEMENT(TEXT, XML_NUM_SUFFIX): { - sNumSuffix = sAttrValue; + sNumSuffix = aIter.toString(); bNumOwn = true; break; } case XML_ELEMENT(TEXT, XML_NUM_FORMAT): { - sNumFormat = sAttrValue; + sNumFormat = aIter.toString(); bNumOwn = true; break; } case XML_ELEMENT(TEXT, XML_NUM_LETTER_SYNC): { - sNumLetterSync = sAttrValue; + sNumLetterSync = aIter.toString(); bNumOwn = true; break; } diff --git a/xmloff/source/text/XMLSectionImportContext.cxx b/xmloff/source/text/XMLSectionImportContext.cxx index 701fc76af839..54620ddfe5a9 100644 --- a/xmloff/source/text/XMLSectionImportContext.cxx +++ b/xmloff/source/text/XMLSectionImportContext.cxx @@ -198,22 +198,21 @@ void XMLSectionImportContext::ProcessAttributes( { for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sValue = aIter.toString(); - switch (aIter.getToken()) { case XML_ELEMENT(XML, XML_ID): - sXmlId = sValue; + sXmlId = aIter.toString(); break; case XML_ELEMENT(TEXT, XML_STYLE_NAME): - sStyleName = sValue; + sStyleName = aIter.toString(); break; case XML_ELEMENT(TEXT, XML_NAME): - sName = sValue; + sName = aIter.toString(); bValid = true; break; case XML_ELEMENT(TEXT, XML_CONDITION): { + OUString sValue = aIter.toString(); OUString sTmp; sal_uInt16 nPrefix = GetImport().GetNamespaceMap(). GetKeyByAttrValueQName(sValue, &sTmp); @@ -227,12 +226,12 @@ void XMLSectionImportContext::ProcessAttributes( } break; case XML_ELEMENT(TEXT, XML_DISPLAY): - if (IsXMLToken(sValue, XML_TRUE)) + if (IsXMLToken(aIter, XML_TRUE)) { bIsVisible = true; } - else if ( IsXMLToken(sValue, XML_NONE) || - IsXMLToken(sValue, XML_CONDITION) ) + else if ( IsXMLToken(aIter, XML_NONE) || + IsXMLToken(aIter, XML_CONDITION) ) { bIsVisible = false; } @@ -241,7 +240,7 @@ void XMLSectionImportContext::ProcessAttributes( case XML_ELEMENT(TEXT, XML_IS_HIDDEN): { bool bTmp(false); - if (::sax::Converter::convertBool(bTmp, sValue)) + if (::sax::Converter::convertBool(bTmp, aIter.toView())) { bIsCurrentlyVisible = !bTmp; bIsCurrentlyVisibleOK = true; @@ -249,7 +248,7 @@ void XMLSectionImportContext::ProcessAttributes( } break; case XML_ELEMENT(TEXT, XML_PROTECTION_KEY): - ::comphelper::Base64::decode(aSequence, sValue); + ::comphelper::Base64::decode(aSequence, aIter.toString()); bSequenceOK = true; break; case XML_ELEMENT(TEXT, XML_PROTECTED): @@ -257,7 +256,7 @@ void XMLSectionImportContext::ProcessAttributes( case XML_ELEMENT(TEXT, XML_PROTECT): { bool bTmp(false); - if (::sax::Converter::convertBool(bTmp, sValue)) + if (::sax::Converter::convertBool(bTmp, aIter.toView())) { bProtect = bTmp; } diff --git a/xmloff/source/text/XMLSectionSourceDDEImportContext.cxx b/xmloff/source/text/XMLSectionSourceDDEImportContext.cxx index 08f6ab51b53e..3e98f5114100 100644 --- a/xmloff/source/text/XMLSectionSourceDDEImportContext.cxx +++ b/xmloff/source/text/XMLSectionSourceDDEImportContext.cxx @@ -75,7 +75,7 @@ void XMLSectionSourceDDEImportContext::startFastElement(sal_Int32 /*nElement*/, case XML_ELEMENT(OFFICE, XML_AUTOMATIC_UPDATE): { bool bTmp(false); - if (::sax::Converter::convertBool(bTmp, aIter.toString())) + if (::sax::Converter::convertBool(bTmp, aIter.toView())) { bAutomaticUpdate = bTmp; } diff --git a/xmloff/source/text/XMLTextColumnsContext.cxx b/xmloff/source/text/XMLTextColumnsContext.cxx index acf7ad7a64cc..5cf2d03f60cd 100644 --- a/xmloff/source/text/XMLTextColumnsContext.cxx +++ b/xmloff/source/text/XMLTextColumnsContext.cxx @@ -87,18 +87,17 @@ XMLTextColumnContext_Impl::XMLTextColumnContext_Impl( for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - const OUString sValue = aIter.toString(); sal_Int32 nVal; switch( aIter.getToken() ) { case XML_ELEMENT(STYLE, XML_REL_WIDTH): { - sal_Int32 nPos = sValue.indexOf( '*' ); - if( nPos != -1 && nPos+1 == sValue.getLength() ) + size_t nPos = aIter.toView().find( '*' ); + if( nPos != std::string_view::npos && static_cast<sal_Int32>(nPos+1) == aIter.getLength() ) { if (::sax::Converter::convertNumber( nVal, - std::u16string_view(sValue).substr(0, nPos), + aIter.toView().substr(0, nPos), 0, USHRT_MAX)) aColumn.Width = nVal; } @@ -107,13 +106,13 @@ XMLTextColumnContext_Impl::XMLTextColumnContext_Impl( case XML_ELEMENT(FO, XML_START_INDENT): case XML_ELEMENT(FO_COMPAT, XML_START_INDENT): if( GetImport().GetMM100UnitConverter(). - convertMeasureToCore( nVal, sValue ) ) + convertMeasureToCore( nVal, aIter.toView() ) ) aColumn.LeftMargin = nVal; break; case XML_ELEMENT(FO, XML_END_INDENT): case XML_ELEMENT(FO_COMPAT, XML_END_INDENT): if( GetImport().GetMM100UnitConverter(). - convertMeasureToCore( nVal, sValue ) ) + convertMeasureToCore( nVal, aIter.toView() ) ) aColumn.RightMargin = nVal; break; default: @@ -158,30 +157,28 @@ XMLTextColumnSepContext_Impl::XMLTextColumnSepContext_Impl( { for (auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList )) { - const OUString sValue = aIter.toString(); - sal_Int32 nVal; switch( aIter.getToken() ) { case XML_ELEMENT(STYLE, XML_WIDTH): if( GetImport().GetMM100UnitConverter(). - convertMeasureToCore( nVal, sValue ) ) + convertMeasureToCore( nVal, aIter.toView() ) ) nWidth = nVal; break; case XML_ELEMENT(STYLE, XML_HEIGHT): - if (::sax::Converter::convertPercent( nVal, sValue ) && + if (::sax::Converter::convertPercent( nVal, aIter.toView() ) && nVal >=1 && nVal <= 100 ) nHeight = static_cast<sal_Int8>(nVal); break; case XML_ELEMENT(STYLE, XML_COLOR): - ::sax::Converter::convertColor( nColor, sValue ); + ::sax::Converter::convertColor( nColor, aIter.toView() ); break; case XML_ELEMENT(STYLE, XML_VERTICAL_ALIGN): - SvXMLUnitConverter::convertEnum( eVertAlign, sValue, + SvXMLUnitConverter::convertEnum( eVertAlign, aIter.toString(), pXML_Sep_Align_Enum ); break; case XML_ELEMENT(STYLE, XML_STYLE): - SvXMLUnitConverter::convertEnum( nStyle, sValue, + SvXMLUnitConverter::convertEnum( nStyle, aIter.toString(), pXML_Sep_Style_Enum ); break; default: @@ -211,19 +208,18 @@ XMLTextColumnsContext::XMLTextColumnsContext( sal_Int32 nVal; for (auto &aIter : sax_fastparser::castToFastAttributeList(xAttrList)) { - const OUString sValue = aIter.toString(); switch(aIter.getToken()) { case XML_ELEMENT(FO, XML_COLUMN_COUNT): case XML_ELEMENT(FO_COMPAT, XML_COLUMN_COUNT): - if(::sax::Converter::convertNumber( nVal, sValue, 0, SHRT_MAX )) + if(::sax::Converter::convertNumber( nVal, aIter.toView(), 0, SHRT_MAX )) nCount = static_cast<sal_Int16>(nVal); break; case XML_ELEMENT(FO, XML_COLUMN_GAP): case XML_ELEMENT(FO_COMPAT, XML_COLUMN_GAP): { bAutomatic = GetImport().GetMM100UnitConverter(). - convertMeasureToCore( nAutomaticDistance, sValue ); + convertMeasureToCore( nAutomaticDistance, aIter.toView() ); break; } default: diff --git a/xmloff/source/text/XMLTextFrameContext.cxx b/xmloff/source/text/XMLTextFrameContext.cxx index 066b5d124a99..2855e64dd45f 100644 --- a/xmloff/source/text/XMLTextFrameContext.cxx +++ b/xmloff/source/text/XMLTextFrameContext.cxx @@ -220,40 +220,39 @@ XMLTextFrameContourContext_Impl::XMLTextFrameContourContext_Impl( for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sValue = aIter.toString(); switch( aIter.getToken() ) { case XML_ELEMENT(SVG, XML_VIEWBOX): case XML_ELEMENT(SVG_COMPAT, XML_VIEWBOX): - sViewBox = sValue; + sViewBox = aIter.toString(); break; case XML_ELEMENT(SVG, XML_D): case XML_ELEMENT(SVG_COMPAT, XML_D): if( bPath ) - sD = sValue; + sD = aIter.toString(); break; case XML_ELEMENT(DRAW,XML_POINTS): if( !bPath ) - sPoints = sValue; + sPoints = aIter.toString(); break; case XML_ELEMENT(SVG, XML_WIDTH): case XML_ELEMENT(SVG_COMPAT, XML_WIDTH): - if (::sax::Converter::convertMeasurePx(nWidth, sValue)) + if (::sax::Converter::convertMeasurePx(nWidth, aIter.toView())) bPixelWidth = true; else GetImport().GetMM100UnitConverter().convertMeasureToCore( - nWidth, sValue); + nWidth, aIter.toView()); break; case XML_ELEMENT(SVG, XML_HEIGHT): case XML_ELEMENT(SVG_COMPAT, XML_HEIGHT): - if (::sax::Converter::convertMeasurePx(nHeight, sValue)) + if (::sax::Converter::convertMeasurePx(nHeight, aIter.toView())) bPixelHeight = true; else GetImport().GetMM100UnitConverter().convertMeasureToCore( - nHeight, sValue); + nHeight, aIter.toView()); break; case XML_ELEMENT(DRAW, XML_RECREATE_ON_EDIT): - bAuto = IsXMLToken(sValue, XML_TRUE); + bAuto = IsXMLToken(aIter, XML_TRUE); break; } } @@ -836,22 +835,22 @@ XMLTextFrameContext_Impl::XMLTextFrameContext_Impl( bOwnBase64Stream = false; mbMultipleContent = bMultipleContent; - auto processAttr = [&](sal_Int32 nElement, OUString rValue) -> void + auto processAttr = [&](sal_Int32 nElement, const sax_fastparser::FastAttributeList::FastAttributeIter& aIter) -> void { switch( nElement ) { case XML_ELEMENT(DRAW, XML_STYLE_NAME): - sStyleName = rValue; + sStyleName = aIter.toString(); break; case XML_ELEMENT(DRAW, XML_NAME): - m_sOrigName = rValue; - sName = rValue; + m_sOrigName = aIter.toString(); + sName = m_sOrigName; break; case XML_ELEMENT(DRAW, XML_FRAME_NAME): - sFrameName = rValue; + sFrameName = aIter.toString(); break; case XML_ELEMENT(DRAW, XML_APPLET_NAME): - sAppletName = rValue; + sAppletName = aIter.toString(); break; case XML_ELEMENT(TEXT, XML_ANCHOR_TYPE): if( TextContentAnchorType_AT_PARAGRAPH == eAnchorType || @@ -860,7 +859,7 @@ XMLTextFrameContext_Impl::XMLTextFrameContext_Impl( { TextContentAnchorType eNew; - if( XMLAnchorTypePropHdl::convert( rValue, eNew ) && + if( XMLAnchorTypePropHdl::convert( aIter.toString(), eNew ) && ( TextContentAnchorType_AT_PARAGRAPH == eNew || TextContentAnchorType_AT_CHARACTER == eNew || TextContentAnchorType_AS_CHARACTER == eNew || @@ -871,83 +870,83 @@ XMLTextFrameContext_Impl::XMLTextFrameContext_Impl( case XML_ELEMENT(TEXT, XML_ANCHOR_PAGE_NUMBER): { sal_Int32 nTmp; - if (::sax::Converter::convertNumber(nTmp, rValue, 1, SHRT_MAX)) + if (::sax::Converter::convertNumber(nTmp, aIter.toView(), 1, SHRT_MAX)) nPage = static_cast<sal_Int16>(nTmp); } break; case XML_ELEMENT(SVG, XML_X): case XML_ELEMENT(SVG_COMPAT, XML_X): GetImport().GetMM100UnitConverter().convertMeasureToCore( - nX, rValue); + nX, aIter.toView()); break; case XML_ELEMENT(SVG, XML_Y): case XML_ELEMENT(SVG_COMPAT, XML_Y): GetImport().GetMM100UnitConverter().convertMeasureToCore( - nY, rValue ); + nY, aIter.toView() ); break; case XML_ELEMENT(SVG, XML_WIDTH): case XML_ELEMENT(SVG_COMPAT, XML_WIDTH): // relative widths are obsolete since SRC617. Remove them some day! - if( rValue.indexOf( '%' ) != -1 ) + if( aIter.toView().find( '%' ) != std::string_view::npos ) { sal_Int32 nTmp; - ::sax::Converter::convertPercent( nTmp, rValue ); + ::sax::Converter::convertPercent( nTmp, aIter.toView() ); nRelWidth = static_cast<sal_Int16>(nTmp); } else { GetImport().GetMM100UnitConverter().convertMeasureToCore( - nWidth, rValue, 0 ); + nWidth, aIter.toView(), 0 ); } break; case XML_ELEMENT(STYLE, XML_REL_WIDTH): - if( IsXMLToken(rValue, XML_SCALE) ) + if( IsXMLToken(aIter, XML_SCALE) ) { bSyncWidth = true; } else { sal_Int32 nTmp; - if (::sax::Converter::convertPercent( nTmp, rValue )) + if (::sax::Converter::convertPercent( nTmp, aIter.toView() )) nRelWidth = static_cast<sal_Int16>(nTmp); } break; case XML_ELEMENT(FO, XML_MIN_WIDTH): case XML_ELEMENT(FO_COMPAT, XML_MIN_WIDTH): - if( rValue.indexOf( '%' ) != -1 ) + if( aIter.toView().find( '%' ) != std::string_view::npos ) { sal_Int32 nTmp; - ::sax::Converter::convertPercent( nTmp, rValue ); + ::sax::Converter::convertPercent( nTmp, aIter.toView() ); nRelWidth = static_cast<sal_Int16>(nTmp); } else { GetImport().GetMM100UnitConverter().convertMeasureToCore( - nWidth, rValue, 0 ); + nWidth, aIter.toView(), 0 ); } bMinWidth = true; break; case XML_ELEMENT(SVG, XML_HEIGHT): case XML_ELEMENT(SVG_COMPAT, XML_HEIGHT): // relative heights are obsolete since SRC617. Remove them some day! - if( rValue.indexOf( '%' ) != -1 ) + if( aIter.toView().find( '%' ) != std::string_view::npos ) { sal_Int32 nTmp; - ::sax::Converter::convertPercent( nTmp, rValue ); + ::sax::Converter::convertPercent( nTmp, aIter.toView() ); nRelHeight = static_cast<sal_Int16>(nTmp); } else { GetImport().GetMM100UnitConverter().convertMeasureToCore( - nHeight, rValue, 0 ); + nHeight, aIter.toView(), 0 ); } break; case XML_ELEMENT(STYLE, XML_REL_HEIGHT): - if( IsXMLToken( rValue, XML_SCALE ) ) + if( IsXMLToken( aIter, XML_SCALE ) ) { bSyncHeight = true; } - else if( IsXMLToken( rValue, XML_SCALE_MIN ) ) + else if( IsXMLToken( aIter, XML_SCALE_MIN ) ) { bSyncHeight = true; bMinHeight = true; @@ -955,33 +954,33 @@ XMLTextFrameContext_Impl::XMLTextFrameContext_Impl( else { sal_Int32 nTmp; - if (::sax::Converter::convertPercent( nTmp, rValue )) + if (::sax::Converter::convertPercent( nTmp, aIter.toView() )) nRelHeight = static_cast<sal_Int16>(nTmp); } break; case XML_ELEMENT(FO, XML_MIN_HEIGHT): case XML_ELEMENT(FO_COMPAT, XML_MIN_HEIGHT): - if( rValue.indexOf( '%' ) != -1 ) + if( aIter.toView().find( '%' ) != std::string_view::npos ) { sal_Int32 nTmp; - ::sax::Converter::convertPercent( nTmp, rValue ); + ::sax::Converter::convertPercent( nTmp, aIter.toView() ); nRelHeight = static_cast<sal_Int16>(nTmp); } else { GetImport().GetMM100UnitConverter().convertMeasureToCore( - nHeight, rValue, 0 ); + nHeight, aIter.toView(), 0 ); } bMinHeight = true; break; case XML_ELEMENT(DRAW, XML_ZINDEX): - ::sax::Converter::convertNumber( nZIndex, rValue, -1 ); + ::sax::Converter::convertNumber( nZIndex, aIter.toView(), -1 ); break; case XML_ELEMENT(DRAW, XML_CHAIN_NEXT_NAME): - sNextName = rValue; + sNextName = aIter.toString(); break; case XML_ELEMENT(XLINK, XML_HREF): - sHRef = rValue; + sHRef = aIter.toString(); break; case XML_ELEMENT(DRAW, XML_TRANSFORM): { @@ -997,7 +996,7 @@ XMLTextFrameContext_Impl::XMLTextFrameContext_Impl( // but is not generally available (as it should be, a 'current' UnitConverter should // be available at GetExport() - and maybe was once). May have to be addressed as soon // as translate transformations are used here. - aSdXMLImExTransform2D.SetString(rValue, GetImport().GetMM100UnitConverter()); + aSdXMLImExTransform2D.SetString(aIter.toString(), GetImport().GetMM100UnitConverter()); aSdXMLImExTransform2D.GetFullTransform(aFullTransform); if(!aFullTransform.isIdentity()) @@ -1045,32 +1044,32 @@ XMLTextFrameContext_Impl::XMLTextFrameContext_Impl( } break; case XML_ELEMENT(DRAW, XML_CODE): - sCode = rValue; + sCode = aIter.toString(); break; case XML_ELEMENT(DRAW, XML_OBJECT): break; case XML_ELEMENT(DRAW, XML_ARCHIVE): break; case XML_ELEMENT(DRAW, XML_MAY_SCRIPT): - bMayScript = IsXMLToken( rValue, XML_TRUE ); + bMayScript = IsXMLToken( aIter, XML_TRUE ); break; case XML_ELEMENT(DRAW, XML_MIME_TYPE): case XML_ELEMENT(LO_EXT, XML_MIME_TYPE): - sMimeType = rValue; + sMimeType = aIter.toString(); break; case XML_ELEMENT(DRAW, XML_NOTIFY_ON_UPDATE_OF_RANGES): case XML_ELEMENT(DRAW, XML_NOTIFY_ON_UPDATE_OF_TABLE): - sTblName = rValue; + sTblName = aIter.toString(); break; default: - XMLOFF_WARN_UNKNOWN_ATTR("xmloff", nElement, rValue); + XMLOFF_WARN_UNKNOWN("xmloff", aIter); } }; for( auto& aIter : sax_fastparser::castToFastAttributeList(rAttrList) ) - processAttr(aIter.getToken(), aIter.toString()); + processAttr(aIter.getToken(), aIter); for( auto& aIter : sax_fastparser::castToFastAttributeList(rFrameAttrList) ) - processAttr(aIter.getToken(), aIter.toString()); + processAttr(aIter.getToken(), aIter); if( ( (XML_TEXT_FRAME_GRAPHIC == nType || XML_TEXT_FRAME_OBJECT == nType || @@ -1354,8 +1353,7 @@ XMLTextFrameContext::XMLTextFrameContext( case XML_ELEMENT(TEXT, XML_ANCHOR_TYPE): { TextContentAnchorType eNew; - if( XMLAnchorTypePropHdl::convert( aIter.toString(), - eNew ) && + if( XMLAnchorTypePropHdl::convert( aIter.toString(), eNew ) && ( TextContentAnchorType_AT_PARAGRAPH == eNew || TextContentAnchorType_AT_CHARACTER == eNew || TextContentAnchorType_AS_CHARACTER == eNew || diff --git a/xmloff/source/text/XMLTextFrameHyperlinkContext.cxx b/xmloff/source/text/XMLTextFrameHyperlinkContext.cxx index a6e717f2a879..240d9776b519 100644 --- a/xmloff/source/text/XMLTextFrameHyperlinkContext.cxx +++ b/xmloff/source/text/XMLTextFrameHyperlinkContext.cxx @@ -49,25 +49,24 @@ XMLTextFrameHyperlinkContext::XMLTextFrameHyperlinkContext( for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sValue = aIter.toString(); switch( aIter.getToken() ) { case XML_ELEMENT(XLINK, XML_HREF): - sHRef = GetImport().GetAbsoluteReference( sValue ); + sHRef = GetImport().GetAbsoluteReference( aIter.toString() ); break; case XML_ELEMENT(OFFICE, XML_NAME): - sName = sValue; + sName = aIter.toString(); break; case XML_ELEMENT(OFFICE, XML_TARGET_FRAME_NAME): - sTargetFrameName = sValue; + sTargetFrameName = aIter.toString(); break; case XML_ELEMENT(XLINK, XML_SHOW): - sShow = sValue; + sShow = aIter.toString(); break; case XML_ELEMENT(OFFICE, XML_SERVER_MAP): { bool bTmp(false); - if (::sax::Converter::convertBool( bTmp, sValue )) + if (::sax::Converter::convertBool( bTmp, aIter.toView() )) { bMap = bTmp; } diff --git a/xmloff/source/text/XMLTextListBlockContext.cxx b/xmloff/source/text/XMLTextListBlockContext.cxx index 28e86eeac159..9240413a004b 100644 --- a/xmloff/source/text/XMLTextListBlockContext.cxx +++ b/xmloff/source/text/XMLTextListBlockContext.cxx @@ -84,7 +84,6 @@ XMLTextListBlockContext::XMLTextListBlockContext( bool bIsContinueNumberingAttributePresent( false ); for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sValue = aIter.toString(); switch( aIter.getToken() ) { case XML_ELEMENT(XML, XML_ID): @@ -92,20 +91,20 @@ XMLTextListBlockContext::XMLTextListBlockContext( // xml:id is also the list ID (#i92221#) if ( mnLevel == 0 ) // root <list> element { - msListId = sValue; + msListId = aIter.toString(); } break; case XML_ELEMENT(TEXT, XML_CONTINUE_NUMBERING): - mbRestartNumbering = !IsXMLToken(sValue, XML_TRUE); + mbRestartNumbering = !IsXMLToken(aIter, XML_TRUE); bIsContinueNumberingAttributePresent = true; break; case XML_ELEMENT(TEXT, XML_STYLE_NAME): - msListStyleName = sValue; + msListStyleName = aIter.toString(); break; case XML_ELEMENT(TEXT, XML_CONTINUE_LIST): if ( mnLevel == 0 ) // root <list> element { - msContinueListId = sValue; + msContinueListId = aIter.toString(); } break; default: diff --git a/xmloff/source/text/XMLTextShapeImportHelper.cxx b/xmloff/source/text/XMLTextShapeImportHelper.cxx index 3c64ffd58e0a..74f8a7a49b26 100644 --- a/xmloff/source/text/XMLTextShapeImportHelper.cxx +++ b/xmloff/source/text/XMLTextShapeImportHelper.cxx @@ -88,14 +88,13 @@ void XMLTextShapeImportHelper::addShape( for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - const OUString sValue = aIter.toString(); switch( aIter.getToken() ) { case XML_ELEMENT(TEXT, XML_ANCHOR_TYPE): { TextContentAnchorType eNew; // OD 2004-06-01 #i26791# - allow all anchor types - if ( XMLAnchorTypePropHdl::convert( sValue, eNew ) ) + if ( XMLAnchorTypePropHdl::convert( aIter.toString(), eNew ) ) { eAnchorType = eNew; } @@ -104,13 +103,13 @@ void XMLTextShapeImportHelper::addShape( case XML_ELEMENT(TEXT, XML_ANCHOR_PAGE_NUMBER): { sal_Int32 nTmp; - if (::sax::Converter::convertNumber(nTmp, sValue, 1, SHRT_MAX)) + if (::sax::Converter::convertNumber(nTmp, aIter.toView(), 1, SHRT_MAX)) nPage = static_cast<sal_Int16>(nTmp); } break; case XML_ELEMENT(SVG, XML_Y): case XML_ELEMENT(SVG_COMPAT, XML_Y): - rImport.GetMM100UnitConverter().convertMeasureToCore( nY, sValue ); + rImport.GetMM100UnitConverter().convertMeasureToCore( nY, aIter.toString() ); break; } } diff --git a/xmloff/source/text/XMLTrackedChangesImportContext.cxx b/xmloff/source/text/XMLTrackedChangesImportContext.cxx index 630feb6a1db0..63e0d1497764 100644 --- a/xmloff/source/text/XMLTrackedChangesImportContext.cxx +++ b/xmloff/source/text/XMLTrackedChangesImportContext.cxx @@ -54,7 +54,7 @@ void XMLTrackedChangesImportContext::startFastElement( sal_Int32 /*nElement*/, if (aIter.getToken() == XML_ELEMENT(TEXT, XML_TRACK_CHANGES) ) { bool bTmp(false); - if (::sax::Converter::convertBool(bTmp, aIter.toString())) + if (::sax::Converter::convertBool(bTmp, aIter.toView())) { bTrackChanges = bTmp; } diff --git a/xmloff/source/text/txtdropi.cxx b/xmloff/source/text/txtdropi.cxx index b188f39b5bfe..66b219884b44 100644 --- a/xmloff/source/text/txtdropi.cxx +++ b/xmloff/source/text/txtdropi.cxx @@ -47,23 +47,21 @@ void XMLTextDropCapImportContext::ProcessAttrs( sal_Int32 nTmp; for (auto &aIter : sax_fastparser::castToFastAttributeList(xAttrList)) { - const OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(STYLE, XML_LINES): - if (::sax::Converter::convertNumber( nTmp, sValue, 0, 255 )) + if (::sax::Converter::convertNumber( nTmp, aIter.toView(), 0, 255 )) { aFormat.Lines = nTmp < 2 ? 0 : static_cast<sal_Int8>(nTmp); } break; case XML_ELEMENT(STYLE, XML_LENGTH): - if( IsXMLToken( sValue, XML_WORD ) ) + if( IsXMLToken( aIter, XML_WORD ) ) { bWholeWord = true; } - else if (::sax::Converter::convertNumber( nTmp, sValue, 1, 255 )) + else if (::sax::Converter::convertNumber( nTmp, aIter.toView(), 1, 255 )) { bWholeWord = false; aFormat.Count = static_cast<sal_Int8>(nTmp); @@ -72,14 +70,14 @@ void XMLTextDropCapImportContext::ProcessAttrs( case XML_ELEMENT(STYLE, XML_DISTANCE): if (GetImport().GetMM100UnitConverter().convertMeasureToCore( - nTmp, sValue, 0 )) + nTmp, aIter.toView(), 0 )) { aFormat.Distance = static_cast<sal_uInt16>(nTmp); } break; case XML_ELEMENT(STYLE, XML_STYLE_NAME): - sStyleName = sValue; + sStyleName = aIter.toString(); break; default: diff --git a/xmloff/source/text/txtfldi.cxx b/xmloff/source/text/txtfldi.cxx index 53794de8a9f7..f0cc32b3a33c 100644 --- a/xmloff/source/text/txtfldi.cxx +++ b/xmloff/source/text/txtfldi.cxx @@ -2665,7 +2665,7 @@ void XMLDdeFieldDeclImportContext::startFastElement( case XML_ELEMENT(OFFICE, XML_AUTOMATIC_UPDATE): { bool bTmp(false); - if (::sax::Converter::convertBool(bTmp, aIter.toString()) ) + if (::sax::Converter::convertBool(bTmp, aIter.toView()) ) { bUpdate = bTmp; } @@ -3445,19 +3445,18 @@ static bool lcl_ProcessLabel( bool bValid = false; for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sValue = aIter.toString(); switch (aIter.getToken()) { case XML_ELEMENT(TEXT, XML_VALUE): { - rLabel = sValue; + rLabel = aIter.toString(); bValid = true; break; } case XML_ELEMENT(TEXT, XML_CURRENT_SELECTED): { bool bTmp(false); - if (::sax::Converter::convertBool( bTmp, sValue )) + if (::sax::Converter::convertBool( bTmp, aIter.toView() )) rIsSelected = bTmp; break; } diff --git a/xmloff/source/text/txtparai.cxx b/xmloff/source/text/txtparai.cxx index 733946a98b40..2319af663736 100644 --- a/xmloff/source/text/txtparai.cxx +++ b/xmloff/source/text/txtparai.cxx @@ -1637,38 +1637,37 @@ XMLParaContext::XMLParaContext( for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sValue = aIter.toString(); switch( aIter.getToken() ) { case XML_ELEMENT(XML, XML_ID): - m_sXmlId = sValue; + m_sXmlId = aIter.toString(); bHaveXmlId = true; break; case XML_ELEMENT(XHTML, XML_ABOUT): - m_sAbout = sValue; + m_sAbout = aIter.toString(); m_bHaveAbout = true; break; case XML_ELEMENT(XHTML, XML_PROPERTY): - m_sProperty = sValue; + m_sProperty = aIter.toString(); break; case XML_ELEMENT(XHTML, XML_CONTENT): - m_sContent = sValue; + m_sContent = aIter.toString(); break; case XML_ELEMENT(XHTML, XML_DATATYPE): - m_sDatatype = sValue; + m_sDatatype = aIter.toString(); break; case XML_ELEMENT(TEXT, XML_ID): - if (!bHaveXmlId) { m_sXmlId = sValue; } + if (!bHaveXmlId) { m_sXmlId = aIter.toString(); } break; case XML_ELEMENT(TEXT, XML_STYLE_NAME): - sStyleName = sValue; + sStyleName = aIter.toString(); break; case XML_ELEMENT(TEXT, XML_COND_STYLE_NAME): - aCondStyleName = sValue; + aCondStyleName = aIter.toString(); break; case XML_ELEMENT(TEXT, XML_OUTLINE_LEVEL): { - sal_Int32 nTmp = sValue.toInt32(); + sal_Int32 nTmp = aIter.toInt32(); if( nTmp > 0 ) { if( nTmp > 127 ) @@ -1682,28 +1681,27 @@ XMLParaContext::XMLParaContext( case XML_ELEMENT(LO_EXT, XML_OUTLINE_CONTENT_VISIBLE): { bool bBool(false); - if (::sax::Converter::convertBool(bBool, sValue)) + if (::sax::Converter::convertBool(bBool, aIter.toView())) mbOutlineContentVisible = bBool; } break; case XML_ELEMENT(TEXT, XML_IS_LIST_HEADER): { bool bBool(false); - if (::sax::Converter::convertBool(bBool, sValue)) + if (::sax::Converter::convertBool(bBool, aIter.toView())) bIsListHeader = bBool; } break; case XML_ELEMENT(TEXT, XML_RESTART_NUMBERING): { bool bBool(false); - if (::sax::Converter::convertBool(bBool, sValue)) + if (::sax::Converter::convertBool(bBool, aIter.toView())) bIsRestart = bBool; } break; case XML_ELEMENT(TEXT, XML_START_VALUE): { - nStartValue = sal::static_int_cast< sal_Int16 >( - sValue.toInt32()); + nStartValue = sal::static_int_cast< sal_Int16 >(aIter.toInt32()); } break; default: @@ -2031,25 +2029,24 @@ XMLNumberedParaContext::XMLNumberedParaContext( for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) ) { - OUString sValue = aIter.toString(); switch( aIter.getToken() ) { case XML_ELEMENT(XML, XML_ID): //FIXME: there is no UNO API for lists break; case XML_ELEMENT(TEXT, XML_LIST_ID): - m_ListId = sValue; + m_ListId = aIter.toString(); break; case XML_ELEMENT(TEXT, XML_LEVEL): { - sal_Int32 nTmp = sValue.toInt32(); + sal_Int32 nTmp = aIter.toInt32(); if ( nTmp >= 1 && nTmp <= SHRT_MAX ) { m_Level = static_cast<sal_uInt16>(nTmp) - 1; } } break; case XML_ELEMENT(TEXT, XML_STYLE_NAME): - StyleName = sValue; + StyleName = aIter.toString(); break; case XML_ELEMENT(TEXT, XML_CONTINUE_NUMBERING): // this attribute is deprecated @@ -2057,7 +2054,7 @@ XMLNumberedParaContext::XMLNumberedParaContext( break; case XML_ELEMENT(TEXT, XML_START_VALUE): { - sal_Int32 nTmp = sValue.toInt32(); + sal_Int32 nTmp = aIter.toInt32(); if ( nTmp >= 0 && nTmp <= SHRT_MAX ) { m_StartValue = static_cast<sal_Int16>(nTmp); } diff --git a/xmloff/source/text/txtvfldi.cxx b/xmloff/source/text/txtvfldi.cxx index f112fc88f11c..f9e9a8a2fdba 100644 --- a/xmloff/source/text/txtvfldi.cxx +++ b/xmloff/source/text/txtvfldi.cxx @@ -715,7 +715,7 @@ XMLVariableDeclImportContext::XMLVariableDeclImportContext( { sal_Int32 nLevel; bool const bRet = ::sax::Converter::convertNumber( - nLevel, aIter.toString(), 0, + nLevel, aIter.toView(), 0, GetImport().GetTextImport()->GetChapterNumbering()-> getCount()); if (bRet) |