basegfx/source/tools/bgradient.cxx | 76 +++++++------- basegfx/source/tools/gradienttools.cxx | 24 ++-- chart2/qa/extras/chart2import.cxx | 20 +-- cui/source/tabpages/tpgradnt.cxx | 4 cui/source/tabpages/tptrans.cxx | 4 docmodel/source/uno/UnoGradientTools.cxx | 7 - drawinglayer/source/attribute/fillgradientattribute.cxx | 4 drawinglayer/source/processor2d/cairopixelprocessor2d.cxx | 10 - drawinglayer/source/texture/texture.cxx | 24 ++-- drawinglayer/source/tools/primitive2dxmldump.cxx | 9 - filter/source/svg/svgwriter.cxx | 6 - include/basegfx/utils/bgradient.hxx | 64 ++++++++--- oox/qa/unit/drawingml.cxx | 20 +-- oox/qa/unit/shape.cxx | 64 +++++------ oox/source/drawingml/fillproperties.cxx | 4 sc/qa/unit/subsequent_filters_test3.cxx | 16 +- sd/qa/unit/export-tests-ooxml1.cxx | 24 ++-- sd/qa/unit/export-tests-ooxml2.cxx | 8 - sd/qa/unit/export-tests-ooxml4.cxx | 16 +- sd/qa/unit/misc-tests.cxx | 8 - sd/qa/unit/uiimpress.cxx | 8 - sd/source/ui/sidebar/SlideBackground.cxx | 4 svx/source/sidebar/area/AreaPropertyPanelBase.cxx | 10 - svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx | 6 - sw/qa/extras/odfexport/odfexport.cxx | 16 +- sw/qa/extras/ooxmlexport/ooxmlexport7.cxx | 8 - sw/source/filter/ww8/rtfattributeoutput.cxx | 2 vcl/source/filter/svm/SvmReader.cxx | 2 28 files changed, 246 insertions(+), 222 deletions(-)
New commits: commit 959decdcda7f07ed9a62bf3de8d2a117c72e180e Author: Tomaž Vajngerl <[email protected]> AuthorDate: Mon Dec 8 16:49:36 2025 +0900 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Mon Dec 8 13:40:28 2025 +0100 basegfx: BColorStops shouldn't derive from std::vector Change-Id: I9f246c0d9a5ddc7f8cf428bf7fc8c8957e8584b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158710 Reviewed-by: Tomaž Vajngerl <[email protected]> Tested-by: Jenkins diff --git a/basegfx/source/tools/bgradient.cxx b/basegfx/source/tools/bgradient.cxx index 5cc7a326f7dc..0c07327cd9c8 100644 --- a/basegfx/source/tools/bgradient.cxx +++ b/basegfx/source/tools/bgradient.cxx @@ -72,8 +72,8 @@ namespace basegfx // BColorStops for a single StartColor @0.0 & EndColor @1.0 BColorStops::BColorStops(const BColor& rStart, const BColor& rEnd) { - emplace_back(0.0, rStart); - emplace_back(1.0, rEnd); + addStop(0.0, rStart); + addStop(1.0, rEnd); } /* Helper to grep the correct ColorStop out of @@ -208,8 +208,8 @@ void BColorStops::replaceStartColor(const BColor& rStart) BColorStops aNewColorStops; aNewColorStops.reserve(size() + 1); - aNewColorStops.emplace_back(0.0, rStart); - aNewColorStops.insert(aNewColorStops.end(), a1stNonStartColor, end()); + aNewColorStops.addStop(0.0, rStart); + aNewColorStops.maStops.insert(aNewColorStops.end(), a1stNonStartColor, end()); // assign & done *this = std::move(aNewColorStops); @@ -225,10 +225,10 @@ void BColorStops::replaceEndColor(const BColor& rEnd) { // erase all evtl. existing EndColor(s) while (!empty() && basegfx::fTools::moreOrEqual(back().getStopOffset(), 1.0)) - pop_back(); + removeLastStop(); // add at the end of existing ColorStops - emplace_back(1.0, rEnd); + addStop(1.0, rEnd); } /* Tooling method to linearly blend the Colors contained in @@ -309,7 +309,7 @@ void BColorStops::sortAndCorrect() // be somewhere in-between what is allowed const BColorStop aEntry(front()); clear(); - emplace_back(std::max(0.0, std::min(1.0, aEntry.getStopOffset())), aEntry.getStopColor()); + addStop(std::max(0.0, std::min(1.0, aEntry.getStopOffset())), aEntry.getStopColor()); // done return; @@ -330,21 +330,21 @@ void BColorStops::sortAndCorrect() for (size_t read(0); read < size(); read++) { // get offset of entry at read position - double fOff((*this)[read].getStopOffset()); + double fOff = maStops[read].getStopOffset(); if (fOff < 0.0 && read + 1 < size()) { // value < 0.0 and we have a next entry. check for gradient snippet // containing 0.0 resp. StartColor - const double fOff2((*this)[read + 1].getStopOffset()); + const double fOff2 = maStops[read + 1].getStopOffset(); if (fOff2 > 0.0) { // read is the start of a gradient snippet containing 0.0. Correct // entry to StartColor, interpolate to correct StartColor - (*this)[read] - = BColorStop(0.0, basegfx::interpolate((*this)[read].getStopColor(), - (*this)[read + 1].getStopColor(), + maStops[read] + = BColorStop(0.0, basegfx::interpolate(maStops[read].getStopColor(), + maStops[read + 1].getStopColor(), (0.0 - fOff) / (fOff2 - fOff))); // adapt fOff @@ -362,16 +362,16 @@ void BColorStops::sortAndCorrect() { // value < 1.0 and we have a next entry. check for gradient snippet // containing 1.0 resp. EndColor - const double fOff2((*this)[read + 1].getStopOffset()); + const double fOff2(maStops[read + 1].getStopOffset()); if (basegfx::fTools::more(fOff2, 1.0)) { // read is the start of a gradient snippet containing 1.0. Correct // next entry to EndColor, interpolate to correct EndColor - (*this)[read + 1] - = BColorStop(1.0, basegfx::interpolate((*this)[read].getStopColor(), - (*this)[read + 1].getStopColor(), - (1.0 - fOff) / (fOff2 - fOff))); + auto nColor = basegfx::interpolate(maStops[read].getStopColor(), + maStops[read + 1].getStopColor(), + (1.0 - fOff) / (fOff2 - fOff)); + maStops[read + 1] = BColorStop(1.0, nColor); // adapt fOff fOff = 1.0; @@ -388,12 +388,12 @@ void BColorStops::sortAndCorrect() // entry is valid value at read position // copy if write target is empty (write at start) or when // write target is different to read in color or offset - if (0 == write || !((*this)[read] == (*this)[write - 1])) + if (0 == write || !(maStops[read] == maStops[write - 1])) { if (write != read) { // copy read to write backwards to close gaps - (*this)[write] = (*this)[read]; + maStops[write] = maStops[read]; } // always forward write position @@ -415,19 +415,19 @@ void BColorStops::sortAndCorrect() // all outside too low, rescue last due to being closest to content const BColor aBackColor(back().getStopColor()); clear(); - emplace_back(0.0, aBackColor); + addStop(0.0, aBackColor); } else // if (basegfx::fTools::more(front().getStopOffset(), 1.0)) { // all outside too high, rescue first due to being closest to content const BColor aFrontColor(front().getStopColor()); clear(); - emplace_back(1.0, aFrontColor); + addStop(1.0, aFrontColor); } } else { - resize(write); + maStops.resize(write); } } } @@ -524,8 +524,8 @@ void BColorStops::createSpaceAtStart(double fOffset) for (const auto& candidate : *this) { - aNewStops.emplace_back(fOffset + (candidate.getStopOffset() * (1.0 - fOffset)), - candidate.getStopColor()); + aNewStops.addStop(fOffset + (candidate.getStopOffset() * (1.0 - fOffset)), + candidate.getStopColor()); } *this = std::move(aNewStops); @@ -554,8 +554,8 @@ void BColorStops::removeSpaceAtStart(double fOffset) { if (basegfx::fTools::moreOrEqual(candidate.getStopOffset(), fOffset)) { - aNewStops.emplace_back((candidate.getStopOffset() - fOffset) * fMul, - candidate.getStopColor()); + aNewStops.addStop((candidate.getStopOffset() - fOffset) * fMul, + candidate.getStopColor()); } } @@ -631,8 +631,8 @@ void BColorStops::doApplyAxial() while (aRevCurrColor != rend()) { - aNewColorStops.emplace_back((1.0 - aRevCurrColor->getStopOffset()) * 0.5, - aRevCurrColor->getStopColor()); + aNewColorStops.addStop((1.0 - aRevCurrColor->getStopOffset()) * 0.5, + aRevCurrColor->getStopColor()); aRevCurrColor++; } @@ -650,8 +650,8 @@ void BColorStops::doApplyAxial() // add gradient stops in non-reverse order, translated and scaled to [0.5 .. 1.0] while (aCurrColor != end()) { - aNewColorStops.emplace_back((aCurrColor->getStopOffset() * 0.5) + 0.5, - aCurrColor->getStopColor()); + aNewColorStops.addStop((aCurrColor->getStopOffset() * 0.5) + 0.5, + aCurrColor->getStopColor()); aCurrColor++; } @@ -686,7 +686,7 @@ void BColorStops::doApplySteps(sal_uInt16 nStepCount) // add start color, but check if it is already there - which is the // case from the 2nd segment on due to a new segment starting with // the same color as the previous one ended - aNewColorStops.push_back(*aColorL); + aNewColorStops.addStop(*aColorL); } if (!basegfx::fTools::equalZero(fDelta)) { @@ -708,12 +708,12 @@ void BColorStops::doApplySteps(sal_uInt16 nStepCount) const double fPosition(fStart + fOffsetStep * static_cast<double>(a)); // add end color of previous sub-segment - aNewColorStops.emplace_back( + aNewColorStops.addStop( fPosition, basegfx::interpolate(rStartColor, rEndColor, static_cast<double>(a - 1) * fSingleStep)); // add start color of current sub-segment - aNewColorStops.emplace_back( + aNewColorStops.addStop( fPosition, basegfx::interpolate(rStartColor, rEndColor, static_cast<double>(a) * fSingleStep)); } @@ -721,7 +721,7 @@ void BColorStops::doApplySteps(sal_uInt16 nStepCount) } // always add end color of segment - aNewColorStops.push_back(*aColorR); + aNewColorStops.addStop(*aColorR); // next segment aColorL++; @@ -810,8 +810,8 @@ BGradient::BGradient() , nIntensEnd(100) , nStepCount(0) { - aColorStops.emplace_back(0.0, BColor(0.0, 0.0, 0.0)); // COL_BLACK - aColorStops.emplace_back(1.0, BColor(1.0, 1.0, 1.0)); // COL_WHITE + aColorStops.addStop(0.0, BColor(0.0, 0.0, 0.0)); // COL_BLACK + aColorStops.addStop(1.0, BColor(1.0, 1.0, 1.0)); // COL_WHITE } BGradient::BGradient(const basegfx::BColorStops& rColorStops, css::awt::GradientStyle eTheStyle, @@ -844,7 +844,7 @@ void BGradient::SetColorStops(const basegfx::BColorStops& rSteps) aColorStops = rSteps; aColorStops.sortAndCorrect(); if (aColorStops.empty()) - aColorStops.emplace_back(0.0, basegfx::BColor()); + aColorStops.addStop(0.0, basegfx::BColor()); } namespace @@ -989,7 +989,7 @@ void BGradient::tryToConvertToAxial() { BColorStop aNextStop(std::clamp((*aIter).getStopOffset() * 2.0, 0.0, 1.0), (*aIter).getStopColor()); - aAxialColorStops.push_back(aNextStop); + aAxialColorStops.addStop(aNextStop); ++aIter; } // Axial gradients have outmost color as last color stop. diff --git a/basegfx/source/tools/gradienttools.cxx b/basegfx/source/tools/gradienttools.cxx index bf5060708eaf..d3383953cbe3 100644 --- a/basegfx/source/tools/gradienttools.cxx +++ b/basegfx/source/tools/gradienttools.cxx @@ -344,7 +344,7 @@ namespace basegfx // create fallback synched with existing AlphaStops for (const auto& cand : rAlphaStops) { - rColorStops.emplace_back(cand.getStopOffset(), rSingleColor); + rColorStops.addStop(cand.getStopOffset(), rSingleColor); } } @@ -357,7 +357,7 @@ namespace basegfx // create fallback AlphaStops synched with existing ColorStops using SingleAlpha for (const auto& cand : rColorStops) { - rAlphaStops.emplace_back(cand.getStopOffset(), rSingleAlpha); + rAlphaStops.addStop(cand.getStopOffset(), rSingleAlpha); } // preparations complete, we are done @@ -414,24 +414,24 @@ namespace basegfx if (fTools::less(fColorOff, fAlphaOff)) { // copy color, create alpha - aNewColor.emplace_back(fColorOff, aCurrColor->getStopColor()); - aNewAlpha.emplace_back(fColorOff, rAlphaStops.getInterpolatedBColor(fColorOff, 0, aAlphaStopRange)); + aNewColor.addStop(fColorOff, aCurrColor->getStopColor()); + aNewAlpha.addStop(fColorOff, rAlphaStops.getInterpolatedBColor(fColorOff, 0, aAlphaStopRange)); bRealChange = true; aCurrColor++; } else if (fTools::more(fColorOff, fAlphaOff)) { // copy alpha, create color - aNewColor.emplace_back(fAlphaOff, rColorStops.getInterpolatedBColor(fAlphaOff, 0, aColorStopRange)); - aNewAlpha.emplace_back(fAlphaOff, aCurrAlpha->getStopColor()); + aNewColor.addStop(fAlphaOff, rColorStops.getInterpolatedBColor(fAlphaOff, 0, aColorStopRange)); + aNewAlpha.addStop(fAlphaOff, aCurrAlpha->getStopColor()); bRealChange = true; aCurrAlpha++; } else { // equal: copy both, advance - aNewColor.emplace_back(fColorOff, aCurrColor->getStopColor()); - aNewAlpha.emplace_back(fAlphaOff, aCurrAlpha->getStopColor()); + aNewColor.addStop(fColorOff, aCurrColor->getStopColor()); + aNewAlpha.addStop(fAlphaOff, aCurrAlpha->getStopColor()); aCurrColor++; aCurrAlpha++; } @@ -439,16 +439,16 @@ namespace basegfx else if (bColor) { const double fColorOff(aCurrColor->getStopOffset()); - aNewAlpha.emplace_back(fColorOff, rAlphaStops.getInterpolatedBColor(fColorOff, 0, aAlphaStopRange)); - aNewColor.emplace_back(fColorOff, aCurrColor->getStopColor()); + aNewAlpha.addStop(fColorOff, rAlphaStops.getInterpolatedBColor(fColorOff, 0, aAlphaStopRange)); + aNewColor.addStop(fColorOff, aCurrColor->getStopColor()); bRealChange = true; aCurrColor++; } else if (bAlpha) { const double fAlphaOff(aCurrAlpha->getStopOffset()); - aNewColor.emplace_back(fAlphaOff, rColorStops.getInterpolatedBColor(fAlphaOff, 0, aColorStopRange)); - aNewAlpha.emplace_back(fAlphaOff, aCurrAlpha->getStopColor()); + aNewColor.addStop(fAlphaOff, rColorStops.getInterpolatedBColor(fAlphaOff, 0, aColorStopRange)); + aNewAlpha.addStop(fAlphaOff, aCurrAlpha->getStopColor()); bRealChange = true; aCurrAlpha++; } diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx index 9f0abcd4c146..a24a8b90dffe 100644 --- a/chart2/qa/extras/chart2import.cxx +++ b/chart2/qa/extras/chart2import.cxx @@ -673,12 +673,12 @@ CPPUNIT_TEST_FIXTURE(Chart2ImportTest, testBnc889755) const basegfx::BColorStops aColorStops = model::gradient::getColorStopsFromUno(aTransparence.ColorStops); CPPUNIT_ASSERT_EQUAL(size_t(3), aColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(Color(0x404040), Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 0.070000000000000007)); - CPPUNIT_ASSERT_EQUAL(Color(0x404040), Color(aColorStops[1].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[2].getStopOffset(), 0.080000000000000002)); - CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops[2].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(Color(0x404040), Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 0.070000000000000007)); + CPPUNIT_ASSERT_EQUAL(Color(0x404040), Color(aColorStops.getStopColor(1))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(2), 0.080000000000000002)); + CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops.getStopColor(2))); } CPPUNIT_TEST_FIXTURE(Chart2ImportTest, testBnc882383) @@ -717,10 +717,10 @@ CPPUNIT_TEST_FIXTURE(Chart2ImportTest, testTransparencyGradientValue) // MCGR: Use the whole completely imported transparency gradient to check for correctness CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(Color(0x4d4d4d), Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(Color(0x333333), Color(aColorStops[1].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(Color(0x4d4d4d), Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(Color(0x333333), Color(aColorStops.getStopColor(1))); } CPPUNIT_TEST_FIXTURE(Chart2ImportTest, testSimpleStrictXLSX) diff --git a/cui/source/tabpages/tpgradnt.cxx b/cui/source/tabpages/tpgradnt.cxx index 91342ba7b8a6..f29acef6d3ad 100644 --- a/cui/source/tabpages/tpgradnt.cxx +++ b/cui/source/tabpages/tpgradnt.cxx @@ -671,8 +671,8 @@ basegfx::BColorStops SvxGradientTabPage::createColorStops() } else { - aColorStops.emplace_back(0.0, m_xLbColorFrom->GetSelectEntryColor().getBColor()); - aColorStops.emplace_back(1.0, m_xLbColorTo->GetSelectEntryColor().getBColor()); + aColorStops.addStop(0.0, m_xLbColorFrom->GetSelectEntryColor().getBColor()); + aColorStops.addStop(1.0, m_xLbColorTo->GetSelectEntryColor().getBColor()); } return aColorStops; diff --git a/cui/source/tabpages/tptrans.cxx b/cui/source/tabpages/tptrans.cxx index c52d6a6e6754..6682ff955ca7 100644 --- a/cui/source/tabpages/tptrans.cxx +++ b/cui/source/tabpages/tptrans.cxx @@ -526,8 +526,8 @@ basegfx::BColorStops SvxTransparenceTabPage::createColorStops() } else { - aColorStops.emplace_back(0.0, aStartBColor); - aColorStops.emplace_back(1.0, aEndBColor); + aColorStops.addStop(0.0, aStartBColor); + aColorStops.addStop(1.0, aEndBColor); } return aColorStops; diff --git a/docmodel/source/uno/UnoGradientTools.cxx b/docmodel/source/uno/UnoGradientTools.cxx index 06187c1fac8c..172d4cf2efe8 100644 --- a/docmodel/source/uno/UnoGradientTools.cxx +++ b/docmodel/source/uno/UnoGradientTools.cxx @@ -92,10 +92,9 @@ void fillFromColorStopSequence(basegfx::BColorStops& rColorStops, for (css::awt::ColorStop const& rSourceStop : rUnoColorStopSequence) { - rColorStops.emplace_back(rSourceStop.StopOffset, - basegfx::BColor(rSourceStop.StopColor.Red, - rSourceStop.StopColor.Green, - rSourceStop.StopColor.Blue)); + basegfx::BColor aBColor(rSourceStop.StopColor.Red, rSourceStop.StopColor.Green, + rSourceStop.StopColor.Blue); + rColorStops.addStop(rSourceStop.StopOffset, aBColor); } } } diff --git a/drawinglayer/source/attribute/fillgradientattribute.cxx b/drawinglayer/source/attribute/fillgradientattribute.cxx index 574cd05dbf52..f6f9d9b47dad 100644 --- a/drawinglayer/source/attribute/fillgradientattribute.cxx +++ b/drawinglayer/source/attribute/fillgradientattribute.cxx @@ -64,7 +64,7 @@ namespace drawinglayer::attribute // fallback value if (maColorStops.empty()) { - maColorStops.emplace_back(0.0, basegfx::BColor()); + maColorStops.addStop(0.0, basegfx::BColor()); } } @@ -78,7 +78,7 @@ namespace drawinglayer::attribute mnSteps(0) { // always add a fallback color, see above - maColorStops.emplace_back(0.0, basegfx::BColor()); + maColorStops.addStop(0.0, basegfx::BColor()); } // data read access diff --git a/drawinglayer/source/processor2d/cairopixelprocessor2d.cxx b/drawinglayer/source/processor2d/cairopixelprocessor2d.cxx index 24e29f2b4ae7..0561d9ec27d0 100644 --- a/drawinglayer/source/processor2d/cairopixelprocessor2d.cxx +++ b/drawinglayer/source/processor2d/cairopixelprocessor2d.cxx @@ -2874,12 +2874,12 @@ void CairoPixelProcessor2D::processFillGradientPrimitive2D_linear_axial( // add color stops for (size_t a(0); a < aBColorStops.size(); a++) { - const basegfx::BColorStop& rStop(aBColorStops[a]); + const basegfx::BColorStop& rStop = aBColorStops.getStop(a); const basegfx::BColor aColor(maBColorModifierStack.getModifiedColor(rStop.getStopColor())); if (bHasAlpha) { - const basegfx::BColor aAlpha(aBColorStopsAlpha[a].getStopColor()); + const basegfx::BColor aAlpha(aBColorStopsAlpha.getStopColor(a)); cairo_pattern_add_color_stop_rgba(pPattern, rStop.getStopOffset(), aColor.getRed(), aColor.getGreen(), aColor.getBlue(), 1.0 - aAlpha.luminance()); @@ -3276,12 +3276,12 @@ void CairoPixelProcessor2D::processFillGradientPrimitive2D_radial_elliptical( // add color stops for (size_t a(0); a < aBColorStops.size(); a++) { - const basegfx::BColorStop& rStop(aBColorStops[a]); + const basegfx::BColorStop& rStop = aBColorStops.getStop(a); const basegfx::BColor aColor(maBColorModifierStack.getModifiedColor(rStop.getStopColor())); if (bHasAlpha) { - const basegfx::BColor aAlpha(aBColorStopsAlpha[a].getStopColor()); + const basegfx::BColor aAlpha(aBColorStopsAlpha.getStopColor(a)); cairo_pattern_add_color_stop_rgba(pPattern, rStop.getStopOffset(), aColor.getRed(), aColor.getGreen(), aColor.getBlue(), 1.0 - aAlpha.luminance()); @@ -3652,7 +3652,7 @@ void CairoPixelProcessor2D::processPolyPolygonAlphaGradientPrimitive2D( // create ColorStops at same stops but single color aColorStops.reserve(rAlphaStops.size()); for (const auto& entry : rAlphaStops) - aColorStops.emplace_back(entry.getStopOffset(), aFillColor); + aColorStops.addStop(entry.getStopOffset(), aFillColor); // create FillGradient using that single-color ColorStops const attribute::FillGradientAttribute aFillGradient( diff --git a/drawinglayer/source/texture/texture.cxx b/drawinglayer/source/texture/texture.cxx index 48f60738677c..cb808ff96ac9 100644 --- a/drawinglayer/source/texture/texture.cxx +++ b/drawinglayer/source/texture/texture.cxx @@ -152,7 +152,7 @@ namespace drawinglayer::texture // created gradient geometry. // The simplest way is to temporarily add an entry to the local // ColorStops for this at 1.0 (using same color) - mnColorStops.emplace_back(1.0, mnColorStops.back().getStopColor()); + mnColorStops.addStop(1.0, mnColorStops.back().getStopColor()); } // prepare unit range transform @@ -224,7 +224,7 @@ namespace drawinglayer::texture if (bPenultimateUsed) { // correct temporary change - mnColorStops.pop_back(); + mnColorStops.removeLastStop(); } } @@ -300,7 +300,7 @@ namespace drawinglayer::texture if (bPenultimateUsed) { // temporarily add a ColorStop entry - mnColorStops.emplace_back(1.0, mnColorStops.back().getStopColor()); + mnColorStops.addStop(1.0, mnColorStops.back().getStopColor()); } // prepare unit range transform @@ -357,7 +357,7 @@ namespace drawinglayer::texture if (bPenultimateUsed) { // correct temporary change - mnColorStops.pop_back(); + mnColorStops.removeLastStop(); } } @@ -420,7 +420,7 @@ namespace drawinglayer::texture if (bPenultimateUsed) { // temporarily add a ColorStop entry - mnColorStops.emplace_back(1.0, mnColorStops.back().getStopColor()); + mnColorStops.addStop(1.0, mnColorStops.back().getStopColor()); } // outer loop over ColorStops, each is from cs_l to cs_r @@ -461,7 +461,7 @@ namespace drawinglayer::texture if (bPenultimateUsed) { // correct temporary change - mnColorStops.pop_back(); + mnColorStops.removeLastStop(); } } @@ -523,7 +523,7 @@ namespace drawinglayer::texture if (bPenultimateUsed) { // temporarily add a ColorStop entry - mnColorStops.emplace_back(1.0, mnColorStops.back().getStopColor()); + mnColorStops.addStop(1.0, mnColorStops.back().getStopColor()); } // prepare vars dependent on aspect ratio @@ -571,7 +571,7 @@ namespace drawinglayer::texture if (bPenultimateUsed) { // correct temporary change - mnColorStops.pop_back(); + mnColorStops.removeLastStop(); } } @@ -633,7 +633,7 @@ namespace drawinglayer::texture if (bPenultimateUsed) { // temporarily add a ColorStop entry - mnColorStops.emplace_back(1.0, mnColorStops.back().getStopColor()); + mnColorStops.addStop(1.0, mnColorStops.back().getStopColor()); } // outer loop over ColorStops, each is from cs_l to cs_r @@ -674,7 +674,7 @@ namespace drawinglayer::texture if (bPenultimateUsed) { // correct temporary change - mnColorStops.pop_back(); + mnColorStops.removeLastStop(); } } @@ -736,7 +736,7 @@ namespace drawinglayer::texture if (bPenultimateUsed) { // temporarily add a ColorStop entry - mnColorStops.emplace_back(1.0, mnColorStops.back().getStopColor()); + mnColorStops.addStop(1.0, mnColorStops.back().getStopColor()); } // prepare vars dependent on aspect ratio @@ -784,7 +784,7 @@ namespace drawinglayer::texture if (bPenultimateUsed) { // correct temporary change - mnColorStops.pop_back(); + mnColorStops.removeLastStop(); } } diff --git a/drawinglayer/source/tools/primitive2dxmldump.cxx b/drawinglayer/source/tools/primitive2dxmldump.cxx index b36116625bdb..641a9cd71f23 100644 --- a/drawinglayer/source/tools/primitive2dxmldump.cxx +++ b/drawinglayer/source/tools/primitive2dxmldump.cxx @@ -312,15 +312,14 @@ void writeSdrFillAttribute(::tools::XmlWriter& rWriter, for (size_t a(0); a < rColorStops.size(); a++) { if (0 == a) - rWriter.attribute("startColor", - convertColorToString(rColorStops[a].getStopColor())); + rWriter.attribute("startColor", convertColorToString(rColorStops.getStopColor(a))); else if (rColorStops.size() == a + 1) - rWriter.attribute("endColor", convertColorToString(rColorStops[a].getStopColor())); + rWriter.attribute("endColor", convertColorToString(rColorStops.getStopColor(a))); else { rWriter.startElement("colorStop"); - rWriter.attribute("stopOffset", rColorStops[a].getStopOffset()); - rWriter.attribute("stopColor", convertColorToString(rColorStops[a].getStopColor())); + rWriter.attribute("stopOffset", rColorStops.getStopOffset(a)); + rWriter.attribute("stopColor", convertColorToString(rColorStops.getStopColor(a))); rWriter.endElement(); } } diff --git a/filter/source/svg/svgwriter.cxx b/filter/source/svg/svgwriter.cxx index 65e1a38e842f..196e9a0455a0 100644 --- a/filter/source/svg/svgwriter.cxx +++ b/filter/source/svg/svgwriter.cxx @@ -2433,8 +2433,8 @@ void SVGActionWriter::ImplWriteGradientLinear( const tools::PolyPolygon& rPolyPo else { // else create color stops with 'old' start/endColor - aColorStops.emplace_back(0.0, rGradient.GetStartColor().getBColor()); - aColorStops.emplace_back(1.0, rGradient.GetEndColor().getBColor()); + aColorStops.addStop(0.0, rGradient.GetStartColor().getBColor()); + aColorStops.addStop(1.0, rGradient.GetEndColor().getBColor()); } // create a basegfx::BGradient with the info to be able to directly @@ -3503,7 +3503,7 @@ void SVGActionWriter::ImplWriteActions( const GDIMetaFile& rMtf, aMemStm.ReadDouble(fG); aMemStm.ReadDouble(fB); - aColorStops.emplace_back(fOff, basegfx::BColor(fR, fG, fB)); + aColorStops.addStop(fOff, basegfx::BColor(fR, fG, fB)); } // export with real Color Stops diff --git a/include/basegfx/utils/bgradient.hxx b/include/basegfx/utils/bgradient.hxx index 2ac8eba41d61..2bafcc7f9fc1 100644 --- a/include/basegfx/utils/bgradient.hxx +++ b/include/basegfx/utils/bgradient.hxx @@ -96,27 +96,29 @@ public: is read-only, this can/will be guaranteed by forcing/checking this in the constructor, see ::FillGradientAttribute */ -class BASEGFX_DLLPUBLIC BColorStops final : public std::vector<BColorStop> +class BASEGFX_DLLPUBLIC BColorStops final { +private: + std::vector<BColorStop> maStops; + public: - explicit BColorStops() - : vector() - { - } - BColorStops(const BColorStops& other) - : vector(other) + typedef typename std::vector<BColorStop>::size_type size_type; + typedef typename std::vector<BColorStop>::iterator iterator; + typedef typename std::vector<BColorStop>::const_iterator const_iterator; + typedef typename std::vector<BColorStop>::const_reverse_iterator const_reverse_iterator; + + explicit BColorStops() {} + + BColorStops(const BColorStops& rOther) + : maStops(rOther.maStops) { } - BColorStops(BColorStops&& other) noexcept - : vector(std::move(other)) + BColorStops(BColorStops&& rOther) noexcept + : maStops(std::move(rOther.maStops)) { } BColorStops(std::initializer_list<BColorStop> init) - : vector(init) - { - } - BColorStops(const_iterator first, const_iterator last) - : vector(first, last) + : maStops(init) { } @@ -124,17 +126,43 @@ public: // BColorStops for StartColor @0.0 & EndColor @1.0 BColorStops(const BColor& rStart, const BColor& rEnd); - BColorStops& operator=(const BColorStops& r) + BColorStops& operator=(const BColorStops& rOther) { - vector::operator=(r); + maStops = rOther.maStops; return *this; } - BColorStops& operator=(BColorStops&& r) noexcept + BColorStops& operator=(BColorStops&& rOther) noexcept { - vector::operator=(std::move(r)); + maStops = std::move(rOther.maStops); return *this; } + void addStop(double fOffset, BColor aColor) { maStops.emplace_back(fOffset, aColor); } + + void addStop(BColorStop const& aColorStop) { maStops.push_back(aColorStop); } + + BColorStop const& getStop(size_t i) const { return maStops[i]; } + double getStopOffset(size_t i) const { return maStops[i].getStopOffset(); } + BColor const& getStopColor(size_t i) const { return maStops[i].getStopColor(); } + + void removeLastStop() { return maStops.pop_back(); } + + void reserve(size_t nNumber) { maStops.reserve(nNumber); } + void clear() { maStops.clear(); } + bool empty() const { return maStops.empty(); } + size_type size() const { return maStops.size(); } + iterator begin() { return maStops.begin(); } + iterator end() { return maStops.end(); } + const_iterator begin() const { return maStops.begin(); } + const_iterator end() const { return maStops.end(); } + const_reverse_iterator rbegin() const { return maStops.rbegin(); } + const_reverse_iterator rend() const { return maStops.rend(); } + const BColorStop& front() const { return maStops.front(); } + const BColorStop& back() const { return maStops.back(); } + BColorStop& front() { return maStops.front(); } + BColorStop& back() { return maStops.back(); } + bool operator==(BColorStops const& rOther) const { return maStops == rOther.maStops; } + // helper data struct to support buffering entries in // gradient texture mapping, see usages for more info struct BColorStopRange diff --git a/oox/qa/unit/drawingml.cxx b/oox/qa/unit/drawingml.cxx index 81cd41de8048..b12922532d3d 100644 --- a/oox/qa/unit/drawingml.cxx +++ b/oox/qa/unit/drawingml.cxx @@ -199,16 +199,16 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testGradientMultiStepTransparency) = model::gradient::getColorStopsFromUno(aTransparence.ColorStops); CPPUNIT_ASSERT_EQUAL(size_t(5), aColorStops.size()); - CPPUNIT_ASSERT_DOUBLES_EQUAL(0.00, aColorStops[0].getStopOffset(), 1E-3); - CPPUNIT_ASSERT_DOUBLES_EQUAL(0.19, aColorStops[1].getStopOffset(), 1E-3); - CPPUNIT_ASSERT_DOUBLES_EQUAL(0.35, aColorStops[2].getStopOffset(), 1E-3); - CPPUNIT_ASSERT_DOUBLES_EQUAL(0.58, aColorStops[3].getStopOffset(), 1E-3); - CPPUNIT_ASSERT_DOUBLES_EQUAL(1.00, aColorStops[4].getStopOffset(), 1E-3); - CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT_EQUAL(Color(0x9e9e9e), Color(aColorStops[1].getStopColor())); - CPPUNIT_ASSERT_EQUAL(Color(0x363636), Color(aColorStops[2].getStopColor())); - CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops[3].getStopColor())); - CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops[4].getStopColor())); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.00, aColorStops.getStopOffset(0), 1E-3); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.19, aColorStops.getStopOffset(1), 1E-3); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.35, aColorStops.getStopOffset(2), 1E-3); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.58, aColorStops.getStopOffset(3), 1E-3); + CPPUNIT_ASSERT_DOUBLES_EQUAL(1.00, aColorStops.getStopOffset(4), 1E-3); + CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT_EQUAL(Color(0x9e9e9e), Color(aColorStops.getStopColor(1))); + CPPUNIT_ASSERT_EQUAL(Color(0x363636), Color(aColorStops.getStopColor(2))); + CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops.getStopColor(3))); + CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops.getStopColor(4))); } CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testShapeTextAlignment) diff --git a/oox/qa/unit/shape.cxx b/oox/qa/unit/shape.cxx index 13bc7a1a086e..fd1ac1faca0b 100644 --- a/oox/qa/unit/shape.cxx +++ b/oox/qa/unit/shape.cxx @@ -656,10 +656,10 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, testWriterFontwork3) aColorStops = model::gradient::getColorStopsFromUno(aGradient.ColorStops); CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(COL_LIGHTBLUE, Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(Color(0xf79646), Color(aColorStops[1].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(COL_LIGHTBLUE, Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(Color(0xf79646), Color(aColorStops.getStopColor(1))); CPPUNIT_ASSERT_EQUAL(sal_Int16(690), aGradient.Angle); CPPUNIT_ASSERT_EQUAL(sal_Int16(0), aGradient.XOffset); @@ -680,10 +680,10 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, testWriterFontwork3) aColorStops = model::gradient::getColorStopsFromUno(aGradient.ColorStops); CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size()); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[0].getStopOffset(), 0.40000000000000002)); - CPPUNIT_ASSERT_EQUAL(Color(0xf79646), Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(COL_LIGHTBLUE, Color(aColorStops[1].getStopColor())); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(0), 0.40000000000000002)); + CPPUNIT_ASSERT_EQUAL(Color(0xf79646), Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(COL_LIGHTBLUE, Color(aColorStops.getStopColor(1))); CPPUNIT_ASSERT_EQUAL(sal_Int16(900), aGradient.Angle); CPPUNIT_ASSERT_EQUAL(sal_Int16(50), aGradient.XOffset); @@ -704,10 +704,10 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, testWriterFontwork3) aColorStops = model::gradient::getColorStopsFromUno(aGradient.ColorStops); CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(Color(0xf79646), Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(COL_LIGHTBLUE, Color(aColorStops[1].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(Color(0xf79646), Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(COL_LIGHTBLUE, Color(aColorStops.getStopColor(1))); CPPUNIT_ASSERT_EQUAL(sal_Int16(900), aGradient.Angle); CPPUNIT_ASSERT_EQUAL(sal_Int16(100), aGradient.XOffset); @@ -828,10 +828,10 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, testImportWordArtGradient) aColorStops = model::gradient::getColorStopsFromUno(aGradient.ColorStops); CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(Color(0xffc000), Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(Color(0xc00000), Color(aColorStops[1].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(Color(0xffc000), Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(Color(0xc00000), Color(aColorStops.getStopColor(1))); CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_LINEAR, aGradient.Style); CPPUNIT_ASSERT_EQUAL(sal_Int16(690), aGradient.Angle); @@ -860,10 +860,10 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, testImportWordArtGradient) aColorStops = model::gradient::getColorStopsFromUno(aGradient.ColorStops); CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(Color(0x0083e0), Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(Color(0xe6e600), Color(aColorStops[1].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(Color(0x0083e0), Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(Color(0xe6e600), Color(aColorStops.getStopColor(1))); CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_RADIAL, aGradient.Style); CPPUNIT_ASSERT_EQUAL(sal_Int16(50), aGradient.XOffset); @@ -875,10 +875,10 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, testImportWordArtGradient) // Transparency is encoded in gray color. CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(COL_GRAY7, Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(Color(0x4d4d4d), Color(aColorStops[1].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(COL_GRAY7, Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(Color(0x4d4d4d), Color(aColorStops.getStopColor(1))); CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_RADIAL, aGradient.Style); CPPUNIT_ASSERT_EQUAL(sal_Int16(50), aGradient.XOffset); @@ -912,10 +912,10 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, testImportWordArtGradient) aColorStops = model::gradient::getColorStopsFromUno(aGradient.ColorStops); CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(Color(0x4472c4), Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(Color(0x4472c4), Color(aColorStops[1].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(Color(0x4472c4), Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(Color(0x4472c4), Color(aColorStops.getStopColor(1))); CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_RECT, aGradient.Style); CPPUNIT_ASSERT_EQUAL(sal_Int16(100), aGradient.XOffset); @@ -927,10 +927,10 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, testImportWordArtGradient) // Transparency is encoded in gray color. CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops[1].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops.getStopColor(1))); CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_RECT, aGradient.Style); CPPUNIT_ASSERT_EQUAL(sal_Int16(100), aGradient.XOffset); diff --git a/oox/source/drawingml/fillproperties.cxx b/oox/source/drawingml/fillproperties.cxx index 076910558c5e..065c616911d3 100644 --- a/oox/source/drawingml/fillproperties.cxx +++ b/oox/source/drawingml/fillproperties.cxx @@ -477,7 +477,7 @@ void FillProperties::pushToPropMap(ShapePropertyMap& rPropMap, const GraphicHelp for (const auto& rCandidate : maGradientProps.maGradientStops) { const ::Color aColor(rCandidate.second.getColor(rGraphicHelper, nPhClr)); - aColorStops.emplace_back(rCandidate.first, aColor.getBColor()); + aColorStops.addStop(rCandidate.first, aColor.getBColor()); bContainsTransparency = bContainsTransparency || rCandidate.second.hasTransparency(); } @@ -487,7 +487,7 @@ void FillProperties::pushToPropMap(ShapePropertyMap& rPropMap, const GraphicHelp for (const auto& rCandidate : maGradientProps.maGradientStops) { const double fTrans(rCandidate.second.getTransparency() * (1.0/100.0)); - aTransparencyStops.emplace_back(rCandidate.first, basegfx::BColor(fTrans, fTrans, fTrans)); + aTransparencyStops.addStop(rCandidate.first, basegfx::BColor(fTrans, fTrans, fTrans)); } } diff --git a/sc/qa/unit/subsequent_filters_test3.cxx b/sc/qa/unit/subsequent_filters_test3.cxx index 11aaaae11bb7..4d26116f4c0a 100644 --- a/sc/qa/unit/subsequent_filters_test3.cxx +++ b/sc/qa/unit/subsequent_filters_test3.cxx @@ -1903,10 +1903,10 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest3, testTdf129789) const basegfx::BColorStops& rColorStops(rGradientItem.GetGradientValue().GetColorStops()); CPPUNIT_ASSERT_EQUAL(size_t(2), rColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, rColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(Color(0xdde8cb), Color(rColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(rColorStops[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(Color(0xffd7d7), Color(rColorStops[1].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, rColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(Color(0xdde8cb), Color(rColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(rColorStops.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(Color(0xffd7d7), Color(rColorStops.getStopColor(1))); SdrCaptionObj* const pCaptionH9 = checkCaption(*pDoc, ScAddress(7, 8, 0), false); @@ -1917,10 +1917,10 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest3, testTdf129789) const basegfx::BColorStops& rColorStops2(rGradientItem2.GetGradientValue().GetColorStops()); CPPUNIT_ASSERT_EQUAL(size_t(2), rColorStops2.size()); - CPPUNIT_ASSERT_EQUAL(0.0, rColorStops2[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(Color(0xdde8cb), Color(rColorStops2[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(rColorStops2[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(Color(0xffd7d7), Color(rColorStops2[1].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, rColorStops2.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(Color(0xdde8cb), Color(rColorStops2.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(rColorStops2.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(Color(0xffd7d7), Color(rColorStops2.getStopColor(1))); } { diff --git a/sd/qa/unit/export-tests-ooxml1.cxx b/sd/qa/unit/export-tests-ooxml1.cxx index 4d6ff232b5f7..a95647297378 100644 --- a/sd/qa/unit/export-tests-ooxml1.cxx +++ b/sd/qa/unit/export-tests-ooxml1.cxx @@ -1264,12 +1264,12 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf94238) // 'Expected: 0, Actual : 10592673', i.e. the start color of the gradient // was incorrect. CPPUNIT_ASSERT_EQUAL(size_t(3), aColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 0.39000000000000001)); - CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops[1].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[2].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(Color(0x8b8b8b), Color(aColorStops[2].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 0.39000000000000001)); + CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops.getStopColor(1))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(2), 1.0)); + CPPUNIT_ASSERT_EQUAL(Color(0x8b8b8b), Color(aColorStops.getStopColor(2))); } CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testPictureTransparency) @@ -1523,12 +1523,12 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf128345GradientAxial) = model::gradient::getColorStopsFromUno(aTransparenceGradient.ColorStops); CPPUNIT_ASSERT_EQUAL(size_t(3), aColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 0.5)); - CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops[1].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[2].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops[2].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 0.5)); + CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops.getStopColor(1))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(2), 1.0)); + CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops.getStopColor(2))); CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_LINEAR, aTransparenceGradient.Style); } diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx index 9678eabb27ee..d009c43cde0f 100644 --- a/sd/qa/unit/export-tests-ooxml2.cxx +++ b/sd/qa/unit/export-tests-ooxml2.cxx @@ -1021,10 +1021,10 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest2, testTdf105739) = model::gradient::getColorStopsFromUno(aFillGradient.ColorStops); CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(COL_LIGHTRED, Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(Color(0x00b050), Color(aColorStops[1].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(COL_LIGHTRED, Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(Color(0x00b050), Color(aColorStops.getStopColor(1))); CPPUNIT_ASSERT_EQUAL(int(awt::GradientStyle_LINEAR), static_cast<int>(aFillGradient.Style)); } } diff --git a/sd/qa/unit/export-tests-ooxml4.cxx b/sd/qa/unit/export-tests-ooxml4.cxx index 99c8b1fcb3c4..cb79b15a30b3 100644 --- a/sd/qa/unit/export-tests-ooxml4.cxx +++ b/sd/qa/unit/export-tests-ooxml4.cxx @@ -382,10 +382,10 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testTdf127372) = model::gradient::getColorStopsFromUno(aTransparenceGradient.ColorStops); CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops[1].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops.getStopColor(1))); } CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testTdf127379) @@ -415,10 +415,10 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testTdf127379) = model::gradient::getColorStopsFromUno(aGradient.ColorStops); CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(COL_LIGHTRED, Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(Color(0x2a6099), Color(aColorStops[1].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(COL_LIGHTRED, Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(Color(0x2a6099), Color(aColorStops.getStopColor(1))); } CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testTdf98603) diff --git a/sd/qa/unit/misc-tests.cxx b/sd/qa/unit/misc-tests.cxx index df5ba7d5940f..bcfbb55677a0 100644 --- a/sd/qa/unit/misc-tests.cxx +++ b/sd/qa/unit/misc-tests.cxx @@ -368,10 +368,10 @@ void SdMiscTest::testFillGradient() = model::gradient::getColorStopsFromUno(aGradient2.ColorStops); CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(COL_LIGHTRED, Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(COL_LIGHTGREEN, Color(aColorStops[1].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(COL_LIGHTRED, Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(COL_LIGHTGREEN, Color(aColorStops.getStopColor(1))); } void SdMiscTest::testTdf44774() diff --git a/sd/qa/unit/uiimpress.cxx b/sd/qa/unit/uiimpress.cxx index 4518a01bffd8..98b1cdb01974 100644 --- a/sd/qa/unit/uiimpress.cxx +++ b/sd/qa/unit/uiimpress.cxx @@ -1633,10 +1633,10 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testPageFillGradient) const basegfx::BColorStops& rColorStops(aGradient.GetColorStops()); CPPUNIT_ASSERT_EQUAL(size_t(2), rColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, rColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(COL_LIGHTRED, Color(rColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(rColorStops[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(COL_LIGHTBLUE, Color(rColorStops[1].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, rColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(COL_LIGHTRED, Color(rColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(rColorStops.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(COL_LIGHTBLUE, Color(rColorStops.getStopColor(1))); } CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf134053) diff --git a/sd/source/ui/sidebar/SlideBackground.cxx b/sd/source/ui/sidebar/SlideBackground.cxx index 98b7de0efcf3..ed852ec22b20 100644 --- a/sd/source/ui/sidebar/SlideBackground.cxx +++ b/sd/source/ui/sidebar/SlideBackground.cxx @@ -1301,8 +1301,8 @@ basegfx::BColorStops SlideBackground::createColorStops() } else { - aColorStops.emplace_back(0.0, mxFillGrad1->GetSelectEntryColor().getBColor()); - aColorStops.emplace_back(1.0, mxFillGrad2->GetSelectEntryColor().getBColor()); + aColorStops.addStop(0.0, mxFillGrad1->GetSelectEntryColor().getBColor()); + aColorStops.addStop(1.0, mxFillGrad2->GetSelectEntryColor().getBColor()); } return aColorStops; diff --git a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx index b86c3f1d60fc..373ad4b20397 100644 --- a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx +++ b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx @@ -1377,15 +1377,13 @@ basegfx::BColorStops AreaPropertyPanelBase::createColorStops() if (maColorStops.size() >= 2) { aColorStops = maColorStops; - aColorStops.front() = basegfx::BColorStop(maColorStops.front().getStopOffset(), - mxLbFillGradFrom->GetSelectEntryColor().getBColor()); - aColorStops.back() = basegfx::BColorStop(maColorStops.back().getStopOffset(), - mxLbFillGradTo->GetSelectEntryColor().getBColor()); + aColorStops.front() = basegfx::BColorStop(maColorStops.front().getStopOffset(), mxLbFillGradFrom->GetSelectEntryColor().getBColor()); + aColorStops.back() = basegfx::BColorStop(maColorStops.back().getStopOffset(), mxLbFillGradTo->GetSelectEntryColor().getBColor()); } else { - aColorStops.emplace_back(0.0, mxLbFillGradFrom->GetSelectEntryColor().getBColor()); - aColorStops.emplace_back(1.0, mxLbFillGradTo->GetSelectEntryColor().getBColor()); + aColorStops.addStop(0.0, mxLbFillGradFrom->GetSelectEntryColor().getBColor()); + aColorStops.addStop(1.0, mxLbFillGradTo->GetSelectEntryColor().getBColor()); } return aColorStops; diff --git a/svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx b/svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx index 4b5ed0eda076..d734d1062850 100644 --- a/svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx +++ b/svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx @@ -142,13 +142,13 @@ void AreaTransparencyGradientPopup::ExecuteValueModify() if (maColorStops.size() >= 2) { aColorStops = maColorStops; - aColorStops.front() = basegfx::BColorStop(maColorStops.front().getStopOffset(), aStartBColor); + aColorStops.front() = basegfx::BColorStop(maColorStops.front().getStopOffset(), aStartBColor); aColorStops.back() = basegfx::BColorStop(maColorStops.back().getStopOffset(), aEndBColor); } else { - aColorStops.emplace_back(0.0, aStartBColor); - aColorStops.emplace_back(1.0, aEndBColor); + aColorStops.addStop(0.0, aStartBColor); + aColorStops.addStop(1.0, aEndBColor); } basegfx::BGradient aTmpGradient( diff --git a/sw/qa/extras/odfexport/odfexport.cxx b/sw/qa/extras/odfexport/odfexport.cxx index bbfbd3e1b505..196984dadded 100644 --- a/sw/qa/extras/odfexport/odfexport.cxx +++ b/sw/qa/extras/odfexport/odfexport.cxx @@ -797,10 +797,10 @@ DECLARE_ODFEXPORT_TEST(testTextframeGradient, "textframe-gradient.odt") basegfx::BColorStops aColorStops = model::gradient::getColorStopsFromUno(aGradient.ColorStops); CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(Color(0xc0504d), Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(Color(0xd99594), Color(aColorStops[1].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(Color(0xc0504d), Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(Color(0xd99594), Color(aColorStops.getStopColor(1))); CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_AXIAL, aGradient.Style); xFrame.set(xIndexAccess->getByIndex(1), uno::UNO_QUERY); @@ -811,10 +811,10 @@ DECLARE_ODFEXPORT_TEST(testTextframeGradient, "textframe-gradient.odt") aColorStops = model::gradient::getColorStopsFromUno(aGradient.ColorStops); CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(COL_GRAY7, Color(aColorStops[1].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(COL_GRAY7, Color(aColorStops.getStopColor(1))); CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_AXIAL, aGradient.Style); } diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport7.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport7.cxx index 936c07ef350f..40c304414c43 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport7.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport7.cxx @@ -656,10 +656,10 @@ DECLARE_OOXMLEXPORT_TEST(testTdf77219_backgroundShape, "tdf77219_backgroundShape basegfx::BColorStops aColorStops = model::gradient::getColorStopsFromUno(aGradient.ColorStops); CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size()); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset()); - CPPUNIT_ASSERT_EQUAL(Color(0x5f497a), Color(aColorStops[0].getStopColor())); - CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 1.0)); - CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops[1].getStopColor())); + CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0)); + CPPUNIT_ASSERT_EQUAL(Color(0x5f497a), Color(aColorStops.getStopColor(0))); + CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0)); + CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops.getStopColor(1))); CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_LINEAR, aGradient.Style); // without the fix, this was 1350 (visually the colors were reversed) CPPUNIT_ASSERT_EQUAL(sal_Int16(3150), aGradient.Angle); diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx b/sw/source/filter/ww8/rtfattributeoutput.cxx index aef4f081ca8f..45c30e3a3ac1 100644 --- a/sw/source/filter/ww8/rtfattributeoutput.cxx +++ b/sw/source/filter/ww8/rtfattributeoutput.cxx @@ -4197,7 +4197,7 @@ void RtfAttributeOutput::FormatFillGradient(const XFillGradientItem& rFillGradie // assume what was formally GradientStyle_AXIAL, see above and also refer to // FillModel::pushToPropMap 'fFocus' value and usage. // The 2nd color is the in-between color, use it - aMSOEndColor = Color(rColorStops[1].getStopColor()); + aMSOEndColor = Color(rColorStops.getStopColor(1)); } m_aFlyProperties.push_back(std::make_pair<OString, OString>( diff --git a/vcl/source/filter/svm/SvmReader.cxx b/vcl/source/filter/svm/SvmReader.cxx index 96239da18cbc..cf1ca8491629 100644 --- a/vcl/source/filter/svm/SvmReader.cxx +++ b/vcl/source/filter/svm/SvmReader.cxx @@ -1158,7 +1158,7 @@ rtl::Reference<MetaAction> SvmReader::FloatTransparentHandler(ImplMetaReadData* mrStream.ReadDouble(fG); mrStream.ReadDouble(fB); - aColorStops.emplace_back(fOff, basegfx::BColor(fR, fG, fB)); + aColorStops.addStop(fOff, basegfx::BColor(fR, fG, fB)); } }
