summaryrefslogtreecommitdiff
path: root/drawinglayer
diff options
context:
space:
mode:
authorNoel <noel.grandin@collabora.co.uk>2021-02-10 13:23:28 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2021-02-11 07:57:56 +0100
commit14cb12bde07b8becf69b648ecc6642bdccf8a7cd (patch)
treee616a44bdeb412b518e8f4fcee20f9aaeb8574e9 /drawinglayer
parent5128bf29d5febceaec51854595f23ae487a0cdec (diff)
loplugin:refcounting generalise type checking
Change-Id: Ia013878ac9c2918d8eaf9aab16b291d8211e708f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110700 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'drawinglayer')
-rw-r--r--drawinglayer/inc/wmfemfhelper.hxx9
-rw-r--r--drawinglayer/source/tools/emfphelperdata.cxx30
-rw-r--r--drawinglayer/source/tools/wmfemfhelper.cxx72
3 files changed, 58 insertions, 53 deletions
diff --git a/drawinglayer/inc/wmfemfhelper.hxx b/drawinglayer/inc/wmfemfhelper.hxx
index 7b643bf5e36c..6c58dac68f7e 100644
--- a/drawinglayer/inc/wmfemfhelper.hxx
+++ b/drawinglayer/inc/wmfemfhelper.hxx
@@ -22,6 +22,7 @@
#include <sal/config.h>
#include <drawinglayer/primitive2d/baseprimitive2d.hxx>
#include <vcl/font.hxx>
+#include <rtl/ref.hxx>
#include <vcl/outdevstate.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <basegfx/polygon/b2dpolypolygon.hxx>
@@ -43,13 +44,17 @@ namespace wmfemfhelper
class TargetHolder
{
private:
- std::vector< std::unique_ptr<drawinglayer::primitive2d::BasePrimitive2D> > aTargets;
+ std::vector< rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D> > aTargets;
public:
TargetHolder();
~TargetHolder();
sal_uInt32 size() const;
- void append(std::unique_ptr<drawinglayer::primitive2d::BasePrimitive2D> pCandidate);
+ void append(const rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D> & pCandidate)
+ {
+ append(pCandidate.get());
+ }
+ void append(drawinglayer::primitive2d::BasePrimitive2D* pCandidate);
drawinglayer::primitive2d::Primitive2DContainer getPrimitive2DSequence(const PropertyHolder& rPropertyHolder);
};
}
diff --git a/drawinglayer/source/tools/emfphelperdata.cxx b/drawinglayer/source/tools/emfphelperdata.cxx
index d55babc0e960..e92e3e58ef27 100644
--- a/drawinglayer/source/tools/emfphelperdata.cxx
+++ b/drawinglayer/source/tools/emfphelperdata.cxx
@@ -572,7 +572,7 @@ namespace emfplushelper
if (!pen->GetColor().IsTransparent())
{
mrTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D>(
+ new drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D(
polygon,
lineAttribute,
aStrokeAttribute));
@@ -586,7 +586,7 @@ namespace emfplushelper
aStrokeAttribute));
mrTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::UnifiedTransparencePrimitive2D>(
+ new drawinglayer::primitive2d::UnifiedTransparencePrimitive2D(
drawinglayer::primitive2d::Primitive2DContainer { aPrimitive },
(255 - pen->GetColor().GetAlpha()) / 255.0));
}
@@ -622,14 +622,14 @@ namespace emfplushelper
if (pen->customStartCap->mbIsFilled)
{
mrTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::PolyPolygonColorPrimitive2D>(
+ new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D(
startCapPolygon,
pen->GetColor().getBColor()));
}
else
{
mrTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D>(
+ new drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D(
startCapPolygon,
lineAttribute,
aStrokeAttribute));
@@ -667,14 +667,14 @@ namespace emfplushelper
if (pen->customEndCap->mbIsFilled)
{
mrTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::PolyPolygonColorPrimitive2D>(
+ new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D(
endCapPolygon,
pen->GetColor().getBColor()));
}
else
{
mrTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D>(
+ new drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D(
endCapPolygon,
lineAttribute,
aStrokeAttribute));
@@ -695,7 +695,7 @@ namespace emfplushelper
{
// not transparent
mrTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::PolyPolygonColorPrimitive2D>(
+ new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D(
polygon,
color.getBColor()));
}
@@ -707,7 +707,7 @@ namespace emfplushelper
color.getBColor()));
mrTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::UnifiedTransparencePrimitive2D>(
+ new drawinglayer::primitive2d::UnifiedTransparencePrimitive2D(
drawinglayer::primitive2d::Primitive2DContainer { aPrimitive },
(255 - color.GetAlpha()) / 255.0));
}
@@ -787,7 +787,7 @@ namespace emfplushelper
// temporal solution: create a solid colored polygon
// TODO create a 'real' hatching primitive
mrTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::PolyPolygonColorPrimitive2D>(
+ new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D(
polygon,
fillColor.getBColor()));
}
@@ -918,7 +918,7 @@ namespace emfplushelper
// create the same one used for SVG
mrTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::SvgLinearGradientPrimitive2D>(
+ new drawinglayer::primitive2d::SvgLinearGradientPrimitive2D(
aTextureTransformation,
polygon,
aVector,
@@ -934,7 +934,7 @@ namespace emfplushelper
// create the same one used for SVG
mrTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::SvgRadialGradientPrimitive2D>(
+ new drawinglayer::primitive2d::SvgRadialGradientPrimitive2D(
aTextureTransformation,
polygon,
aVector,
@@ -1501,7 +1501,7 @@ namespace emfplushelper
if (aSize.Width() > 0 && aSize.Height() > 0)
{
mrTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::BitmapPrimitive2D>(
+ new drawinglayer::primitive2d::BitmapPrimitive2D(
VCLUnoHelper::CreateVCLXBitmap(aBmp),
aTransformMatrix));
}
@@ -1516,7 +1516,7 @@ namespace emfplushelper
GDIMetaFile aGDI(image.graphic.GetGDIMetaFile());
aGDI.Clip(aSource);
mrTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::MetafilePrimitive2D>(aTransformMatrix, aGDI));
+ new drawinglayer::primitive2d::MetafilePrimitive2D(aTransformMatrix, aGDI));
}
}
else
@@ -1674,7 +1674,7 @@ namespace emfplushelper
}
mrTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::TransformPrimitive2D>(
+ new drawinglayer::primitive2d::TransformPrimitive2D(
maMapTransform,
drawinglayer::primitive2d::Primitive2DContainer { aPrimitiveText } ));
}
@@ -2158,7 +2158,7 @@ namespace emfplushelper
(255 - color.GetAlpha()) / 255.0);
}
mrTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::TransformPrimitive2D>(
+ new drawinglayer::primitive2d::TransformPrimitive2D(
maMapTransform,
drawinglayer::primitive2d::Primitive2DContainer { aPrimitiveText } ));
}
diff --git a/drawinglayer/source/tools/wmfemfhelper.cxx b/drawinglayer/source/tools/wmfemfhelper.cxx
index a5f0278b0c64..00ec09c9ab00 100644
--- a/drawinglayer/source/tools/wmfemfhelper.cxx
+++ b/drawinglayer/source/tools/wmfemfhelper.cxx
@@ -330,11 +330,11 @@ namespace wmfemfhelper
return aTargets.size();
}
- void TargetHolder::append(std::unique_ptr<drawinglayer::primitive2d::BasePrimitive2D> pCandidate)
+ void TargetHolder::append(drawinglayer::primitive2d::BasePrimitive2D* pCandidate)
{
if (pCandidate)
{
- aTargets.push_back(std::move(pCandidate));
+ aTargets.push_back(pCandidate);
}
}
@@ -345,7 +345,7 @@ namespace wmfemfhelper
for (sal_uInt32 a(0); a < nCount; a++)
{
- xRetval[a] = aTargets[a].release();
+ xRetval[a] = aTargets[a].get();
}
// Since we have released them from the list
aTargets.clear();
@@ -454,7 +454,7 @@ namespace wmfemfhelper
if(rProperties.getTransformation().isIdentity())
{
rTarget.append(
- std::make_unique<drawinglayer::primitive2d::PointArrayPrimitive2D>(
+ new drawinglayer::primitive2d::PointArrayPrimitive2D(
rPositions,
rBColor));
}
@@ -468,7 +468,7 @@ namespace wmfemfhelper
}
rTarget.append(
- std::make_unique<drawinglayer::primitive2d::PointArrayPrimitive2D>(
+ new drawinglayer::primitive2d::PointArrayPrimitive2D(
aPositions,
rBColor));
}
@@ -485,7 +485,7 @@ namespace wmfemfhelper
basegfx::B2DPolygon aLinePolygon(rLinePolygon);
aLinePolygon.transform(rProperties.getTransformation());
rTarget.append(
- std::make_unique<drawinglayer::primitive2d::PolygonHairlinePrimitive2D>(
+ new drawinglayer::primitive2d::PolygonHairlinePrimitive2D(
aLinePolygon,
rProperties.getLineColor()));
}
@@ -502,7 +502,7 @@ namespace wmfemfhelper
basegfx::B2DPolyPolygon aFillPolyPolygon(rFillPolyPolygon);
aFillPolyPolygon.transform(rProperties.getTransformation());
rTarget.append(
- std::make_unique<drawinglayer::primitive2d::PolyPolygonColorPrimitive2D>(
+ new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D(
aFillPolyPolygon,
rProperties.getFillColor()));
}
@@ -556,7 +556,7 @@ namespace wmfemfhelper
fAccumulated);
rTarget.append(
- std::make_unique<drawinglayer::primitive2d::PolygonStrokePrimitive2D>(
+ new drawinglayer::primitive2d::PolygonStrokePrimitive2D(
aLinePolygon,
aLineAttribute,
aStrokeAttribute));
@@ -564,7 +564,7 @@ namespace wmfemfhelper
else
{
rTarget.append(
- std::make_unique<drawinglayer::primitive2d::PolygonStrokePrimitive2D>(
+ new drawinglayer::primitive2d::PolygonStrokePrimitive2D(
aLinePolygon,
aLineAttribute));
}
@@ -630,7 +630,7 @@ namespace wmfemfhelper
aPoint = rProperties.getTransformation() * aPoint;
rTarget.append(
- std::make_unique<drawinglayer::primitive2d::DiscreteBitmapPrimitive2D>(
+ new drawinglayer::primitive2d::DiscreteBitmapPrimitive2D(
rBitmapEx,
aPoint));
}
@@ -657,7 +657,7 @@ namespace wmfemfhelper
aObjectTransform = rProperties.getTransformation() * aObjectTransform;
rTarget.append(
- std::make_unique<drawinglayer::primitive2d::BitmapPrimitive2D>(
+ new drawinglayer::primitive2d::BitmapPrimitive2D(
VCLUnoHelper::CreateVCLXBitmap(rBitmapEx),
aObjectTransform));
}
@@ -853,7 +853,7 @@ namespace wmfemfhelper
if(!aSubContent.empty())
{
rTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::GroupPrimitive2D>(
+ new drawinglayer::primitive2d::GroupPrimitive2D(
aSubContent));
}
}
@@ -900,7 +900,7 @@ namespace wmfemfhelper
{
// force content to black
rTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::ModifiedColorPrimitive2D>(
+ new drawinglayer::primitive2d::ModifiedColorPrimitive2D(
aSubContent,
std::make_shared<basegfx::BColorModifier_replace>(
basegfx::BColor(0.0, 0.0, 0.0))));
@@ -909,7 +909,7 @@ namespace wmfemfhelper
{
// invert content
rTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::InvertPrimitive2D>(
+ new drawinglayer::primitive2d::InvertPrimitive2D(
aSubContent));
}
}
@@ -929,7 +929,7 @@ namespace wmfemfhelper
/** helper to create needed data to emulate the VCL Wallpaper Metafile action.
It is a quite mighty action. This helper is for simple color filled background.
*/
- static std::unique_ptr<drawinglayer::primitive2d::BasePrimitive2D> CreateColorWallpaper(
+ static rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D> CreateColorWallpaper(
const basegfx::B2DRange& rRange,
const basegfx::BColor& rColor,
PropertyHolder const & rPropertyHolder)
@@ -937,7 +937,7 @@ namespace wmfemfhelper
basegfx::B2DPolygon aOutline(basegfx::utils::createPolygonFromRect(rRange));
aOutline.transform(rPropertyHolder.getTransformation());
- return std::make_unique<drawinglayer::primitive2d::PolyPolygonColorPrimitive2D>(
+ return new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D(
basegfx::B2DPolyPolygon(aOutline),
rColor);
}
@@ -945,7 +945,7 @@ namespace wmfemfhelper
/** helper to create needed data to emulate the VCL Wallpaper Metafile action.
It is a quite mighty action. This helper is for gradient filled background.
*/
- static std::unique_ptr<drawinglayer::primitive2d::BasePrimitive2D> CreateGradientWallpaper(
+ static rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D> CreateGradientWallpaper(
const basegfx::B2DRange& rRange,
const Gradient& rGradient,
PropertyHolder const & rPropertyHolder)
@@ -960,19 +960,19 @@ namespace wmfemfhelper
else
{
// really a gradient
- std::unique_ptr<drawinglayer::primitive2d::BasePrimitive2D> pRetval(
+ rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D> pRetval(
new drawinglayer::primitive2d::FillGradientPrimitive2D(
rRange,
aAttribute));
if(!rPropertyHolder.getTransformation().isIdentity())
{
- const drawinglayer::primitive2d::Primitive2DReference xPrim(pRetval.release());
+ const drawinglayer::primitive2d::Primitive2DReference xPrim(pRetval.get());
const drawinglayer::primitive2d::Primitive2DContainer xSeq { xPrim };
- pRetval.reset(new drawinglayer::primitive2d::TransformPrimitive2D(
+ pRetval = new drawinglayer::primitive2d::TransformPrimitive2D(
rPropertyHolder.getTransformation(),
- xSeq));
+ xSeq);
}
return pRetval;
@@ -1032,7 +1032,7 @@ namespace wmfemfhelper
if(rProperty.getTransformation().isIdentity())
{
// add directly
- rTarget.append(std::unique_ptr<drawinglayer::primitive2d::BasePrimitive2D>(pBitmapWallpaperFill));
+ rTarget.append(pBitmapWallpaperFill);
}
else
{
@@ -1040,7 +1040,7 @@ namespace wmfemfhelper
const drawinglayer::primitive2d::Primitive2DReference xPrim(pBitmapWallpaperFill);
rTarget.append(
- std::make_unique<drawinglayer::primitive2d::TransformPrimitive2D>(
+ new drawinglayer::primitive2d::TransformPrimitive2D(
rProperty.getTransformation(),
drawinglayer::primitive2d::Primitive2DContainer { xPrim }));
}
@@ -1289,7 +1289,7 @@ namespace wmfemfhelper
// add created text primitive to target
if(rProperty.getTransformation().isIdentity())
{
- rTarget.append(std::unique_ptr<drawinglayer::primitive2d::BasePrimitive2D>(pResult));
+ rTarget.append(pResult);
}
else
{
@@ -1297,7 +1297,7 @@ namespace wmfemfhelper
const drawinglayer::primitive2d::Primitive2DReference aReference(pResult);
rTarget.append(
- std::make_unique<drawinglayer::primitive2d::TransformPrimitive2D>(
+ new drawinglayer::primitive2d::TransformPrimitive2D(
rProperty.getTransformation(),
drawinglayer::primitive2d::Primitive2DContainer { aReference }));
}
@@ -1413,7 +1413,7 @@ namespace wmfemfhelper
{
for(drawinglayer::primitive2d::BasePrimitive2D* a : aTargetVector)
{
- rTarget.append(std::unique_ptr<drawinglayer::primitive2d::BasePrimitive2D>(a));
+ rTarget.append(a);
}
}
else
@@ -1427,7 +1427,7 @@ namespace wmfemfhelper
}
rTarget.append(
- std::make_unique<drawinglayer::primitive2d::TransformPrimitive2D>(
+ new drawinglayer::primitive2d::TransformPrimitive2D(
rProperty.getTransformation(),
xTargets));
}
@@ -1977,7 +1977,7 @@ namespace wmfemfhelper
{
// add with transformation
rTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::TransformPrimitive2D>(
+ new drawinglayer::primitive2d::TransformPrimitive2D(
rPropertyHolders.Current().getTransformation(),
xSubContent));
}
@@ -2165,7 +2165,7 @@ namespace wmfemfhelper
// when a MetaGradientAction is executed
aOutline.transform(rPropertyHolders.Current().getTransformation());
rTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::MaskPrimitive2D>(
+ new drawinglayer::primitive2d::MaskPrimitive2D(
aOutline,
xGradient));
}
@@ -2195,7 +2195,7 @@ namespace wmfemfhelper
aAttribute));
rTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::MaskPrimitive2D>(
+ new drawinglayer::primitive2d::MaskPrimitive2D(
aOutline,
drawinglayer::primitive2d::Primitive2DContainer { aFillHatch }));
}
@@ -2707,7 +2707,7 @@ namespace wmfemfhelper
if(!aSubContent.empty())
{
rTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::UnifiedTransparencePrimitive2D>(
+ new drawinglayer::primitive2d::UnifiedTransparencePrimitive2D(
aSubContent,
nTransparence * 0.01));
}
@@ -2741,7 +2741,7 @@ namespace wmfemfhelper
// embed using EpsPrimitive
rTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::EpsPrimitive2D>(
+ new drawinglayer::primitive2d::EpsPrimitive2D(
aObjectTransform,
pA->GetLink(),
pA->GetSubstitute()));
@@ -2861,7 +2861,7 @@ namespace wmfemfhelper
{
// not really a gradient; create UnifiedTransparencePrimitive2D
rTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::UnifiedTransparencePrimitive2D>(
+ new drawinglayer::primitive2d::UnifiedTransparencePrimitive2D(
xSubContent,
aAttribute.getStartColor().luminance()));
}
@@ -2879,7 +2879,7 @@ namespace wmfemfhelper
// create transparence primitive
rTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::TransparencePrimitive2D>(
+ new drawinglayer::primitive2d::TransparencePrimitive2D(
xSubContent,
drawinglayer::primitive2d::Primitive2DContainer { xTransparence }));
}
@@ -2981,7 +2981,7 @@ namespace wmfemfhelper
{
// not really a gradient
rTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::PolyPolygonColorPrimitive2D>(
+ new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D(
aPolyPolygon,
aAttribute.getStartColor()));
}
@@ -2989,7 +2989,7 @@ namespace wmfemfhelper
{
// really a gradient
rTargetHolders.Current().append(
- std::make_unique<drawinglayer::primitive2d::PolyPolygonGradientPrimitive2D>(
+ new drawinglayer::primitive2d::PolyPolygonGradientPrimitive2D(
aPolyPolygon,
aAttribute));
}