diff options
author | Noel Grandin <noel@peralex.com> | 2015-12-10 12:27:50 +0200 |
---|---|---|
committer | Noel Grandin <noel@peralex.com> | 2015-12-11 10:11:23 +0200 |
commit | 58d8d8ac67aa9b907f1304a48efa0f7a473d9de4 (patch) | |
tree | a0d88f3c8a57ce9d08d97c803ea0ec83a3dd8b62 /svx/source/svdraw | |
parent | 44ad6aca0dee29841ec7cd15c6d0ad9b3dcaedbe (diff) |
tdf#69977: uno::Sequence is expensive
when used as a mutable data-structure. Plain std::vector halves the time
taken to display the chart dialog
Create a class to represent the std::vector we are going to be passing
around, and move some of the utility methods into it to make the code
prettier.
Also create an optimised append(&&) method for the common case of
appending small temporaries.
Change-Id: I7f5b43fb4a8a84e40e6a52fcb7e9f974091b4485
Diffstat (limited to 'svx/source/svdraw')
-rw-r--r-- | svx/source/svdraw/charthelper.cxx | 12 | ||||
-rw-r--r-- | svx/source/svdraw/sdrhittesthelper.cxx | 4 | ||||
-rw-r--r-- | svx/source/svdraw/svdcrtv.cxx | 2 | ||||
-rw-r--r-- | svx/source/svdraw/svddrgmt.cxx | 59 | ||||
-rw-r--r-- | svx/source/svdraw/svdedxv.cxx | 2 | ||||
-rw-r--r-- | svx/source/svdraw/svdhdl.cxx | 6 | ||||
-rw-r--r-- | svx/source/svdraw/svdobj.cxx | 18 | ||||
-rw-r--r-- | svx/source/svdraw/svdograf.cxx | 4 | ||||
-rw-r--r-- | svx/source/svdraw/svdotextdecomposition.cxx | 30 | ||||
-rw-r--r-- | svx/source/svdraw/svdotextpathdecomposition.cxx | 30 | ||||
-rw-r--r-- | svx/source/svdraw/svdotxtr.cxx | 4 | ||||
-rw-r--r-- | svx/source/svdraw/svdpage.cxx | 4 | ||||
-rw-r--r-- | svx/source/svdraw/svdpntv.cxx | 2 | ||||
-rw-r--r-- | svx/source/svdraw/svdxcgv.cxx | 7 |
14 files changed, 89 insertions, 95 deletions
diff --git a/svx/source/svdraw/charthelper.cxx b/svx/source/svdraw/charthelper.cxx index 643a2be5cf1e..bba7151c2ffe 100644 --- a/svx/source/svdraw/charthelper.cxx +++ b/svx/source/svdraw/charthelper.cxx @@ -92,11 +92,11 @@ void ChartHelper::updateChart( const uno::Reference< ::frame::XModel >& rXModel, } } -drawinglayer::primitive2d::Primitive2DSequence ChartHelper::tryToGetChartContentAsPrimitive2DSequence( +drawinglayer::primitive2d::Primitive2DContainer ChartHelper::tryToGetChartContentAsPrimitive2DSequence( const uno::Reference< ::frame::XModel >& rXModel, basegfx::B2DRange& rRange) { - drawinglayer::primitive2d::Primitive2DSequence aRetval; + drawinglayer::primitive2d::Primitive2DContainer aRetval; if (!rXModel.is()) return aRetval; @@ -129,9 +129,7 @@ drawinglayer::primitive2d::Primitive2DSequence ChartHelper::tryToGetChartContent xShape, aParams)); - drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence( - aRetval, - aNew); + aRetval.append(aNew); } } } @@ -141,11 +139,11 @@ drawinglayer::primitive2d::Primitive2DSequence ChartHelper::tryToGetChartContent OSL_ENSURE(false, "Unexpected exception!"); } - if(aRetval.hasElements()) + if(!aRetval.empty()) { const drawinglayer::geometry::ViewInformation2D aViewInformation2D; - rRange = drawinglayer::primitive2d::getB2DRangeFromPrimitive2DSequence(aRetval, aViewInformation2D); + rRange = aRetval.getB2DRange(aViewInformation2D); } return aRetval; diff --git a/svx/source/svdraw/sdrhittesthelper.cxx b/svx/source/svdraw/sdrhittesthelper.cxx index 4ea659954b60..9a01cb62c181 100644 --- a/svx/source/svdraw/sdrhittesthelper.cxx +++ b/svx/source/svdraw/sdrhittesthelper.cxx @@ -137,9 +137,9 @@ bool ViewObjectContactPrimitiveHit( { // get primitive sequence sdr::contact::DisplayInfo aDisplayInfo; - const drawinglayer::primitive2d::Primitive2DSequence& rSequence(rVOC.getPrimitive2DSequence(aDisplayInfo)); + const drawinglayer::primitive2d::Primitive2DContainer& rSequence(rVOC.getPrimitive2DSequence(aDisplayInfo)); - if(rSequence.hasElements()) + if(!rSequence.empty()) { // create a HitTest processor const drawinglayer::geometry::ViewInformation2D& rViewInformation2D = rVOC.GetObjectContact().getViewInformation2D(); diff --git a/svx/source/svdraw/svdcrtv.cxx b/svx/source/svdraw/svdcrtv.cxx index 89f7c3fb3772..d9140bf7a8b6 100644 --- a/svx/source/svdraw/svdcrtv.cxx +++ b/svx/source/svdraw/svdcrtv.cxx @@ -153,7 +153,7 @@ void ImpSdrCreateViewExtraData::CreateAndShowOverlay(const SdrCreateView& rView, if(pObject) { const sdr::contact::ViewContact& rVC = pObject->GetViewContact(); - const drawinglayer::primitive2d::Primitive2DSequence aSequence = rVC.getViewIndependentPrimitive2DSequence(); + const drawinglayer::primitive2d::Primitive2DContainer aSequence = rVC.getViewIndependentPrimitive2DSequence(); sdr::overlay::OverlayObject* pNew = new sdr::overlay::OverlayPrimitive2DSequenceObject(aSequence); xOverlayManager->add(*pNew); diff --git a/svx/source/svdraw/svddrgmt.cxx b/svx/source/svdraw/svddrgmt.cxx index bff9a6c0aead..182a708bdc1e 100644 --- a/svx/source/svdraw/svddrgmt.cxx +++ b/svx/source/svdraw/svddrgmt.cxx @@ -96,9 +96,9 @@ SdrDragEntryPolyPolygon::~SdrDragEntryPolyPolygon() { } -drawinglayer::primitive2d::Primitive2DSequence SdrDragEntryPolyPolygon::createPrimitive2DSequenceInCurrentState(SdrDragMethod& rDragMethod) +drawinglayer::primitive2d::Primitive2DContainer SdrDragEntryPolyPolygon::createPrimitive2DSequenceInCurrentState(SdrDragMethod& rDragMethod) { - drawinglayer::primitive2d::Primitive2DSequence aRetval; + drawinglayer::primitive2d::Primitive2DContainer aRetval; if(maOriginalPolyPolygon.count()) { @@ -116,7 +116,7 @@ drawinglayer::primitive2d::Primitive2DSequence SdrDragEntryPolyPolygon::createPr aColB.invert(); } - aRetval.realloc(2); + aRetval.resize(2); aRetval[0] = new drawinglayer::primitive2d::PolyPolygonMarkerPrimitive2D( aCopy, aColA, @@ -182,7 +182,7 @@ void SdrDragEntrySdrObject::prepareCurrentState(SdrDragMethod& rDragMethod) } } -drawinglayer::primitive2d::Primitive2DSequence SdrDragEntrySdrObject::createPrimitive2DSequenceInCurrentState(SdrDragMethod&) +drawinglayer::primitive2d::Primitive2DContainer SdrDragEntrySdrObject::createPrimitive2DSequenceInCurrentState(SdrDragMethod&) { const SdrObject* pSource = &maOriginal; @@ -192,7 +192,7 @@ drawinglayer::primitive2d::Primitive2DSequence SdrDragEntrySdrObject::createPrim pSource = mpClone; } - // get VOC and Primitive2DSequence + // get VOC and Primitive2DContainer sdr::contact::ViewContact& rVC = pSource->GetViewContact(); sdr::contact::ViewObjectContact& rVOC = rVC.GetViewObjectContact(mrObjectContact); sdr::contact::DisplayInfo aDisplayInfo; @@ -207,7 +207,7 @@ drawinglayer::primitive2d::Primitive2DSequence SdrDragEntrySdrObject::createPrim SdrDragEntryPrimitive2DSequence::SdrDragEntryPrimitive2DSequence( - const drawinglayer::primitive2d::Primitive2DSequence& rSequence, + const drawinglayer::primitive2d::Primitive2DContainer& rSequence, bool bAddToTransparent) : SdrDragEntry(), maPrimitive2DSequence(rSequence) @@ -220,14 +220,14 @@ SdrDragEntryPrimitive2DSequence::~SdrDragEntryPrimitive2DSequence() { } -drawinglayer::primitive2d::Primitive2DSequence SdrDragEntryPrimitive2DSequence::createPrimitive2DSequenceInCurrentState(SdrDragMethod& rDragMethod) +drawinglayer::primitive2d::Primitive2DContainer SdrDragEntryPrimitive2DSequence::createPrimitive2DSequenceInCurrentState(SdrDragMethod& rDragMethod) { drawinglayer::primitive2d::Primitive2DReference aTransformPrimitive2D( new drawinglayer::primitive2d::TransformPrimitive2D( rDragMethod.getCurrentTransformation(), maPrimitive2DSequence)); - return drawinglayer::primitive2d::Primitive2DSequence(&aTransformPrimitive2D, 1); + return drawinglayer::primitive2d::Primitive2DContainer { aTransformPrimitive2D }; } @@ -244,9 +244,9 @@ SdrDragEntryPointGlueDrag::~SdrDragEntryPointGlueDrag() { } -drawinglayer::primitive2d::Primitive2DSequence SdrDragEntryPointGlueDrag::createPrimitive2DSequenceInCurrentState(SdrDragMethod& rDragMethod) +drawinglayer::primitive2d::Primitive2DContainer SdrDragEntryPointGlueDrag::createPrimitive2DSequenceInCurrentState(SdrDragMethod& rDragMethod) { - drawinglayer::primitive2d::Primitive2DSequence aRetval; + drawinglayer::primitive2d::Primitive2DContainer aRetval; if(!maPositions.empty()) { @@ -286,14 +286,14 @@ drawinglayer::primitive2d::Primitive2DSequence SdrDragEntryPointGlueDrag::create new drawinglayer::primitive2d::MarkerArrayPrimitive2D(aTransformedPositions, drawinglayer::primitive2d::createDefaultCross_3x3(aColor))); - aRetval = drawinglayer::primitive2d::Primitive2DSequence(&aMarkerArrayPrimitive2D, 1); + aRetval = drawinglayer::primitive2d::Primitive2DContainer { aMarkerArrayPrimitive2D }; } else { drawinglayer::primitive2d::Primitive2DReference aMarkerArrayPrimitive2D( new drawinglayer::primitive2d::MarkerArrayPrimitive2D(aTransformedPositions, SdrHdl::createGluePointBitmap())); - aRetval = drawinglayer::primitive2d::Primitive2DSequence(&aMarkerArrayPrimitive2D, 1); + aRetval = drawinglayer::primitive2d::Primitive2DContainer { aMarkerArrayPrimitive2D }; } } @@ -764,8 +764,8 @@ void SdrDragMethod::CreateOverlayGeometry(sdr::overlay::OverlayManager& rOverlay } // collect primitives for visualisation - drawinglayer::primitive2d::Primitive2DSequence aResult; - drawinglayer::primitive2d::Primitive2DSequence aResultTransparent; + drawinglayer::primitive2d::Primitive2DContainer aResult; + drawinglayer::primitive2d::Primitive2DContainer aResultTransparent; for(a = 0; a < maSdrDragEntries.size(); a++) { @@ -773,17 +773,17 @@ void SdrDragMethod::CreateOverlayGeometry(sdr::overlay::OverlayManager& rOverlay if(pCandidate) { - const drawinglayer::primitive2d::Primitive2DSequence aCandidateResult(pCandidate->createPrimitive2DSequenceInCurrentState(*this)); + const drawinglayer::primitive2d::Primitive2DContainer aCandidateResult(pCandidate->createPrimitive2DSequenceInCurrentState(*this)); - if(aCandidateResult.hasElements()) + if(!aCandidateResult.empty()) { if(pCandidate->getAddToTransparent()) { - drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(aResultTransparent, aCandidateResult); + aResultTransparent.append(aCandidateResult); } else { - drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(aResult, aCandidateResult); + aResult.append(aCandidateResult); } } } @@ -791,26 +791,26 @@ void SdrDragMethod::CreateOverlayGeometry(sdr::overlay::OverlayManager& rOverlay if(DoAddConnectorOverlays()) { - const drawinglayer::primitive2d::Primitive2DSequence aConnectorOverlays(AddConnectorOverlays()); + const drawinglayer::primitive2d::Primitive2DContainer aConnectorOverlays(AddConnectorOverlays()); - if(aConnectorOverlays.hasElements()) + if(!aConnectorOverlays.empty()) { // add connector overlays to transparent part - drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(aResultTransparent, aConnectorOverlays); + aResultTransparent.append(aConnectorOverlays); } } - if(aResult.hasElements()) + if(!aResult.empty()) { sdr::overlay::OverlayObject* pNewOverlayObject = new sdr::overlay::OverlayPrimitive2DSequenceObject(aResult); rOverlayManager.add(*pNewOverlayObject); addToOverlayObjectList(*pNewOverlayObject); } - if(aResultTransparent.hasElements()) + if(!aResultTransparent.empty()) { drawinglayer::primitive2d::Primitive2DReference aUnifiedTransparencePrimitive2D(new drawinglayer::primitive2d::UnifiedTransparencePrimitive2D(aResultTransparent, 0.5)); - aResultTransparent = drawinglayer::primitive2d::Primitive2DSequence(&aUnifiedTransparencePrimitive2D, 1); + aResultTransparent = drawinglayer::primitive2d::Primitive2DContainer { aUnifiedTransparencePrimitive2D }; sdr::overlay::OverlayObject* pNewOverlayObject = new sdr::overlay::OverlayPrimitive2DSequenceObject(aResultTransparent); rOverlayManager.add(*pNewOverlayObject); @@ -882,9 +882,9 @@ bool SdrDragMethod::DoAddConnectorOverlays() return true; } -drawinglayer::primitive2d::Primitive2DSequence SdrDragMethod::AddConnectorOverlays() +drawinglayer::primitive2d::Primitive2DContainer SdrDragMethod::AddConnectorOverlays() { - drawinglayer::primitive2d::Primitive2DSequence aRetval; + drawinglayer::primitive2d::Primitive2DContainer aRetval; const bool bDetail(getSdrDragView().IsDetailedEdgeDragging() && getMoveOnly()); const SdrMarkList& rMarkedNodes = getSdrDragView().GetEdgesOfMarkedNodes(); @@ -929,8 +929,7 @@ drawinglayer::primitive2d::Primitive2DSequence SdrDragMethod::AddConnectorOverla rItemSet, aLine.getWidth())); - drawinglayer::primitive2d::appendPrimitive2DReferenceToPrimitive2DSequence( - aRetval, drawinglayer::primitive2d::createPolygonLinePrimitive( + aRetval.push_back(drawinglayer::primitive2d::createPolygonLinePrimitive( aEdgePolygon, aLine, aLineStartEnd)); @@ -952,7 +951,7 @@ drawinglayer::primitive2d::Primitive2DSequence SdrDragMethod::AddConnectorOverla drawinglayer::primitive2d::Primitive2DReference aPolyPolygonMarkerPrimitive2D( new drawinglayer::primitive2d::PolygonMarkerPrimitive2D( aEdgePolygon, aColA, aColB, fStripeLength)); - drawinglayer::primitive2d::appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, aPolyPolygonMarkerPrimitive2D); + aRetval.push_back(aPolyPolygonMarkerPrimitive2D); } } } @@ -1488,7 +1487,7 @@ Pointer SdrDragObjOwn::GetSdrDragPointer() const void SdrDragMove::createSdrDragEntryForSdrObject(const SdrObject& rOriginal, sdr::contact::ObjectContact& rObjectContact, bool /*bModify*/) { - // for SdrDragMove, use current Primitive2DSequence of SdrObject visualization + // for SdrDragMove, use current Primitive2DContainer of SdrObject visualization // in given ObjectContact directly sdr::contact::ViewContact& rVC = rOriginal.GetViewContact(); sdr::contact::ViewObjectContact& rVOC = rVC.GetViewObjectContact(rObjectContact); diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index 492906d1e4f7..af307c4577d6 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -377,7 +377,7 @@ void SdrObjEditView::ImpPaintOutlinerView(OutlinerView& rOutlView, const Rectang std::max(6, nPixSiz - 2), // grow 0.0, // shrink 0.0)); - const drawinglayer::primitive2d::Primitive2DSequence aSequence(&xReference, 1); + const drawinglayer::primitive2d::Primitive2DContainer aSequence { xReference }; rTargetDevice.EnableMapMode(false); xProcessor->process(aSequence); diff --git a/svx/source/svdraw/svdhdl.cxx b/svx/source/svdraw/svdhdl.cxx index af2be461da15..12815c00f023 100644 --- a/svx/source/svdraw/svdhdl.cxx +++ b/svx/source/svdraw/svdhdl.cxx @@ -2545,7 +2545,7 @@ void SdrCropViewHdl::CreateB2dIAObject() aHilightColor)); // combine these - drawinglayer::primitive2d::Primitive2DSequence aCombination(2); + drawinglayer::primitive2d::Primitive2DContainer aCombination(2); aCombination[0] = aGraphic; aCombination[1] = aGraphicOutline; @@ -2558,10 +2558,10 @@ void SdrCropViewHdl::CreateB2dIAObject() // embed to UnifiedTransparencePrimitive2D const drawinglayer::primitive2d::Primitive2DReference aTransparenceMaskedGraphic( new drawinglayer::primitive2d::UnifiedTransparencePrimitive2D( - drawinglayer::primitive2d::Primitive2DSequence(&aMaskedGraphic, 1), + drawinglayer::primitive2d::Primitive2DContainer { aMaskedGraphic }, 0.8)); - const drawinglayer::primitive2d::Primitive2DSequence aSequence(&aTransparenceMaskedGraphic, 1); + const drawinglayer::primitive2d::Primitive2DContainer aSequence { aTransparenceMaskedGraphic }; for(sal_uInt32 b(0L); b < pPageView->PageWindowCount(); b++) { diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx index 5cbef0802e3e..872fef07cda9 100644 --- a/svx/source/svdraw/svdobj.cxx +++ b/svx/source/svdraw/svdobj.cxx @@ -873,13 +873,13 @@ void SdrObject::RecalcBoundRect() // central new method which will calculate the BoundRect using primitive geometry if(aOutRect.IsEmpty()) { - const drawinglayer::primitive2d::Primitive2DSequence xPrimitives(GetViewContact().getViewIndependentPrimitive2DSequence()); + const drawinglayer::primitive2d::Primitive2DContainer xPrimitives(GetViewContact().getViewIndependentPrimitive2DSequence()); - if(xPrimitives.hasElements()) + if(!xPrimitives.empty()) { // use neutral ViewInformation and get the range of the primitives const drawinglayer::geometry::ViewInformation2D aViewInformation2D; - const basegfx::B2DRange aRange(drawinglayer::primitive2d::getB2DRangeFromPrimitive2DSequence(xPrimitives, aViewInformation2D)); + const basegfx::B2DRange aRange(xPrimitives.getB2DRange(aViewInformation2D)); if(!aRange.isEmpty()) { @@ -1143,9 +1143,9 @@ basegfx::B2DPolyPolygon SdrObject::TakeContour() const // get sequence from clone const sdr::contact::ViewContact& rVC(pClone->GetViewContact()); - const drawinglayer::primitive2d::Primitive2DSequence xSequence(rVC.getViewIndependentPrimitive2DSequence()); + const drawinglayer::primitive2d::Primitive2DContainer xSequence(rVC.getViewIndependentPrimitive2DSequence()); - if(xSequence.hasElements()) + if(!xSequence.empty()) { // use neutral ViewInformation const drawinglayer::geometry::ViewInformation2D aViewInformation2D; @@ -2375,14 +2375,14 @@ SdrObject* SdrObject::GetConnectedNode(bool /*bTail1*/) const void extractLineContourFromPrimitive2DSequence( - const drawinglayer::primitive2d::Primitive2DSequence& rxSequence, + const drawinglayer::primitive2d::Primitive2DContainer& rxSequence, basegfx::B2DPolygonVector& rExtractedHairlines, basegfx::B2DPolyPolygonVector& rExtractedLineFills) { rExtractedHairlines.clear(); rExtractedLineFills.clear(); - if(rxSequence.hasElements()) + if(!rxSequence.empty()) { // use neutral ViewInformation const drawinglayer::geometry::ViewInformation2D aViewInformation2D; @@ -2409,9 +2409,9 @@ SdrObject* SdrObject::ImpConvertToContourObj(SdrObject* pRet, bool bForceLineDas { basegfx::B2DPolyPolygon aMergedLineFillPolyPolygon; basegfx::B2DPolyPolygon aMergedHairlinePolyPolygon; - const drawinglayer::primitive2d::Primitive2DSequence xSequence(pRet->GetViewContact().getViewIndependentPrimitive2DSequence()); + const drawinglayer::primitive2d::Primitive2DContainer xSequence(pRet->GetViewContact().getViewIndependentPrimitive2DSequence()); - if(xSequence.hasElements()) + if(!xSequence.empty()) { basegfx::B2DPolygonVector aExtractedHairlines; basegfx::B2DPolyPolygonVector aExtractedLineFills; diff --git a/svx/source/svdraw/svdograf.cxx b/svx/source/svdraw/svdograf.cxx index 9c37084504fa..e54cb52223f6 100644 --- a/svx/source/svdraw/svdograf.cxx +++ b/svx/source/svdraw/svdograf.cxx @@ -295,9 +295,9 @@ void SdrGrafObj::onGraphicChanged() if (!rSvgDataPtr.get()) return; - const drawinglayer::primitive2d::Primitive2DSequence aSequence(rSvgDataPtr->getPrimitive2DSequence()); + const drawinglayer::primitive2d::Primitive2DContainer aSequence(rSvgDataPtr->getPrimitive2DSequence()); - if (!aSequence.hasElements()) + if (aSequence.empty()) return; drawinglayer::geometry::ViewInformation2D aViewInformation2D; diff --git a/svx/source/svdraw/svdotextdecomposition.cxx b/svx/source/svdraw/svdotextdecomposition.cxx index 4630658bf8f1..0218d04cec2a 100644 --- a/svx/source/svdraw/svdotextdecomposition.cxx +++ b/svx/source/svdraw/svdotextdecomposition.cxx @@ -61,10 +61,10 @@ using namespace com::sun::star; namespace { - drawinglayer::primitive2d::Primitive2DSequence impConvertVectorToPrimitive2DSequence(const std::vector< drawinglayer::primitive2d::BasePrimitive2D* >& rPrimitiveVector) + drawinglayer::primitive2d::Primitive2DContainer impConvertVectorToPrimitive2DSequence(const std::vector< drawinglayer::primitive2d::BasePrimitive2D* >& rPrimitiveVector) { const sal_Int32 nCount(rPrimitiveVector.size()); - drawinglayer::primitive2d::Primitive2DSequence aRetval(nCount); + drawinglayer::primitive2d::Primitive2DContainer aRetval(nCount); for(sal_Int32 a(0L); a < nCount; a++) { @@ -161,7 +161,7 @@ namespace mrOutliner.SetDrawBulletHdl(Link<DrawBulletInfo*,void>()); } - drawinglayer::primitive2d::Primitive2DSequence getPrimitive2DSequence(); + drawinglayer::primitive2d::Primitive2DContainer getPrimitive2DSequence(); }; bool impTextBreakupHandler::impIsUnderlineAbove(const vcl::Font& rFont) @@ -382,7 +382,7 @@ namespace { // embed in TextHierarchyBulletPrimitive2D const drawinglayer::primitive2d::Primitive2DReference aNewReference(pNewPrimitive); - const drawinglayer::primitive2d::Primitive2DSequence aNewSequence(&aNewReference, 1); + const drawinglayer::primitive2d::Primitive2DContainer aNewSequence { aNewReference } ; pNewPrimitive = new drawinglayer::primitive2d::TextHierarchyBulletPrimitive2D(aNewSequence); } @@ -467,11 +467,11 @@ namespace const SvxPageField* pPageField = dynamic_cast< const SvxPageField* >(rInfo.mpFieldData); // embed current primitive to a sequence - drawinglayer::primitive2d::Primitive2DSequence aSequence; + drawinglayer::primitive2d::Primitive2DContainer aSequence; if(pPrimitive) { - aSequence.realloc(1); + aSequence.resize(1); aSequence[0] = drawinglayer::primitive2d::Primitive2DReference(pPrimitive); } @@ -498,7 +498,7 @@ namespace // empty line primitives (contrary to paragraphs, see below). if(!maTextPortionPrimitives.empty()) { - drawinglayer::primitive2d::Primitive2DSequence aLineSequence(impConvertVectorToPrimitive2DSequence(maTextPortionPrimitives)); + drawinglayer::primitive2d::Primitive2DContainer aLineSequence(impConvertVectorToPrimitive2DSequence(maTextPortionPrimitives)); maTextPortionPrimitives.clear(); maLinePrimitives.push_back(new drawinglayer::primitive2d::TextHierarchyLinePrimitive2D(aLineSequence)); } @@ -509,7 +509,7 @@ namespace // ALWAYS create a paragraph primitive, even when no content was added. This is done to // have the correct paragraph count even with empty paragraphs. Those paragraphs will // have an empty sub-PrimitiveSequence. - drawinglayer::primitive2d::Primitive2DSequence aParagraphSequence(impConvertVectorToPrimitive2DSequence(maLinePrimitives)); + drawinglayer::primitive2d::Primitive2DContainer aParagraphSequence(impConvertVectorToPrimitive2DSequence(maLinePrimitives)); maLinePrimitives.clear(); maParagraphPrimitives.push_back(new drawinglayer::primitive2d::TextHierarchyParagraphPrimitive2D(aParagraphSequence)); } @@ -555,7 +555,7 @@ namespace aGraphicAttr)); // embed in TextHierarchyBulletPrimitive2D - const drawinglayer::primitive2d::Primitive2DSequence aNewSequence(&aNewReference, 1); + const drawinglayer::primitive2d::Primitive2DContainer aNewSequence { aNewReference }; drawinglayer::primitive2d::BasePrimitive2D* pNewPrimitive = new drawinglayer::primitive2d::TextHierarchyBulletPrimitive2D(aNewSequence); // add to output @@ -649,7 +649,7 @@ namespace } } - drawinglayer::primitive2d::Primitive2DSequence impTextBreakupHandler::getPrimitive2DSequence() + drawinglayer::primitive2d::Primitive2DContainer impTextBreakupHandler::getPrimitive2DSequence() { if(!maTextPortionPrimitives.empty()) { @@ -671,7 +671,7 @@ namespace // primitive decompositions void SdrTextObj::impDecomposeContourTextPrimitive( - drawinglayer::primitive2d::Primitive2DSequence& rTarget, + drawinglayer::primitive2d::Primitive2DContainer& rTarget, const drawinglayer::primitive2d::SdrContourTextPrimitive2D& rSdrContourTextPrimitive, const drawinglayer::geometry::ViewInformation2D& aViewInformation) const { @@ -721,7 +721,7 @@ void SdrTextObj::impDecomposeContourTextPrimitive( } void SdrTextObj::impDecomposeAutoFitTextPrimitive( - drawinglayer::primitive2d::Primitive2DSequence& rTarget, + drawinglayer::primitive2d::Primitive2DContainer& rTarget, const drawinglayer::primitive2d::SdrAutoFitTextPrimitive2D& rSdrAutofitTextPrimitive, const drawinglayer::geometry::ViewInformation2D& aViewInformation) const { @@ -855,7 +855,7 @@ void SdrTextObj::impDecomposeAutoFitTextPrimitive( } void SdrTextObj::impDecomposeBlockTextPrimitive( - drawinglayer::primitive2d::Primitive2DSequence& rTarget, + drawinglayer::primitive2d::Primitive2DContainer& rTarget, const drawinglayer::primitive2d::SdrBlockTextPrimitive2D& rSdrBlockTextPrimitive, const drawinglayer::geometry::ViewInformation2D& aViewInformation) const { @@ -1097,7 +1097,7 @@ void SdrTextObj::impDecomposeBlockTextPrimitive( } void SdrTextObj::impDecomposeStretchTextPrimitive( - drawinglayer::primitive2d::Primitive2DSequence& rTarget, + drawinglayer::primitive2d::Primitive2DContainer& rTarget, const drawinglayer::primitive2d::SdrStretchTextPrimitive2D& rSdrStretchTextPrimitive, const drawinglayer::geometry::ViewInformation2D& aViewInformation) const { @@ -1455,7 +1455,7 @@ void SdrTextObj::impHandleChainingEventsDuringDecomposition(SdrOutliner &rOutlin } void SdrTextObj::impDecomposeChainedTextPrimitive( - drawinglayer::primitive2d::Primitive2DSequence& rTarget, + drawinglayer::primitive2d::Primitive2DContainer& rTarget, const drawinglayer::primitive2d::SdrChainedTextPrimitive2D& rSdrChainedTextPrimitive, const drawinglayer::geometry::ViewInformation2D& aViewInformation) const { diff --git a/svx/source/svdraw/svdotextpathdecomposition.cxx b/svx/source/svdraw/svdotextpathdecomposition.cxx index 78fc7e796708..bb9d04fefba0 100644 --- a/svx/source/svdraw/svdotextpathdecomposition.cxx +++ b/svx/source/svdraw/svdotextpathdecomposition.cxx @@ -588,7 +588,7 @@ namespace } } - drawinglayer::primitive2d::Primitive2DSequence impAddPathTextOutlines( + drawinglayer::primitive2d::Primitive2DContainer impAddPathTextOutlines( const std::vector< drawinglayer::primitive2d::BasePrimitive2D* >& rSource, const drawinglayer::attribute::SdrFormTextOutlineAttribute& rOutlineAttribute) { @@ -623,7 +623,7 @@ namespace if(rOutlineAttribute.getTransparence()) { // create UnifiedTransparencePrimitive2D - drawinglayer::primitive2d::Primitive2DSequence aStrokePrimitiveSequence(nStrokeCount); + drawinglayer::primitive2d::Primitive2DContainer aStrokePrimitiveSequence(nStrokeCount); for(sal_uInt32 b(0L); b < nStrokeCount; b++) { @@ -650,7 +650,7 @@ namespace if(nNewCount) { - drawinglayer::primitive2d::Primitive2DSequence aRetval(nNewCount); + drawinglayer::primitive2d::Primitive2DContainer aRetval(nNewCount); for(sal_uInt32 a(0L); a < nNewCount; a++) { @@ -661,7 +661,7 @@ namespace } else { - return drawinglayer::primitive2d::Primitive2DSequence(); + return drawinglayer::primitive2d::Primitive2DContainer(); } } } // end of anonymous namespace @@ -670,12 +670,12 @@ namespace // primitive decomposition void SdrTextObj::impDecomposePathTextPrimitive( - drawinglayer::primitive2d::Primitive2DSequence& rTarget, + drawinglayer::primitive2d::Primitive2DContainer& rTarget, const drawinglayer::primitive2d::SdrPathTextPrimitive2D& rSdrPathTextPrimitive, const drawinglayer::geometry::ViewInformation2D& aViewInformation) const { - drawinglayer::primitive2d::Primitive2DSequence aRetvalA; - drawinglayer::primitive2d::Primitive2DSequence aRetvalB; + drawinglayer::primitive2d::Primitive2DContainer aRetvalA; + drawinglayer::primitive2d::Primitive2DContainer aRetvalB; // prepare outliner SdrOutliner& rOutliner = ImpGetDrawOutliner(); @@ -744,7 +744,7 @@ void SdrTextObj::impDecomposePathTextPrimitive( if(nShadowCount) { // add shadow primitives to decomposition - aRetvalA.realloc(nShadowCount); + aRetvalA.resize(nShadowCount); for(a = 0L; a < nShadowCount; a++) { @@ -755,19 +755,19 @@ void SdrTextObj::impDecomposePathTextPrimitive( if(rFormTextAttribute.getFormTextOutline() && !rFormTextAttribute.getShadowOutline().isDefault()) { - const drawinglayer::primitive2d::Primitive2DSequence aOutlines( + const drawinglayer::primitive2d::Primitive2DContainer aOutlines( impAddPathTextOutlines( aShadowDecomposition, rFormTextAttribute.getShadowOutline())); - drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(aRetvalA, aOutlines); + aRetvalA.append(aOutlines); } } if(nRegularCount) { // add normal primitives to decomposition - aRetvalB.realloc(nRegularCount); + aRetvalB.resize(nRegularCount); for(a = 0L; a < nRegularCount; a++) { @@ -778,12 +778,12 @@ void SdrTextObj::impDecomposePathTextPrimitive( if(rFormTextAttribute.getFormTextOutline() && !rFormTextAttribute.getOutline().isDefault()) { - const drawinglayer::primitive2d::Primitive2DSequence aOutlines( + const drawinglayer::primitive2d::Primitive2DContainer aOutlines( impAddPathTextOutlines( aRegularDecomposition, rFormTextAttribute.getOutline())); - drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(aRetvalB, aOutlines); + aRetvalB.append(aOutlines); } } } @@ -795,8 +795,8 @@ void SdrTextObj::impDecomposePathTextPrimitive( rOutliner.setVisualizedPage(nullptr); // concatenate all results - drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(rTarget, aRetvalA); - drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(rTarget, aRetvalB); + rTarget.append(aRetvalA); + rTarget.append(aRetvalB); } diff --git a/svx/source/svdraw/svdotxtr.cxx b/svx/source/svdraw/svdotxtr.cxx index 79dfcf938fe9..b48855ead024 100644 --- a/svx/source/svdraw/svdotxtr.cxx +++ b/svx/source/svdraw/svdotxtr.cxx @@ -296,9 +296,9 @@ SdrObject* SdrTextObj::ImpConvertContainedTextToSdrPathObjs(bool bToPoly) const } // get primitives - const drawinglayer::primitive2d::Primitive2DSequence xSequence(GetViewContact().getViewIndependentPrimitive2DSequence()); + const drawinglayer::primitive2d::Primitive2DContainer xSequence(GetViewContact().getViewIndependentPrimitive2DSequence()); - if(xSequence.hasElements()) + if(!xSequence.empty()) { // create an extractor with neutral ViewInformation const drawinglayer::geometry::ViewInformation2D aViewInformation2D; diff --git a/svx/source/svdraw/svdpage.cxx b/svx/source/svdraw/svdpage.cxx index 432648dc6a59..a5828e270360 100644 --- a/svx/source/svdraw/svdpage.cxx +++ b/svx/source/svdraw/svdpage.cxx @@ -1808,7 +1808,7 @@ StandardCheckVisisbilityRedirector::~StandardCheckVisisbilityRedirector() { } -drawinglayer::primitive2d::Primitive2DSequence StandardCheckVisisbilityRedirector::createRedirectedPrimitive2DSequence( +drawinglayer::primitive2d::Primitive2DContainer StandardCheckVisisbilityRedirector::createRedirectedPrimitive2DSequence( const sdr::contact::ViewObjectContact& rOriginal, const sdr::contact::DisplayInfo& rDisplayInfo) { @@ -1824,7 +1824,7 @@ drawinglayer::primitive2d::Primitive2DSequence StandardCheckVisisbilityRedirecto } } - return drawinglayer::primitive2d::Primitive2DSequence(); + return drawinglayer::primitive2d::Primitive2DContainer(); } else { diff --git a/svx/source/svdraw/svdpntv.cxx b/svx/source/svdraw/svdpntv.cxx index 35f12113ad9f..27eba2b9d5a0 100644 --- a/svx/source/svdraw/svdpntv.cxx +++ b/svx/source/svdraw/svdpntv.cxx @@ -145,7 +145,7 @@ BitmapEx convertMetafileToBitmapEx( rTargetRange.getMinimum()), rMtf)); aBitmapEx = convertPrimitive2DSequenceToBitmapEx( - drawinglayer::primitive2d::Primitive2DSequence(&aMtf, 1), + drawinglayer::primitive2d::Primitive2DContainer { aMtf }, rTargetRange, nMaximumQuadraticPixels); } diff --git a/svx/source/svdraw/svdxcgv.cxx b/svx/source/svdraw/svdxcgv.cxx index ab6c8a4c8d2b..0eeedc95436f 100644 --- a/svx/source/svdraw/svdxcgv.cxx +++ b/svx/source/svdraw/svdxcgv.cxx @@ -485,7 +485,7 @@ BitmapEx SdrExchangeView::GetMarkedObjBitmapEx(bool bNoVDevIfOneBmpMarked) const { // collect sub-primitives as group objects, thus no expensive append // to existing sequence is needed - drawinglayer::primitive2d::Primitive2DSequence xPrimitives(nCount); + drawinglayer::primitive2d::Primitive2DContainer xPrimitives(nCount); for(sal_uInt32 a(0); a < nCount; a++) { @@ -504,10 +504,7 @@ BitmapEx SdrExchangeView::GetMarkedObjBitmapEx(bool bNoVDevIfOneBmpMarked) const // get logic range const drawinglayer::geometry::ViewInformation2D aViewInformation2D; - const basegfx::B2DRange aRange( - drawinglayer::primitive2d::getB2DRangeFromPrimitive2DSequence( - xPrimitives, - aViewInformation2D)); + const basegfx::B2DRange aRange(xPrimitives.getB2DRange(aViewInformation2D)); if(!aRange.isEmpty()) { |