diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2020-07-06 02:08:33 +0300 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2020-07-07 12:21:27 +0200 |
commit | b7ed6de51422ca7bc8333e80ae6e9a4d57e07239 (patch) | |
tree | 7d55d33e38731db58d35e8d1fc77ec558f391914 /sc | |
parent | 125f3c4c930bd28a42c6819417b11b885e4586fc (diff) |
Use std::optional to allow optional inclusion of attributes
... instead of converting the O(U)String objects to char*.
Eventually this could allow to drop variants of *Element that take
XFastAttributeListRef.
Change-Id: Ib2748fcd93e655c55a176c00410fdcc7f052930d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98179
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/filter/excel/xecontent.cxx | 15 | ||||
-rw-r--r-- | sc/source/filter/excel/xeescher.cxx | 8 | ||||
-rw-r--r-- | sc/source/filter/excel/xeextlst.cxx | 4 | ||||
-rw-r--r-- | sc/source/filter/excel/xestyle.cxx | 4 |
4 files changed, 15 insertions, 16 deletions
diff --git a/sc/source/filter/excel/xecontent.cxx b/sc/source/filter/excel/xecontent.cxx index 9e596fdcf35d..88e2018b16ab 100644 --- a/sc/source/filter/excel/xecontent.cxx +++ b/sc/source/filter/excel/xecontent.cxx @@ -525,14 +525,13 @@ void XclExpHyperlink::SaveXml( XclExpXmlStream& rStrm ) OUString sId = !msTarget.isEmpty() ? rStrm.addRelation( rStrm.GetCurrentStream()->getOutputStream(), oox::getRelationship(Relationship::HYPERLINK), msTarget, true ) : OUString(); + std::optional<OString> sTextMark; + if (mxTextMark) + sTextMark = XclXmlUtils::ToOString(*mxTextMark); rStrm.GetCurrentStream()->singleElement( XML_hyperlink, XML_ref, XclXmlUtils::ToOString(rStrm.GetRoot().GetDoc(), maScPos), - FSNS( XML_r, XML_id ), !sId.isEmpty() - ? sId.toUtf8().getStr() - : nullptr, - XML_location, mxTextMark - ? XclXmlUtils::ToOString( *mxTextMark ).getStr() - : nullptr, + FSNS( XML_r, XML_id ), sax_fastparser::UseIf(sId, !sId.isEmpty()), + XML_location, sTextMark, // OOXTODO: XML_tooltip, from record HLinkTooltip 800h wzTooltip XML_display, m_Repr ); } @@ -1549,8 +1548,8 @@ void XclExpIconSet::SaveXml( XclExpXmlStream& rStrm ) const char* pIconSetName = ScIconSetFormat::getIconSetName(mrFormat.GetIconSetData()->eIconSetType); rWorksheet->startElement( XML_iconSet, XML_iconSet, pIconSetName, - XML_showValue, mrFormat.GetIconSetData()->mbShowValue ? nullptr : "0", - XML_reverse, mrFormat.GetIconSetData()->mbReverse ? "1" : nullptr ); + XML_showValue, sax_fastparser::UseIf("0", !mrFormat.GetIconSetData()->mbShowValue), + XML_reverse, sax_fastparser::UseIf("1", mrFormat.GetIconSetData()->mbReverse)); maCfvoList.SaveXml( rStrm ); diff --git a/sc/source/filter/excel/xeescher.cxx b/sc/source/filter/excel/xeescher.cxx index 8afbe2e3752b..0e78fbf251da 100644 --- a/sc/source/filter/excel/xeescher.cxx +++ b/sc/source/filter/excel/xeescher.cxx @@ -1192,10 +1192,10 @@ void XclExpTbxControlObj::SaveXml( XclExpXmlStream& rStrm ) // Insets are used just as internal margins for text boxes within shapes. // If this attribute is omitted, then a value of 45720 or 0.05 inches is implied. pDrawing->startElementNS(XML_a, XML_bodyPr, - XML_lIns, (nLeft != DEFLRINS) ? OString::number(oox::drawingml::convertHmmToEmu(nLeft)).getStr() : nullptr, - XML_rIns, (nRight != DEFLRINS) ? OString::number(oox::drawingml::convertHmmToEmu(nRight)).getStr() : nullptr, - XML_tIns, (nTop != DEFTBINS) ? OString::number(oox::drawingml::convertHmmToEmu(nTop)).getStr() : nullptr, - XML_bIns, (nBottom != DEFTBINS) ? OString::number(oox::drawingml::convertHmmToEmu(nBottom)).getStr() : nullptr, + XML_lIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nLeft)), nLeft != DEFLRINS), + XML_rIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nRight)), nRight != DEFLRINS), + XML_tIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nTop)), nTop != DEFTBINS), + XML_bIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nBottom)), nBottom != DEFTBINS), XML_anchor, "ctr"); { diff --git a/sc/source/filter/excel/xeextlst.cxx b/sc/source/filter/excel/xeextlst.cxx index db770b0dc6cd..35d2fac152d7 100644 --- a/sc/source/filter/excel/xeextlst.cxx +++ b/sc/source/filter/excel/xeextlst.cxx @@ -340,7 +340,7 @@ void XclExpExtIconSet::SaveXml(XclExpXmlStream& rStrm) rWorksheet->startElementNS(XML_x14, XML_iconSet, XML_iconSet, mpIconSetName, - XML_custom, mbCustom ? ToPsz10(mbCustom) : nullptr, + XML_custom, sax_fastparser::UseIf(ToPsz10(mbCustom), mbCustom), XML_reverse, ToPsz10(mbReverse), XML_showValue, ToPsz10(mbShowValue)); @@ -398,7 +398,7 @@ void XclExpExtCfRule::SaveXml( XclExpXmlStream& rStrm ) sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream(); rWorksheet->startElementNS( XML_x14, XML_cfRule, XML_type, pType, - XML_priority, mnPriority == -1 ? nullptr : OString::number(mnPriority + 1).getStr(), + XML_priority, sax_fastparser::UseIf(OString::number(mnPriority + 1), mnPriority != -1), XML_operator, mOperator, XML_id, maId ); diff --git a/sc/source/filter/excel/xestyle.cxx b/sc/source/filter/excel/xestyle.cxx index e91b64b5687c..76d9c2fb572f 100644 --- a/sc/source/filter/excel/xestyle.cxx +++ b/sc/source/filter/excel/xestyle.cxx @@ -1600,7 +1600,7 @@ void XclExpCellAlign::SaveXml( XclExpXmlStream& rStrm ) const // OOXTODO: XML_relativeIndent, mnIndent? // OOXTODO: XML_justifyLastLine, XML_shrinkToFit, ToPsz( mbShrink ), - XML_readingOrder, mnTextDir == EXC_XF_TEXTDIR_CONTEXT ? nullptr : OString::number(mnTextDir).getStr() ); + XML_readingOrder, sax_fastparser::UseIf(OString::number(mnTextDir), mnTextDir != EXC_XF_TEXTDIR_CONTEXT) ); } namespace { @@ -2200,7 +2200,7 @@ void XclExpXF::SaveXml( XclExpXmlStream& rStrm ) XML_fontId, OString::number(mnXclFont), XML_fillId, OString::number(mnFillId), XML_borderId, OString::number(mnBorderId), - XML_xfId, IsStyleXF() ? nullptr : OString::number( nXfId ).getStr(), + XML_xfId, sax_fastparser::UseIf(OString::number(nXfId), !IsStyleXF()), // OOXTODO: XML_quotePrefix, // OOXTODO: XML_pivotButton, // OOXTODO: XML_applyNumberFormat, ; |