[Libreoffice-commits] core.git: 3 commits - chart2/source filter/source
Noel Grandin
noel.grandin at collabora.co.uk
Mon Jun 11 06:27:05 UTC 2018
chart2/source/view/charttypes/AreaChart.cxx | 27 +++----
chart2/source/view/charttypes/AreaChart.hxx | 2
chart2/source/view/charttypes/BarChart.cxx | 16 ++--
chart2/source/view/charttypes/BarChart.hxx | 2
chart2/source/view/charttypes/BubbleChart.cxx | 10 +-
chart2/source/view/charttypes/CandleStickChart.cxx | 8 +-
chart2/source/view/charttypes/CandleStickChart.hxx | 2
chart2/source/view/charttypes/NetChart.cxx | 24 +++---
chart2/source/view/charttypes/PieChart.cxx | 12 +--
chart2/source/view/charttypes/PieChart.hxx | 2
chart2/source/view/charttypes/VSeriesPlotter.cxx | 69 ++++++++++---------
chart2/source/view/inc/VSeriesPlotter.hxx | 9 +-
chart2/source/view/main/ChartView.cxx | 4 -
filter/source/svg/svgwriter.cxx | 35 ++-------
filter/source/svg/svgwriter.hxx | 6 -
filter/source/xsltdialog/xmlfiltersettingsdialog.cxx | 15 +---
filter/source/xsltdialog/xmlfiltersettingsdialog.hxx | 2
17 files changed, 113 insertions(+), 132 deletions(-)
New commits:
commit 0c195667cf9408c489913b7591d16505fc237741
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Mon Jun 4 16:19:16 2018 +0200
loplugin:useuniqueptr in VDataSeriesGroup
Change-Id: Ic2425c3b4068b3ec8ce6ba9f48311c7d2ab6e933
Reviewed-on: https://gerrit.libreoffice.org/55525
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/chart2/source/view/charttypes/AreaChart.cxx b/chart2/source/view/charttypes/AreaChart.cxx
index 22d952b8eeff..7ecf7e9ebeeb 100644
--- a/chart2/source/view/charttypes/AreaChart.cxx
+++ b/chart2/source/view/charttypes/AreaChart.cxx
@@ -144,7 +144,7 @@ drawing::Direction3D AreaChart::getPreferredDiagramAspectRatio() const
return aRet;
}
-void AreaChart::addSeries( VDataSeries* pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot )
+void AreaChart::addSeries( std::unique_ptr<VDataSeries> pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot )
{
if( m_bArea && pSeries )
{
@@ -160,7 +160,7 @@ void AreaChart::addSeries( VDataSeries* pSeries, sal_Int32 zSlot, sal_Int32 xSlo
xSlot=0;
ySlot=0;
}
- VSeriesPlotter::addSeries( pSeries, zSlot, xSlot, ySlot );
+ VSeriesPlotter::addSeries( std::move(pSeries), zSlot, xSlot, ySlot );
}
void lcl_removeDuplicatePoints( drawing::PolyPolygonShape3D& rPolyPoly, PlottingPositionHelper& rPosHelper )
@@ -540,7 +540,7 @@ void AreaChart::impl_createSeriesShapes()
drawing::PolyPolygonShape3D* pSeriesPoly = nullptr;
//iterate through all series
- for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
+ for( std::unique_ptr<VDataSeries> const & pSeries : rXSlot.m_aSeriesVector )
{
sal_Int32 nAttachedAxisIndex = pSeries->getAttachedAxisIndex();
PlottingPositionHelper* pPosHelper = &(getPlottingPositionHelper( nAttachedAxisIndex ));
@@ -554,12 +554,12 @@ void AreaChart::impl_createSeriesShapes()
pSeriesPoly = &pSeries->m_aPolyPolygonShape3D;
if( m_bArea )
{
- if( !impl_createArea( pSeries, pSeriesPoly, aPreviousSeriesPolyMap[nAttachedAxisIndex], pPosHelper ) )
+ if( !impl_createArea( pSeries.get(), pSeriesPoly, aPreviousSeriesPolyMap[nAttachedAxisIndex], pPosHelper ) )
continue;
}
if( m_bLine )
{
- if( !impl_createLine( pSeries, pSeriesPoly, pPosHelper ) )
+ if( !impl_createLine( pSeries.get(), pSeriesPoly, pPosHelper ) )
continue;
}
aPreviousSeriesPolyMap[nAttachedAxisIndex] = pSeriesPoly;
@@ -586,13 +586,12 @@ void lcl_reorderSeries( std::vector< std::vector< VDataSeriesGroup > >& rZSlots
std::vector< VDataSeriesGroup >::reverse_iterator aXIt( aZIt->rbegin() );
std::vector< VDataSeriesGroup >::reverse_iterator aXEnd( aZIt->rend() );
for( ; aXIt != aXEnd; ++aXIt )
- aXSlot.push_back(*aXIt);
+ aXSlot.push_back(std::move(*aXIt));
- aRet.push_back(aXSlot);
+ aRet.push_back(std::move(aXSlot));
}
- rZSlots.clear();
- rZSlots = aRet;
+ rZSlots = std::move(aRet);
}
}//anonymous namespace
@@ -664,7 +663,7 @@ void AreaChart::createShapes()
//iterate through all x slots in this category to get 100percent sum
for( auto const& rXSlot : rZSlot )
{
- for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
+ for( std::unique_ptr<VDataSeries> const & pSeries : rXSlot.m_aSeriesVector )
{
if(!pSeries)
continue;
@@ -701,12 +700,12 @@ void AreaChart::createShapes()
{
std::vector<std::map< sal_Int32, double > > aLogicYForNextSeriesMapByX(nEndIndex); //one for each different nAttachedAxisIndex
//iterate through all series
- for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
+ for( std::unique_ptr<VDataSeries> const & pSeries : rXSlot.m_aSeriesVector )
{
if(!pSeries)
continue;
- uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes = getSeriesGroupShapeFrontChild(pSeries, m_xSeriesTarget);
+ uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes = getSeriesGroupShapeFrontChild(pSeries.get(), m_xSeriesTarget);
sal_Int32 nAttachedAxisIndex = pSeries->getAttachedAxisIndex();
PlottingPositionHelper* pPosHelper = &(getPlottingPositionHelper( nAttachedAxisIndex ));
@@ -789,7 +788,7 @@ void AreaChart::createShapes()
drawing::Position3D aScenePosition( pPosHelper->transformLogicToScene( fLogicX,fLogicY,fLogicZ, false ) );
//better performance for big data
- FormerPoint aFormerPoint( aSeriesFormerPointMap[pSeries] );
+ FormerPoint aFormerPoint( aSeriesFormerPointMap[pSeries.get()] );
pPosHelper->setCoordinateSystemResolution( m_aCoordinateSystemResolution );
if( !pSeries->isAttributedDataPoint(nIndex)
&&
@@ -800,7 +799,7 @@ void AreaChart::createShapes()
m_bPointsWereSkipped = true;
continue;
}
- aSeriesFormerPointMap[pSeries] = FormerPoint(aScaledLogicPosition.PositionX, aScaledLogicPosition.PositionY, aScaledLogicPosition.PositionZ);
+ aSeriesFormerPointMap[pSeries.get()] = FormerPoint(aScaledLogicPosition.PositionX, aScaledLogicPosition.PositionY, aScaledLogicPosition.PositionZ);
//store point information for series polygon
//for area and/or line (symbols only do not need this)
diff --git a/chart2/source/view/charttypes/AreaChart.hxx b/chart2/source/view/charttypes/AreaChart.hxx
index 119e0a51d5b6..6c8bdba51c09 100644
--- a/chart2/source/view/charttypes/AreaChart.hxx
+++ b/chart2/source/view/charttypes/AreaChart.hxx
@@ -40,7 +40,7 @@ public:
virtual ~AreaChart() override;
virtual void createShapes() override;
- virtual void addSeries( VDataSeries* pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot ) override;
+ virtual void addSeries( std::unique_ptr<VDataSeries> pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot ) override;
virtual css::drawing::Direction3D getPreferredDiagramAspectRatio() const override;
diff --git a/chart2/source/view/charttypes/BarChart.cxx b/chart2/source/view/charttypes/BarChart.cxx
index ec9940cf6b04..146373edd0b2 100644
--- a/chart2/source/view/charttypes/BarChart.cxx
+++ b/chart2/source/view/charttypes/BarChart.cxx
@@ -361,7 +361,7 @@ bool lcl_hasGeometry3DVariableWidth( sal_Int32 nGeometry3D )
}
}// end anonymous namespace
-void BarChart::addSeries( VDataSeries* pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot )
+void BarChart::addSeries( std::unique_ptr<VDataSeries> pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot )
{
if( !pSeries )
return;
@@ -378,7 +378,7 @@ void BarChart::addSeries( VDataSeries* pSeries, sal_Int32 zSlot, sal_Int32 xSlot
if(zSlot>=static_cast<sal_Int32>(m_aZSlots.size()))
m_aZSlots.resize(zSlot+1);
}
- VSeriesPlotter::addSeries( pSeries, zSlot, xSlot, ySlot );
+ VSeriesPlotter::addSeries( std::move(pSeries), zSlot, xSlot, ySlot );
}
//better performance for big data
@@ -601,7 +601,7 @@ void BarChart::createShapes()
double fNegativeLogicYForNextSeries = fBaseValue;
//iterate through all series in this x slot
- for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
+ for( std::unique_ptr<VDataSeries> const & pSeries : rXSlot.m_aSeriesVector )
{
if(!pSeries)
continue;
@@ -629,7 +629,7 @@ void BarChart::createShapes()
bDrawConnectionLinesInited = true;
}
- uno::Reference<drawing::XShapes> xSeriesGroupShape_Shapes(getSeriesGroupShape(pSeries, xSeriesTarget));
+ uno::Reference<drawing::XShapes> xSeriesGroupShape_Shapes(getSeriesGroupShape(pSeries.get(), xSeriesTarget));
uno::Reference<drawing::XShape> xSeriesGroupShape(xSeriesGroupShape_Shapes, uno::UNO_QUERY);
// Suspend setting rects dirty for the duration of this call
aShapeSet.insert(xSeriesGroupShape);
@@ -749,7 +749,7 @@ void BarChart::createShapes()
}
//better performance for big data
- FormerBarPoint aFormerPoint( aSeriesFormerPointMap[pSeries] );
+ FormerBarPoint aFormerPoint( aSeriesFormerPointMap[pSeries.get()] );
pPosHelper->setCoordinateSystemResolution( m_aCoordinateSystemResolution );
if( !pSeries->isAttributedDataPoint(nPointIndex)
&&
@@ -764,7 +764,7 @@ void BarChart::createShapes()
m_bPointsWereSkipped = true;
continue;
}
- aSeriesFormerPointMap[pSeries] = FormerBarPoint(fLogicX,fUpperYValue,fLowerYValue,fLogicZ);
+ aSeriesFormerPointMap[pSeries.get()] = FormerBarPoint(fLogicX,fUpperYValue,fLowerYValue,fLogicZ);
if( bDrawConnectionLines )
{
@@ -930,7 +930,7 @@ void BarChart::createShapes()
for( auto const& rXSlot : rZSlot )
{
//iterate through all series in this x slot
- for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
+ for( std::unique_ptr<VDataSeries> const & pSeries : rXSlot.m_aSeriesVector )
{
if(!pSeries)
continue;
@@ -948,7 +948,7 @@ void BarChart::createShapes()
pPosHelper->transformScaledLogicToScene( aPoly );
uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes(
- getSeriesGroupShape(pSeries, xSeriesTarget) );
+ getSeriesGroupShape(pSeries.get(), xSeriesTarget) );
uno::Reference< drawing::XShape > xShape( m_pShapeFactory->createLine2D(
xSeriesGroupShape_Shapes, PolyToPointSequence( aPoly ) ) );
setMappedProperties( xShape, pSeries->getPropertiesOfSeries()
diff --git a/chart2/source/view/charttypes/BarChart.hxx b/chart2/source/view/charttypes/BarChart.hxx
index c35c7321e8a0..ed4457affb71 100644
--- a/chart2/source/view/charttypes/BarChart.hxx
+++ b/chart2/source/view/charttypes/BarChart.hxx
@@ -38,7 +38,7 @@ public:
virtual ~BarChart() override;
virtual void createShapes() override;
- virtual void addSeries( VDataSeries* pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot ) override;
+ virtual void addSeries( std::unique_ptr<VDataSeries> pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot ) override;
virtual css::drawing::Direction3D getPreferredDiagramAspectRatio() const override;
diff --git a/chart2/source/view/charttypes/BubbleChart.cxx b/chart2/source/view/charttypes/BubbleChart.cxx
index ffd37cc57097..8036f9e9aa42 100644
--- a/chart2/source/view/charttypes/BubbleChart.cxx
+++ b/chart2/source/view/charttypes/BubbleChart.cxx
@@ -74,7 +74,7 @@ void BubbleChart::calculateMaximumLogicBubbleSize()
{
for( auto const& rXSlot : rZSlot )
{
- for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
+ for( std::unique_ptr<VDataSeries> const & pSeries : rXSlot.m_aSeriesVector )
{
if(!pSeries)
continue;
@@ -205,7 +205,7 @@ void BubbleChart::createShapes()
for( auto const& rXSlot : rZSlot )
{
//iterate through all series
- for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
+ for( std::unique_ptr<VDataSeries> const & pSeries : rXSlot.m_aSeriesVector )
{
if(!pSeries)
continue;
@@ -213,7 +213,7 @@ void BubbleChart::createShapes()
bool bHasFillColorMapping = pSeries->hasPropertyMapping("FillColor");
bool bHasBorderColorMapping = pSeries->hasPropertyMapping("LineColor");
- uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes = getSeriesGroupShape(pSeries, xSeriesTarget);
+ uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes = getSeriesGroupShape(pSeries.get(), xSeriesTarget);
sal_Int32 nAttachedAxisIndex = pSeries->getAttachedAxisIndex();
PlottingPositionHelper* pPosHelper = &(getPlottingPositionHelper( nAttachedAxisIndex ));
@@ -246,7 +246,7 @@ void BubbleChart::createShapes()
drawing::Position3D aScenePosition( pPosHelper->transformLogicToScene( fLogicX,fLogicY,fLogicZ, false ) );
//better performance for big data
- FormerPoint aFormerPoint( aSeriesFormerPointMap[pSeries] );
+ FormerPoint aFormerPoint( aSeriesFormerPointMap[pSeries.get()] );
pPosHelper->setCoordinateSystemResolution( m_aCoordinateSystemResolution );
if( !pSeries->isAttributedDataPoint(nIndex)
&&
@@ -257,7 +257,7 @@ void BubbleChart::createShapes()
m_bPointsWereSkipped = true;
continue;
}
- aSeriesFormerPointMap[pSeries] = FormerPoint(aScaledLogicPosition.PositionX, aScaledLogicPosition.PositionY, aScaledLogicPosition.PositionZ);
+ aSeriesFormerPointMap[pSeries.get()] = FormerPoint(aScaledLogicPosition.PositionX, aScaledLogicPosition.PositionY, aScaledLogicPosition.PositionZ);
//create a single datapoint if point is visible
if( !bIsVisible )
diff --git a/chart2/source/view/charttypes/CandleStickChart.cxx b/chart2/source/view/charttypes/CandleStickChart.cxx
index 3b8bfd338a1d..201aeafc928a 100644
--- a/chart2/source/view/charttypes/CandleStickChart.cxx
+++ b/chart2/source/view/charttypes/CandleStickChart.cxx
@@ -67,10 +67,10 @@ drawing::Direction3D CandleStickChart::getPreferredDiagramAspectRatio() const
return drawing::Direction3D(-1,-1,-1);
}
-void CandleStickChart::addSeries( VDataSeries* pSeries, sal_Int32 /* zSlot */, sal_Int32 xSlot, sal_Int32 ySlot )
+void CandleStickChart::addSeries( std::unique_ptr<VDataSeries> pSeries, sal_Int32 /* zSlot */, sal_Int32 xSlot, sal_Int32 ySlot )
{
//ignore y stacking for candle stick chart
- VSeriesPlotter::addSeries( pSeries, 0, xSlot, ySlot );
+ VSeriesPlotter::addSeries( std::move(pSeries), 0, xSlot, ySlot );
}
void CandleStickChart::createShapes()
@@ -159,7 +159,7 @@ void CandleStickChart::createShapes()
for( auto const& rXSlot : rZSlot )
{
//iterate through all series in this x slot
- for( VDataSeries* const pSeries : rXSlot.m_aSeriesVector )
+ for( std::unique_ptr<VDataSeries> const & pSeries : rXSlot.m_aSeriesVector )
{
//collect data point information (logic coordinates, style ):
double fUnscaledX = pSeries->getXValue( nIndex );
@@ -213,7 +213,7 @@ void CandleStickChart::createShapes()
uno::Reference< drawing::XShapes > xPointGroupShape_Shapes(nullptr);
{
OUString aPointCID = ObjectIdentifier::createPointCID( pSeries->getPointCID_Stub(), nIndex );
- uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes( getSeriesGroupShape(pSeries, xSeriesTarget) );
+ uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes( getSeriesGroupShape(pSeries.get(), xSeriesTarget) );
xPointGroupShape_Shapes = createGroupShape(xSeriesGroupShape_Shapes,aPointCID);
}
diff --git a/chart2/source/view/charttypes/CandleStickChart.hxx b/chart2/source/view/charttypes/CandleStickChart.hxx
index af19e2d1e0ba..2d289131827a 100644
--- a/chart2/source/view/charttypes/CandleStickChart.hxx
+++ b/chart2/source/view/charttypes/CandleStickChart.hxx
@@ -38,7 +38,7 @@ public:
virtual ~CandleStickChart() override;
virtual void createShapes() override;
- virtual void addSeries( VDataSeries* pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot ) override;
+ virtual void addSeries( std::unique_ptr<VDataSeries> pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot ) override;
virtual css::drawing::Direction3D getPreferredDiagramAspectRatio() const override;
diff --git a/chart2/source/view/charttypes/NetChart.cxx b/chart2/source/view/charttypes/NetChart.cxx
index cbecb881b759..d4fe9c4eeb08 100644
--- a/chart2/source/view/charttypes/NetChart.cxx
+++ b/chart2/source/view/charttypes/NetChart.cxx
@@ -253,7 +253,7 @@ void NetChart::impl_createSeriesShapes()
drawing::PolyPolygonShape3D* pSeriesPoly = nullptr;
//iterate through all series
- for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
+ for( std::unique_ptr<VDataSeries> const & pSeries : rXSlot.m_aSeriesVector )
{
sal_Int32 nAttachedAxisIndex = pSeries->getAttachedAxisIndex();
PlottingPositionHelper* pPosHelper = &(getPlottingPositionHelper( nAttachedAxisIndex ));
@@ -264,12 +264,12 @@ void NetChart::impl_createSeriesShapes()
pSeriesPoly = &pSeries->m_aPolyPolygonShape3D;
if( m_bArea )
{
- if( !impl_createArea( pSeries, pSeriesPoly, aPreviousSeriesPolyMap[nAttachedAxisIndex], pPosHelper ) )
+ if( !impl_createArea( pSeries.get(), pSeriesPoly, aPreviousSeriesPolyMap[nAttachedAxisIndex], pPosHelper ) )
continue;
}
if( m_bLine )
{
- if( !impl_createLine( pSeries, pSeriesPoly, pPosHelper ) )
+ if( !impl_createLine( pSeries.get(), pSeriesPoly, pPosHelper ) )
continue;
}
aPreviousSeriesPolyMap[nAttachedAxisIndex] = pSeriesPoly;
@@ -291,18 +291,16 @@ void lcl_reorderSeries( std::vector< std::vector< VDataSeriesGroup > >& rZSlots
for( ; aZIt != aZEnd; ++aZIt )
{
std::vector< VDataSeriesGroup > aXSlot;
- aXSlot.reserve( aZIt->size() );
std::vector< VDataSeriesGroup >::reverse_iterator aXIt( aZIt->rbegin() );
std::vector< VDataSeriesGroup >::reverse_iterator aXEnd( aZIt->rend() );
for( ; aXIt != aXEnd; ++aXIt )
- aXSlot.push_back(*aXIt);
+ aXSlot.push_back(std::move(*aXIt));
- aRet.push_back(aXSlot);
+ aRet.push_back(std::move(aXSlot));
}
- rZSlots.clear();
- rZSlots = aRet;
+ rZSlots = std::move(aRet);
}
}//anonymous namespace
@@ -372,7 +370,7 @@ void NetChart::createShapes()
//iterate through all x slots in this category to get 100percent sum
for( auto const& rXSlot : rZSlot )
{
- for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
+ for( std::unique_ptr<VDataSeries> const & pSeries : rXSlot.m_aSeriesVector )
{
if(!pSeries)
continue;
@@ -404,7 +402,7 @@ void NetChart::createShapes()
{
std::map< sal_Int32, double > aLogicYForNextSeriesMap;//one for each different nAttachedAxisIndex
//iterate through all series
- for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
+ for( std::unique_ptr<VDataSeries> const & pSeries : rXSlot.m_aSeriesVector )
{
if(!pSeries)
continue;
@@ -415,7 +413,7 @@ void NetChart::createShapes()
if( m_bArea && (rXSlot.m_aSeriesVector.size() == 1) && (nIndex >= pSeries->getTotalPointCount()) )
continue;
- uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes = getSeriesGroupShapeFrontChild(pSeries, m_xSeriesTarget);
+ uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes = getSeriesGroupShapeFrontChild(pSeries.get(), m_xSeriesTarget);
sal_Int32 nAttachedAxisIndex = pSeries->getAttachedAxisIndex();
PlottingPositionHelper* pPosHelper = &(getPlottingPositionHelper( nAttachedAxisIndex ));
@@ -497,7 +495,7 @@ void NetChart::createShapes()
drawing::Position3D aScenePosition( pPosHelper->transformLogicToScene( fLogicX,fLogicY,fLogicZ, false ) );
//better performance for big data
- FormerPoint aFormerPoint( aSeriesFormerPointMap[pSeries] );
+ FormerPoint aFormerPoint( aSeriesFormerPointMap[pSeries.get()] );
pPosHelper->setCoordinateSystemResolution( m_aCoordinateSystemResolution );
if( !pSeries->isAttributedDataPoint(nIndex)
&&
@@ -508,7 +506,7 @@ void NetChart::createShapes()
m_bPointsWereSkipped = true;
continue;
}
- aSeriesFormerPointMap[pSeries] = FormerPoint(aScaledLogicPosition.PositionX, aScaledLogicPosition.PositionY, aScaledLogicPosition.PositionZ);
+ aSeriesFormerPointMap[pSeries.get()] = FormerPoint(aScaledLogicPosition.PositionX, aScaledLogicPosition.PositionY, aScaledLogicPosition.PositionZ);
//store point information for series polygon
//for area and/or line (symbols only do not need this)
diff --git a/chart2/source/view/charttypes/PieChart.cxx b/chart2/source/view/charttypes/PieChart.cxx
index 7c24f5e0c4a3..ec234ac26be2 100644
--- a/chart2/source/view/charttypes/PieChart.cxx
+++ b/chart2/source/view/charttypes/PieChart.cxx
@@ -383,9 +383,9 @@ void PieChart::createTextLabelShape(
m_aLabelInfoList.push_back(aPieLabelInfo);
}
-void PieChart::addSeries( VDataSeries* pSeries, sal_Int32 /* zSlot */, sal_Int32 /* xSlot */, sal_Int32 /* ySlot */ )
+void PieChart::addSeries( std::unique_ptr<VDataSeries> pSeries, sal_Int32 /* zSlot */, sal_Int32 /* xSlot */, sal_Int32 /* ySlot */ )
{
- VSeriesPlotter::addSeries( pSeries, 0, -1, 0 );
+ VSeriesPlotter::addSeries( std::move(pSeries), 0, -1, 0 );
}
double PieChart::getMinimumX()
@@ -404,11 +404,11 @@ double PieChart::getMaxOffset()
if( m_aZSlots.front().empty() )
return m_fMaxOffset;
- const std::vector< VDataSeries* >& rSeriesList( m_aZSlots.front().front().m_aSeriesVector );
+ const std::vector< std::unique_ptr<VDataSeries> >& rSeriesList( m_aZSlots.front().front().m_aSeriesVector );
if(rSeriesList.empty())
return m_fMaxOffset;
- VDataSeries* pSeries = rSeriesList.front();
+ VDataSeries* pSeries = rSeriesList.front().get();
uno::Reference< beans::XPropertySet > xSeriesProp( pSeries->getPropertiesOfSeries() );
if( !xSeriesProp.is() )
return m_fMaxOffset;
@@ -562,10 +562,10 @@ void PieChart::createShapes()
{
ShapeParam aParam;
- std::vector< VDataSeries* >* pSeriesList = &(aXSlotIter->m_aSeriesVector);
+ std::vector< std::unique_ptr<VDataSeries> >* pSeriesList = &(aXSlotIter->m_aSeriesVector);
if(pSeriesList->empty())//there should be only one series in each x slot
continue;
- VDataSeries* pSeries = pSeriesList->front();
+ VDataSeries* pSeries = pSeriesList->front().get();
if(!pSeries)
continue;
diff --git a/chart2/source/view/charttypes/PieChart.hxx b/chart2/source/view/charttypes/PieChart.hxx
index 0b97eb1090df..e7c3e4b19a7d 100644
--- a/chart2/source/view/charttypes/PieChart.hxx
+++ b/chart2/source/view/charttypes/PieChart.hxx
@@ -46,7 +46,7 @@ public:
virtual void rearrangeLabelToAvoidOverlapIfRequested( const css::awt::Size& rPageSize ) override;
virtual void setScales( const std::vector< ExplicitScaleData >& rScales, bool bSwapXAndYAxis ) override;
- virtual void addSeries( VDataSeries* pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot ) override;
+ virtual void addSeries( std::unique_ptr<VDataSeries> pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot ) override;
virtual css::drawing::Direction3D getPreferredDiagramAspectRatio() const override;
virtual bool shouldSnapRectToUsedArea() override;
diff --git a/chart2/source/view/charttypes/VSeriesPlotter.cxx b/chart2/source/view/charttypes/VSeriesPlotter.cxx
index 011381e4db94..92ede0fb1a2d 100644
--- a/chart2/source/view/charttypes/VSeriesPlotter.cxx
+++ b/chart2/source/view/charttypes/VSeriesPlotter.cxx
@@ -106,12 +106,21 @@ VDataSeriesGroup::CachedYValues::CachedYValues()
{
}
-VDataSeriesGroup::VDataSeriesGroup( VDataSeries* pSeries )
- : m_aSeriesVector(1,pSeries)
+VDataSeriesGroup::VDataSeriesGroup( std::unique_ptr<VDataSeries> pSeries )
+ : m_aSeriesVector(1)
, m_bMaxPointCountDirty(true)
, m_nMaxPointCount(0)
, m_aListOfCachedYValues()
{
+ m_aSeriesVector[0] = std::move(pSeries);
+}
+
+VDataSeriesGroup::VDataSeriesGroup( VDataSeriesGroup&& other )
+ : m_aSeriesVector( std::move(other.m_aSeriesVector) )
+ , m_bMaxPointCountDirty( other.m_bMaxPointCountDirty )
+ , m_nMaxPointCount( std::move(other.m_nMaxPointCount) )
+ , m_aListOfCachedYValues( std::move(other.m_aListOfCachedYValues) )
+{
}
VDataSeriesGroup::~VDataSeriesGroup()
@@ -121,16 +130,12 @@ VDataSeriesGroup::~VDataSeriesGroup()
void VDataSeriesGroup::deleteSeries()
{
//delete all data series help objects:
- for (VDataSeries* pSeries : m_aSeriesVector)
- {
- delete pSeries;
- }
m_aSeriesVector.clear();
}
-void VDataSeriesGroup::addSeries( VDataSeries* pSeries )
+void VDataSeriesGroup::addSeries( std::unique_ptr<VDataSeries> pSeries )
{
- m_aSeriesVector.push_back(pSeries);
+ m_aSeriesVector.push_back(std::move(pSeries));
m_bMaxPointCountDirty=true;
}
@@ -179,7 +184,7 @@ VSeriesPlotter::~VSeriesPlotter()
m_aSecondaryValueScales.clear();
}
-void VSeriesPlotter::addSeries( VDataSeries* pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot )
+void VSeriesPlotter::addSeries( std::unique_ptr<VDataSeries> pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot )
{
//take ownership of pSeries
@@ -204,8 +209,8 @@ void VSeriesPlotter::addSeries( VDataSeries* pSeries, sal_Int32 zSlot, sal_Int32
{
//new z slot
std::vector< VDataSeriesGroup > aZSlot;
- aZSlot.emplace_back(pSeries );
- m_aZSlots.push_back( aZSlot );
+ aZSlot.emplace_back( std::move(pSeries) );
+ m_aZSlots.push_back( std::move(aZSlot) );
}
else
{
@@ -215,7 +220,7 @@ void VSeriesPlotter::addSeries( VDataSeries* pSeries, sal_Int32 zSlot, sal_Int32
if(xSlot<0 || xSlot>=static_cast<sal_Int32>(rXSlots.size()))
{
//append the series to already existing x series
- rXSlots.emplace_back(pSeries );
+ rXSlots.emplace_back( std::move(pSeries) );
}
else
{
@@ -234,7 +239,7 @@ void VSeriesPlotter::addSeries( VDataSeries* pSeries, sal_Int32 zSlot, sal_Int32
else if( ySlot == -1 || ySlot >= nYSlotCount)
{
//append the series to already existing y series
- rYSlots.addSeries(pSeries);
+ rYSlots.addSeries( std::move(pSeries) );
}
else
{
@@ -270,7 +275,7 @@ void VSeriesPlotter::releaseShapes()
for (VDataSeriesGroup const & rGroup : rGroupVector)
{
//iterate through all series in this x slot
- for (VDataSeries* pSeries : rGroup.m_aSeriesVector)
+ for (std::unique_ptr<VDataSeries> const & pSeries : rGroup.m_aSeriesVector)
{
pSeries->releaseShapes();
}
@@ -1700,7 +1705,7 @@ sal_Int32 VDataSeriesGroup::getPointCount() const
sal_Int32 nRet = 0;
- for (VDataSeries* pSeries : m_aSeriesVector)
+ for (std::unique_ptr<VDataSeries> const & pSeries : m_aSeriesVector)
{
sal_Int32 nPointCount = pSeries->getTotalPointCount();
if( nPointCount>nRet )
@@ -1729,7 +1734,7 @@ void VDataSeriesGroup::getMinimumAndMaximiumX( double& rfMinimum, double& rfMaxi
::rtl::math::setInf(&rfMinimum, false);
::rtl::math::setInf(&rfMaximum, true);
- for (VDataSeries* pSeries : m_aSeriesVector)
+ for (std::unique_ptr<VDataSeries> const & pSeries : m_aSeriesVector)
{
sal_Int32 nPointCount = pSeries->getTotalPointCount();
for(sal_Int32 nN=0;nN<nPointCount;nN++)
@@ -1893,7 +1898,7 @@ void VDataSeriesGroup::getMinimumAndMaximiumYInContinuousXRange(
return;
PerXMinMaxCalculator aRangeCalc;
- for (const VDataSeries* pSeries : m_aSeriesVector)
+ for (const std::unique_ptr<VDataSeries> & pSeries : m_aSeriesVector)
{
if (!pSeries)
continue;
@@ -1954,7 +1959,7 @@ void VDataSeriesGroup::calculateYMinAndMaxForCategory( sal_Int32 nCategoryIndex
if( bSeparateStackingForDifferentSigns )
{
- for (const VDataSeries* pSeries: m_aSeriesVector)
+ for (const std::unique_ptr<VDataSeries> & pSeries: m_aSeriesVector)
{
if( nAxisIndex != pSeries->getAttachedAxisIndex() )
continue;
@@ -1982,7 +1987,7 @@ void VDataSeriesGroup::calculateYMinAndMaxForCategory( sal_Int32 nCategoryIndex
}
else
{
- for (const VDataSeries* pSeries: m_aSeriesVector)
+ for (const std::unique_ptr<VDataSeries> & pSeries: m_aSeriesVector)
{
if( nAxisIndex != pSeries->getAttachedAxisIndex() )
continue;
@@ -2102,7 +2107,7 @@ VDataSeries* VSeriesPlotter::getFirstSeries() const
{
if (!rGroup[0].m_aSeriesVector.empty())
{
- VDataSeries* pSeries = rGroup[0].m_aSeriesVector[0];
+ VDataSeries* pSeries = rGroup[0].m_aSeriesVector[0].get();
if (pSeries)
return pSeries;
}
@@ -2136,10 +2141,10 @@ uno::Sequence< OUString > VSeriesPlotter::getSeriesNames() const
{
if (!rGroup.empty())
{
- VDataSeriesGroup aSeriesGroup(rGroup[0]);
- if (!aSeriesGroup.m_aSeriesVector.empty())
+ VDataSeriesGroup const & rSeriesGroup(rGroup[0]);
+ if (!rSeriesGroup.m_aSeriesVector.empty())
{
- VDataSeries* pSeries = aSeriesGroup.m_aSeriesVector[0];
+ VDataSeries const * pSeries = rSeriesGroup.m_aSeriesVector[0].get();
uno::Reference< XDataSeries > xSeries( pSeries ? pSeries->getModel() : nullptr );
if( xSeries.is() )
{
@@ -2158,14 +2163,14 @@ void VSeriesPlotter::setPageReferenceSize( const css::awt::Size & rPageRefSize )
// set reference size also at all data series
- std::vector<VDataSeriesGroup> aSeriesGroups(FlattenVector(m_aZSlots));
- for (VDataSeriesGroup const & rGroup : aSeriesGroups)
- {
- for (VDataSeries* pSeries : rGroup.m_aSeriesVector)
+ for (auto const & outer : m_aZSlots)
+ for (VDataSeriesGroup const & rGroup : outer)
{
- pSeries->setPageReferenceSize(m_aPageReferenceSize);
+ for (std::unique_ptr<VDataSeries> const & pSeries : rGroup.m_aSeriesVector)
+ {
+ pSeries->setPageReferenceSize(m_aPageReferenceSize);
+ }
}
- }
}
//better performance for big data
@@ -2206,7 +2211,7 @@ std::vector< ViewLegendEntry > VSeriesPlotter::createLegendEntries(
{
for (VDataSeriesGroup const & rGroup : rGroupVector)
{
- for (VDataSeries* pSeries : rGroup.m_aSeriesVector)
+ for (std::unique_ptr<VDataSeries> const & pSeries : rGroup.m_aSeriesVector)
{
if (!pSeries)
continue;
@@ -2256,8 +2261,8 @@ std::vector<VDataSeries*> VSeriesPlotter::getAllSeries()
{
for(VDataSeriesGroup const & rGroup : rXSlot)
{
- std::vector<VDataSeries*> aSeriesList = rGroup.m_aSeriesVector;
- aAllSeries.insert(aAllSeries.end(), aSeriesList.begin(), aSeriesList.end());
+ for (std::unique_ptr<VDataSeries> const & p : rGroup.m_aSeriesVector)
+ aAllSeries.push_back(p.get());
}
}
return aAllSeries;
diff --git a/chart2/source/view/inc/VSeriesPlotter.hxx b/chart2/source/view/inc/VSeriesPlotter.hxx
index afe4fb9bdcea..e1eac757381e 100644
--- a/chart2/source/view/inc/VSeriesPlotter.hxx
+++ b/chart2/source/view/inc/VSeriesPlotter.hxx
@@ -83,10 +83,11 @@ class VDataSeriesGroup final
{
public:
VDataSeriesGroup() = delete;
- VDataSeriesGroup( VDataSeries* pSeries );
+ VDataSeriesGroup( std::unique_ptr<VDataSeries> pSeries );
+ VDataSeriesGroup( VDataSeriesGroup&& );
~VDataSeriesGroup();
- void addSeries( VDataSeries* pSeries );//takes ownership of pSeries
+ void addSeries( std::unique_ptr<VDataSeries> pSeries );//takes ownership of pSeries
sal_Int32 getSeriesCount() const;
void deleteSeries();
@@ -103,7 +104,7 @@ public:
, bool bSeparateStackingForDifferentSigns
, double& rfMinimumY, double& rfMaximumY, sal_Int32 nAxisIndex );
- std::vector< VDataSeries* > m_aSeriesVector;
+ std::vector< std::unique_ptr<VDataSeries> > m_aSeriesVector;
private:
//cached values
@@ -144,7 +145,7 @@ public:
* ySlot == already occupied : insert at given y and x position
* ySlot > occupied : stack on top at given x position
*/
- virtual void addSeries( VDataSeries* pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot );
+ virtual void addSeries( std::unique_ptr<VDataSeries> pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot );
/** a value <= 0 for a directions means that this direction can be stretched arbitrary
*/
diff --git a/chart2/source/view/main/ChartView.cxx b/chart2/source/view/main/ChartView.cxx
index 259b58ce7779..247d385fb689 100644
--- a/chart2/source/view/main/ChartView.cxx
+++ b/chart2/source/view/main/ChartView.cxx
@@ -564,7 +564,7 @@ void SeriesPlotterContainer::initializeCooSysAndSeriesPlotter(
if( !bIncludeHiddenCells && !DataSeriesHelper::hasUnhiddenData(xDataSeries) )
continue;
- VDataSeries* pSeries = new VDataSeries( xDataSeries );
+ std::unique_ptr<VDataSeries> pSeries(new VDataSeries( xDataSeries ));
pSeries->setGlobalSeriesIndex(nGlobalSeriesIndex);
nGlobalSeriesIndex++;
@@ -613,7 +613,7 @@ void SeriesPlotterContainer::initializeCooSysAndSeriesPlotter(
// UNO enums have one additional auto-generated case
break;
}
- pPlotter->addSeries( pSeries, zSlot, xSlot, ySlot );
+ pPlotter->addSeries( std::move(pSeries), zSlot, xSlot, ySlot );
}
}
}
commit daa93e62f76a86c66ebaa7e915e1f6fc71ea02e2
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Mon Jun 4 15:16:53 2018 +0200
loplugin:useuniqueptr in SVGTextWriter
Change-Id: I15828d7dca6569bb4792728e947feaaba47e8bf5
Reviewed-on: https://gerrit.libreoffice.org/55524
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/filter/source/svg/svgwriter.cxx b/filter/source/svg/svgwriter.cxx
index 7f740aa7a0c0..c1512f58ecb2 100644
--- a/filter/source/svg/svgwriter.cxx
+++ b/filter/source/svg/svgwriter.cxx
@@ -1233,7 +1233,7 @@ void SVGTextWriter::startTextShape()
mrExport.AddAttribute( XML_NAMESPACE_NONE, aXMLAttrTransform, aTransform );
}
- mpTextShapeElem = new SvXMLElementExport( mrExport, XML_NAMESPACE_NONE, aXMLElemText, true, mbIWS );
+ mpTextShapeElem.reset(new SvXMLElementExport( mrExport, XML_NAMESPACE_NONE, aXMLElemText, true, mbIWS ));
startTextParagraph();
}
}
@@ -1242,17 +1242,10 @@ void SVGTextWriter::startTextShape()
void SVGTextWriter::endTextShape()
{
endTextParagraph();
- if( mrTextShape.is() )
- mrTextShape.clear();
- if( mrParagraphEnumeration.is() )
- mrParagraphEnumeration.clear();
- if( mrCurrentTextParagraph.is() )
- mrCurrentTextParagraph.clear();
- if( mpTextShapeElem )
- {
- delete mpTextShapeElem;
- mpTextShapeElem = nullptr;
- }
+ mrTextShape.clear();
+ mrParagraphEnumeration.clear();
+ mrCurrentTextParagraph.clear();
+ mpTextShapeElem.reset();
mbIsTextShapeStarted = false;
// these need to be invoked after the <text> element has been closed
implExportHyperlinkIds();
@@ -1290,7 +1283,7 @@ void SVGTextWriter::startTextParagraph()
}
maParentFont = vcl::Font();
addFontAttributes( /* isTexTContainer: */ true );
- mpTextParagraphElem = new SvXMLElementExport( mrExport, XML_NAMESPACE_NONE, aXMLElemTspan, mbIWS, mbIWS );
+ mpTextParagraphElem.reset(new SvXMLElementExport( mrExport, XML_NAMESPACE_NONE, aXMLElemTspan, mbIWS, mbIWS ));
if( !mbIsListLevelStyleImage )
{
@@ -1306,13 +1299,7 @@ void SVGTextWriter::endTextParagraph()
mbIsNewListItem = false;
mbIsListLevelStyleImage = false;
mbPositioningNeeded = false;
-
- if( mpTextParagraphElem )
- {
- delete mpTextParagraphElem;
- mpTextParagraphElem = nullptr;
- }
-
+ mpTextParagraphElem.reset();
}
@@ -1326,17 +1313,13 @@ void SVGTextWriter::startTextPosition( bool bExportX, bool bExportY )
if( bExportY )
mrExport.AddAttribute( XML_NAMESPACE_NONE, aXMLAttrY, OUString::number( maTextPos.Y() ) );
- mpTextPositionElem = new SvXMLElementExport( mrExport, XML_NAMESPACE_NONE, aXMLElemTspan, mbIWS, mbIWS );
+ mpTextPositionElem.reset( new SvXMLElementExport( mrExport, XML_NAMESPACE_NONE, aXMLElemTspan, mbIWS, mbIWS ) );
}
void SVGTextWriter::endTextPosition()
{
- if( mpTextPositionElem )
- {
- delete mpTextPositionElem;
- mpTextPositionElem = nullptr;
- }
+ mpTextPositionElem.reset();
}
diff --git a/filter/source/svg/svgwriter.hxx b/filter/source/svg/svgwriter.hxx
index 6de5495c68b4..7340efa42e15 100644
--- a/filter/source/svg/svgwriter.hxx
+++ b/filter/source/svg/svgwriter.hxx
@@ -231,9 +231,9 @@ class SVGTextWriter final
Reference<XTextRange> mrCurrentTextPortion;
const GDIMetaFile* mpTextEmbeddedBitmapMtf;
MapMode* mpTargetMapMode;
- SvXMLElementExport* mpTextShapeElem;
- SvXMLElementExport* mpTextParagraphElem;
- SvXMLElementExport* mpTextPositionElem;
+ std::unique_ptr<SvXMLElementExport> mpTextShapeElem;
+ std::unique_ptr<SvXMLElementExport> mpTextParagraphElem;
+ std::unique_ptr<SvXMLElementExport> mpTextPositionElem;
sal_Int32 mnLeftTextPortionLength;
Point maTextPos;
long int mnTextWidth;
commit 0f0542d55b4b1460f571b2f2877679c468745277
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Mon Jun 4 15:11:48 2018 +0200
loplugin:useuniqueptr in XMLFilterSettingsDialog
Change-Id: I1a72613661d40a7de468a47c09e91c37d9d3dede
Reviewed-on: https://gerrit.libreoffice.org/55523
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
index 5ef80ab68062..fbd47af237bb 100644
--- a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
+++ b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
@@ -743,7 +743,7 @@ bool XMLFilterSettingsDialog::insertOrEdit( filter_info_impl* pNewInfo, const fi
else
{
m_pFilterListBox->addFilterEntry( pFilterEntry );
- maFilterVector.push_back( pFilterEntry );
+ maFilterVector.push_back( std::unique_ptr<filter_info_impl>(pFilterEntry) );
}
}
@@ -841,9 +841,9 @@ void XMLFilterSettingsDialog::onDelete()
m_pFilterListBox->RemoveSelection();
// and delete the filter entry
- maFilterVector.erase(std::find( maFilterVector.begin(), maFilterVector.end(), pInfo ));
-
- delete pInfo;
+ maFilterVector.erase(std::find_if( maFilterVector.begin(), maFilterVector.end(),
+ [&] (std::unique_ptr<filter_info_impl> const & p)
+ { return p.get() == pInfo; }));
}
}
catch( const Exception& )
@@ -1002,12 +1002,7 @@ bool XMLFilterSettingsDialog::EventNotify( NotifyEvent& rNEvt )
void XMLFilterSettingsDialog::disposeFilterList()
{
- for (auto const& filter : maFilterVector)
- {
- delete filter;
- }
maFilterVector.clear();
-
m_pFilterListBox->Clear();
}
@@ -1166,7 +1161,7 @@ void XMLFilterSettingsDialog::initFilterList()
}
// add entry to internal container and to ui filter list box
- maFilterVector.push_back( pTempFilter.get() );
+ maFilterVector.push_back( std::unique_ptr<filter_info_impl>(pTempFilter.get()) );
m_pFilterListBox->addFilterEntry( pTempFilter.release() );
diff --git a/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx b/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx
index 072c5d4542a5..428f503971d1 100644
--- a/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx
+++ b/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx
@@ -123,7 +123,7 @@ private:
css::uno::Reference< css::container::XNameContainer > mxTypeDetection;
css::uno::Reference< css::container::XNameContainer > mxExtendedTypeDetection;
- std::vector< filter_info_impl* > maFilterVector;
+ std::vector< std::unique_ptr<filter_info_impl> > maFilterVector;
VclPtr<XMLFilterListBox> m_pFilterListBox;
VclPtr<SvxPathControl> m_pCtrlFilterList;
More information about the Libreoffice-commits
mailing list