loplugin:unusedindex

Change-Id: I256a807dd2a4c81126b5a76f3d472e31b8224146
Reviewed-on: https://gerrit.libreoffice.org/46652
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
Mike Kaganski
2017-12-18 07:36:32 +01:00
committed by Noel Grandin
parent 39c618caf5
commit 4e144751f1
45 changed files with 485 additions and 814 deletions
+1 -3
View File
@@ -138,10 +138,8 @@ static SbiSymDef* AddSym ( SbiToken eTok, SbiSymPool& rPool, SbiExprType eCurExp
if( pPar )
{
// generate dummy parameters
sal_Int32 n = 1;
for( short i = 0; i < pPar->GetSize(); i++ )
for( sal_Int32 n = 1; n <= pPar->GetSize(); n++ )
{
n += 1;
OUStringBuffer aPar("PAR");
aPar.append(n);
pProc->GetParams().AddSym( aPar.makeStringAndClear() );
+2 -3
View File
@@ -195,9 +195,8 @@ TokenLabelInfo::TokenLabelInfo()
// Token accepted as label by VBA
static const SbiToken eLabelToken[] = { ACCESS, ALIAS, APPEND, BASE, BINARY, CLASSMODULE,
COMPARE, COMPATIBLE, DEFERR, ERROR_, BASIC_EXPLICIT, LIB, LINE, LPRINT, NAME,
TOBJECT, OUTPUT, PROPERTY, RANDOM, READ, STEP, STOP, TEXT, VBASUPPORT, NIL };
SbiToken eTok;
for( const SbiToken* pTok = eLabelToken ; (eTok = *pTok) != NIL ; ++pTok )
TOBJECT, OUTPUT, PROPERTY, RANDOM, READ, STEP, STOP, TEXT, VBASUPPORT };
for( SbiToken eTok : eLabelToken )
{
m_pTokenCanBeLabelTab[eTok] = true;
}
+2 -4
View File
@@ -243,12 +243,10 @@ void SfxDialogLibraryContainer::storeLibrariesToStorage( const uno::Reference< e
// Export the images to the storage
Reference< document::XGraphicObjectResolver > xGraphicResolver =
document::GraphicObjectResolver::createWithStorage( mxContext, xStorage );
std::vector< OUString >::iterator it = vEmbeddedImageURLs.begin();
std::vector< OUString >::iterator it_end = vEmbeddedImageURLs.end();
if ( xGraphicResolver.is() )
{
for ( sal_Int32 count = 0; it != it_end; ++it, ++count )
xGraphicResolver->resolveGraphicObjectURL( *it );
for ( const OUString& rURL : vEmbeddedImageURLs )
xGraphicResolver->resolveGraphicObjectURL( rURL );
}
}
}
@@ -217,11 +217,10 @@ sal_Int16 SAL_CALL CreationWizardUnoDlg::execute( )
void SAL_CALL CreationWizardUnoDlg::initialize( const uno::Sequence< uno::Any >& aArguments )
{
const uno::Any* pArguments = aArguments.getConstArray();
for(sal_Int32 i=0; i<aArguments.getLength(); ++i, ++pArguments)
for(const uno::Any& rArgument : aArguments)
{
beans::PropertyValue aProperty;
if(*pArguments >>= aProperty)
if(rArgument >>= aProperty)
{
if( aProperty.Name == "ParentWindow" )
{
+18 -22
View File
@@ -196,31 +196,29 @@ void DataSourceHelper::readArguments( const uno::Sequence< beans::PropertyValue
, OUString & rRangeRepresentation, uno::Sequence< sal_Int32 >& rSequenceMapping
, bool& bUseColumns, bool& bFirstCellAsLabel, bool& bHasCategories )
{
const beans::PropertyValue* pArguments = rArguments.getConstArray();
for(sal_Int32 i=0; i<rArguments.getLength(); ++i, ++pArguments)
for(const beans::PropertyValue& rProperty : rArguments)
{
const beans::PropertyValue& aProperty = *pArguments;
if ( aProperty.Name == "DataRowSource" )
if ( rProperty.Name == "DataRowSource" )
{
css::chart::ChartDataRowSource eRowSource;
if( aProperty.Value >>= eRowSource )
if( rProperty.Value >>= eRowSource )
bUseColumns = (eRowSource==css::chart::ChartDataRowSource_COLUMNS);
}
else if ( aProperty.Name == "FirstCellAsLabel" )
else if ( rProperty.Name == "FirstCellAsLabel" )
{
aProperty.Value >>= bFirstCellAsLabel;
rProperty.Value >>= bFirstCellAsLabel;
}
else if ( aProperty.Name == "HasCategories" )
else if ( rProperty.Name == "HasCategories" )
{
aProperty.Value >>= bHasCategories;
rProperty.Value >>= bHasCategories;
}
else if ( aProperty.Name == "CellRangeRepresentation" )
else if ( rProperty.Name == "CellRangeRepresentation" )
{
aProperty.Value >>= rRangeRepresentation;
rProperty.Value >>= rRangeRepresentation;
}
else if ( aProperty.Name == "SequenceMapping" )
else if ( rProperty.Name == "SequenceMapping" )
{
aProperty.Value >>= rSequenceMapping;
rProperty.Value >>= rSequenceMapping;
}
}
}
@@ -398,26 +396,24 @@ bool DataSourceHelper::allArgumentsForRectRangeDetected(
{
const uno::Sequence< beans::PropertyValue > aArguments(
xDataProvider->detectArguments( pressUsedDataIntoRectangularFormat( xChartDocument )));
const beans::PropertyValue* pArguments = aArguments.getConstArray();
for(sal_Int32 i=0; i<aArguments.getLength(); ++i, ++pArguments)
for(const beans::PropertyValue& rProperty : aArguments)
{
const beans::PropertyValue& aProperty = *pArguments;
if ( aProperty.Name == "DataRowSource" )
if ( rProperty.Name == "DataRowSource" )
{
bHasDataRowSource =
(aProperty.Value.hasValue() && aProperty.Value.isExtractableTo(
(rProperty.Value.hasValue() && rProperty.Value.isExtractableTo(
cppu::UnoType<css::chart::ChartDataRowSource>::get()));
}
else if ( aProperty.Name == "FirstCellAsLabel" )
else if ( rProperty.Name == "FirstCellAsLabel" )
{
bHasFirstCellAsLabel =
(aProperty.Value.hasValue() && aProperty.Value.isExtractableTo(cppu::UnoType<bool>::get()));
(rProperty.Value.hasValue() && rProperty.Value.isExtractableTo(cppu::UnoType<bool>::get()));
}
else if ( aProperty.Name == "CellRangeRepresentation" )
else if ( rProperty.Name == "CellRangeRepresentation" )
{
OUString aRange;
bHasCellRangeRepresentation =
(aProperty.Value.hasValue() && (aProperty.Value >>= aRange) && !aRange.isEmpty());
(rProperty.Value.hasValue() && (rProperty.Value >>= aRange) && !aRange.isEmpty());
}
}
}
+2 -4
View File
@@ -296,17 +296,15 @@ CellRange getCellRangeFromXMLString( const OUString & rXMLString )
static const sal_Unicode aDollar( '$' );
static const sal_Unicode aBackslash( '\\' );
sal_Int32 nStartPos = 0;
sal_Int32 nEndPos = nStartPos;
const sal_Int32 nLength = rXMLString.getLength();
// reset
CellRange aResult;
// iterate over different ranges
for( sal_Int32 i = 0;
for( sal_Int32 nStartPos = 0, nEndPos = nStartPos;
nEndPos < nLength;
nStartPos = ++nEndPos, i++ )
nStartPos = ++nEndPos )
{
// find start point of next range
+36 -64
View File
@@ -530,44 +530,34 @@ void AreaChart::impl_createSeriesShapes()
//the polygon shapes for each series need to be created before
//iterate through all series again to create the series shapes
std::vector< std::vector< VDataSeriesGroup > >::iterator aZSlotIter = m_aZSlots.begin();
const std::vector< std::vector< VDataSeriesGroup > >::const_iterator aZSlotEnd = m_aZSlots.end();
for( sal_Int32 nZ=1; aZSlotIter != aZSlotEnd; ++aZSlotIter, ++nZ )
for( auto const& rZSlot : m_aZSlots )
{
std::vector< VDataSeriesGroup >::iterator aXSlotIter = aZSlotIter->begin();
const std::vector< VDataSeriesGroup >::const_iterator aXSlotEnd = aZSlotIter->end();
for( ; aXSlotIter != aXSlotEnd; ++aXSlotIter )
for( auto const& rXSlot : rZSlot )
{
std::vector< VDataSeries* >* pSeriesList = &(aXSlotIter->m_aSeriesVector);
std::vector< VDataSeries* >::const_iterator aSeriesIter = pSeriesList->begin();
const std::vector< VDataSeries* >::const_iterator aSeriesEnd = pSeriesList->end();
std::map< sal_Int32, drawing::PolyPolygonShape3D* > aPreviousSeriesPolyMap;//a PreviousSeriesPoly for each different nAttachedAxisIndex
drawing::PolyPolygonShape3D* pSeriesPoly = nullptr;
//iterate through all series
for( ; aSeriesIter != aSeriesEnd; ++aSeriesIter )
for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
{
sal_Int32 nAttachedAxisIndex = (*aSeriesIter)->getAttachedAxisIndex();
sal_Int32 nAttachedAxisIndex = pSeries->getAttachedAxisIndex();
PlottingPositionHelper* pPosHelper = &(getPlottingPositionHelper( nAttachedAxisIndex ));
if(!pPosHelper)
pPosHelper = m_pMainPosHelper.get();
PlotterBase::m_pPosHelper = pPosHelper;
createRegressionCurvesShapes( **aSeriesIter, m_xErrorBarTarget, m_xRegressionCurveEquationTarget,
createRegressionCurvesShapes( *pSeries, m_xErrorBarTarget, m_xRegressionCurveEquationTarget,
m_pPosHelper->maySkipPointsInRegressionCalculation());
pSeriesPoly = &(*aSeriesIter)->m_aPolyPolygonShape3D;
pSeriesPoly = &pSeries->m_aPolyPolygonShape3D;
if( m_bArea )
{
if( !impl_createArea( *aSeriesIter, pSeriesPoly, aPreviousSeriesPolyMap[nAttachedAxisIndex], pPosHelper ) )
if( !impl_createArea( pSeries, pSeriesPoly, aPreviousSeriesPolyMap[nAttachedAxisIndex], pPosHelper ) )
continue;
}
if( m_bLine )
{
if( !impl_createLine( *aSeriesIter, pSeriesPoly, pPosHelper ) )
if( !impl_createLine( pSeries, pSeriesPoly, pPosHelper ) )
continue;
}
aPreviousSeriesPolyMap[nAttachedAxisIndex] = pSeriesPoly;
@@ -666,25 +656,14 @@ void AreaChart::createShapes()
bool bDateCategory = (m_pExplicitCategoriesProvider && m_pExplicitCategoriesProvider->isDateAxis());
std::vector< std::vector< VDataSeriesGroup > >::iterator aZSlotIter = m_aZSlots.begin();
const std::vector< std::vector< VDataSeriesGroup > >::const_iterator aZSlotEnd = m_aZSlots.end();
std::vector<std::map< sal_Int32, double > > aLogicYSumMapByX(nEndIndex);//one for each different nAttachedAxisIndex
for( ; aZSlotIter != aZSlotEnd; ++aZSlotIter )
for( auto const& rZSlot : m_aZSlots )
{
std::vector< VDataSeriesGroup >::iterator aXSlotIter = aZSlotIter->begin();
const std::vector< VDataSeriesGroup >::iterator aXSlotEnd = aZSlotIter->end();
//iterate through all x slots in this category to get 100percent sum
for( ; aXSlotIter != aXSlotEnd; ++aXSlotIter )
for( auto const& rXSlot : rZSlot )
{
std::vector<VDataSeries*>& rSeriesList = aXSlotIter->m_aSeriesVector;
std::vector<VDataSeries*>::iterator aSeriesIter = rSeriesList.begin();
std::vector<VDataSeries*>::iterator aSeriesEnd = rSeriesList.end();
for( ; aSeriesIter != aSeriesEnd; ++aSeriesIter )
for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
{
VDataSeries* pSeries( *aSeriesIter );
if(!pSeries)
continue;
@@ -711,31 +690,23 @@ void AreaChart::createShapes()
}
}
aZSlotIter = m_aZSlots.begin();
for( sal_Int32 nZ=1; aZSlotIter != aZSlotEnd; ++aZSlotIter, ++nZ )
sal_Int32 nZ=1;
for( auto const& rZSlot : m_aZSlots )
{
std::vector< VDataSeriesGroup >::const_iterator aXSlotIter = aZSlotIter->begin();
std::vector< VDataSeriesGroup >::const_iterator aXSlotEnd = aZSlotIter->end();
//for the area chart there should be at most one x slot (no side by side stacking available)
//attention different: xSlots are always interpreted as independent areas one behind the other: @todo this doesn't work why not???
for( sal_Int32 nX=0; aXSlotIter != aXSlotEnd; ++aXSlotIter, ++nX )
for( auto const& rXSlot : rZSlot )
{
const std::vector<VDataSeries*>& rSeriesList = aXSlotIter->m_aSeriesVector;
std::vector<VDataSeries*>::const_iterator aSeriesIter = rSeriesList.begin();
const std::vector<VDataSeries*>::const_iterator aSeriesEnd = rSeriesList.end();
std::vector<std::map< sal_Int32, double > > aLogicYForNextSeriesMapByX(nEndIndex); //one for each different nAttachedAxisIndex
//iterate through all series
for( sal_Int32 nSeriesIndex = 0; aSeriesIter != aSeriesEnd; ++aSeriesIter, ++nSeriesIndex )
for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
{
VDataSeries* pSeries( *aSeriesIter );
if(!pSeries)
continue;
uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes = getSeriesGroupShapeFrontChild(*aSeriesIter, m_xSeriesTarget);
uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes = getSeriesGroupShapeFrontChild(pSeries, m_xSeriesTarget);
sal_Int32 nAttachedAxisIndex = (*aSeriesIter)->getAttachedAxisIndex();
sal_Int32 nAttachedAxisIndex = pSeries->getAttachedAxisIndex();
PlottingPositionHelper* pPosHelper = &(getPlottingPositionHelper( nAttachedAxisIndex ));
if(!pPosHelper)
pPosHelper = m_pMainPosHelper.get();
@@ -743,7 +714,7 @@ void AreaChart::createShapes()
if(m_nDimension==3)
fLogicZ = nZ+0.5;
(*aSeriesIter)->m_fLogicZPos = fLogicZ;
pSeries->m_fLogicZPos = fLogicZ;
for( sal_Int32 nIndex = nStartIndex; nIndex < nEndIndex; nIndex++ )
{
@@ -751,16 +722,16 @@ void AreaChart::createShapes()
/* #i70133# ignore points outside of series length in standard area
charts. Stacked area charts will use missing points as zeros. In
standard charts, pSeriesList contains only one series. */
if( m_bArea && (rSeriesList.size() == 1) && (nIndex >= (*aSeriesIter)->getTotalPointCount()) )
if( m_bArea && (rXSlot.m_aSeriesVector.size() == 1) && (nIndex >= pSeries->getTotalPointCount()) )
continue;
//collect data point information (logic coordinates, style ):
double fLogicX = (*aSeriesIter)->getXValue(nIndex);
double fLogicX = pSeries->getXValue(nIndex);
if (bDateCategory)
fLogicX = DateHelper::RasterizeDateValue( fLogicX, m_aNullDate, m_nTimeResolution );
double fLogicY = (*aSeriesIter)->getYValue(nIndex);
double fLogicY = pSeries->getYValue(nIndex);
if( m_nDimension==3 && m_bArea && rSeriesList.size()!=1 )
if( m_nDimension==3 && m_bArea && rXSlot.m_aSeriesVector.size()!=1 )
fLogicY = fabs( fLogicY );
std::map< sal_Int32, double >& rLogicYSumMap = aLogicYSumMapByX[nIndex];
@@ -773,10 +744,10 @@ void AreaChart::createShapes()
|| ::rtl::math::isNan(fLogicY) || ::rtl::math::isInf(fLogicY)
|| ::rtl::math::isNan(fLogicZ) || ::rtl::math::isInf(fLogicZ) )
{
if( (*aSeriesIter)->getMissingValueTreatment() == css::chart::MissingValueTreatment::LEAVE_GAP )
if( pSeries->getMissingValueTreatment() == css::chart::MissingValueTreatment::LEAVE_GAP )
{
drawing::PolyPolygonShape3D& rPolygon = (*aSeriesIter)->m_aPolyPolygonShape3D;
sal_Int32& rIndex = (*aSeriesIter)->m_nPolygonIndex;
drawing::PolyPolygonShape3D& rPolygon = pSeries->m_aPolyPolygonShape3D;
sal_Int32& rIndex = pSeries->m_nPolygonIndex;
if( 0<= rIndex && rIndex < rPolygon.SequenceX.getLength() )
{
if( rPolygon.SequenceX[ rIndex ].getLength() )
@@ -800,10 +771,10 @@ void AreaChart::createShapes()
//remind minimal and maximal x values for area 'grounding' points
//only for filled area
{
double& rfMinX = (*aSeriesIter)->m_fLogicMinX;
double& rfMinX = pSeries->m_fLogicMinX;
if(!nIndex||fLogicX<rfMinX)
rfMinX=fLogicX;
double& rfMaxX = (*aSeriesIter)->m_fLogicMaxX;
double& rfMaxX = pSeries->m_fLogicMaxX;
if(!nIndex||fLogicX>rfMaxX)
rfMaxX=fLogicX;
}
@@ -833,7 +804,7 @@ void AreaChart::createShapes()
//for area and/or line (symbols only do not need this)
if( isValidPosition(aScaledLogicPosition) )
{
AddPointToPoly( (*aSeriesIter)->m_aPolyPolygonShape3D, aScaledLogicPosition, (*aSeriesIter)->m_nPolygonIndex );
AddPointToPoly( pSeries->m_aPolyPolygonShape3D, aScaledLogicPosition, pSeries->m_nPolygonIndex );
}
//create a single datapoint if point is visible
@@ -864,7 +835,7 @@ void AreaChart::createShapes()
}
}
Symbol* pSymbolProperties = m_bSymbol ? (*aSeriesIter)->getSymbolProperties( nIndex ) : nullptr;
Symbol* pSymbolProperties = m_bSymbol ? pSeries->getSymbolProperties( nIndex ) : nullptr;
bool bCreateSymbol = pSymbolProperties && (pSymbolProperties->Style != SymbolStyle_NONE);
if( !bCreateSymbol && !bCreateYErrorBar &&
@@ -873,7 +844,7 @@ void AreaChart::createShapes()
//create a group shape for this point and add to the series shape:
OUString aPointCID = ObjectIdentifier::createPointCID(
(*aSeriesIter)->getPointCID_Stub(), nIndex );
pSeries->getPointCID_Stub(), nIndex );
uno::Reference< drawing::XShapes > xPointGroupShape_Shapes(
createGroupShape(xSeriesGroupShape_Shapes,aPointCID) );
uno::Reference<drawing::XShape> xPointGroupShape_Shape =
@@ -917,13 +888,13 @@ void AreaChart::createShapes()
}
//create error bars
if (bCreateXErrorBar)
createErrorBar_X( aUnscaledLogicPosition, **aSeriesIter, nIndex, m_xErrorBarTarget );
createErrorBar_X( aUnscaledLogicPosition, *pSeries, nIndex, m_xErrorBarTarget );
if (bCreateYErrorBar)
createErrorBar_Y( aUnscaledLogicPosition, **aSeriesIter, nIndex, m_xErrorBarTarget, nullptr );
createErrorBar_Y( aUnscaledLogicPosition, *pSeries, nIndex, m_xErrorBarTarget, nullptr );
//create data point label
if( (**aSeriesIter).getDataPointLabelIfLabel(nIndex) )
if( pSeries->getDataPointLabelIfLabel(nIndex) )
{
LabelAlignment eAlignment = LABEL_ALIGN_TOP;
drawing::Position3D aScenePosition3D( aScenePosition.PositionX
@@ -970,7 +941,7 @@ void AreaChart::createShapes()
.transformSceneToScreenPosition( aScenePosition3D ) );
}
createDataLabel( m_xTextTarget, **aSeriesIter, nIndex
createDataLabel( m_xTextTarget, *pSeries, nIndex
, fLogicValueForLabeDisplay
, rLogicYSumMap[nAttachedAxisIndex], aScreenPosition2D, eAlignment, nOffset );
}
@@ -983,6 +954,7 @@ void AreaChart::createShapes()
}//next series in x slot (next y slot)
}//next x slot
++nZ;
}//next z slot
impl_createSeriesShapes();
@@ -991,7 +963,7 @@ void AreaChart::createShapes()
//remove and delete point-group-shape if empty
if(!xSeriesGroupShape_Shapes->getCount())
{
(*aSeriesIter)->m_xShape.set(NULL);
pSeries->m_xShape.set(NULL);
m_xLogicTarget->remove(xSeriesGroupShape_Shape);
}
*/
+40 -63
View File
@@ -450,28 +450,22 @@ void BarChart::createShapes()
//iterate through all x values per indices
for( sal_Int32 nPointIndex = nStartIndex; nPointIndex < nEndIndex; nPointIndex++ )
{
std::vector< std::vector< VDataSeriesGroup > >::iterator aZSlotIter = m_aZSlots.begin();
const std::vector< std::vector< VDataSeriesGroup > >::const_iterator aZSlotEnd = m_aZSlots.end();
//sum up the values for all series in a complete z slot per attached axis
std::map< sal_Int32, double > aLogicYSumMap;
for( ; aZSlotIter != aZSlotEnd; ++aZSlotIter )
for( auto& rZSlot : m_aZSlots )
{
std::vector< VDataSeriesGroup >::iterator aXSlotIter = aZSlotIter->begin();
const std::vector< VDataSeriesGroup >::const_iterator aXSlotEnd = aZSlotIter->end();
for( aXSlotIter = aZSlotIter->begin(); aXSlotIter != aXSlotEnd; ++aXSlotIter )
for( auto& rXSlot : rZSlot )
{
sal_Int32 nAttachedAxisIndex = aXSlotIter->getAttachedAxisIndexForFirstSeries();
sal_Int32 nAttachedAxisIndex = rXSlot.getAttachedAxisIndexForFirstSeries();
if( aLogicYSumMap.find(nAttachedAxisIndex)==aLogicYSumMap.end() )
aLogicYSumMap[nAttachedAxisIndex]=0.0;
const sal_Int32 nSlotPoints = aXSlotIter->getPointCount();
const sal_Int32 nSlotPoints = rXSlot.getPointCount();
if( nPointIndex >= nSlotPoints )
continue;
double fMinimumY = 0.0, fMaximumY = 0.0;
aXSlotIter->calculateYMinAndMaxForCategory( nPointIndex
rXSlot.calculateYMinAndMaxForCategory( nPointIndex
, isSeparateStackingForDifferentSigns( 1 ), fMinimumY, fMaximumY, nAttachedAxisIndex );
if( !::rtl::math::isNan( fMaximumY ) && fMaximumY > 0)
@@ -481,39 +475,33 @@ void BarChart::createShapes()
}
}
aZSlotIter = m_aZSlots.begin();
for( sal_Int32 nZ=1; aZSlotIter != aZSlotEnd; ++aZSlotIter, nZ++ )
sal_Int32 nZ=1;
for( auto& rZSlot : m_aZSlots )
{
std::vector< VDataSeriesGroup >::iterator aXSlotIter = aZSlotIter->begin();
const std::vector< VDataSeriesGroup >::const_iterator aXSlotEnd = aZSlotIter->end();
//iterate through all x slots in this category
double fSlotX=0;
for( aXSlotIter = aZSlotIter->begin(); aXSlotIter != aXSlotEnd; ++aXSlotIter, fSlotX+=1.0 )
for( auto& rXSlot : rZSlot )
{
sal_Int32 nAttachedAxisIndex = 0;
BarPositionHelper* pPosHelper = m_pMainPosHelper.get();
if( aXSlotIter != aXSlotEnd )
{
nAttachedAxisIndex = aXSlotIter->getAttachedAxisIndexForFirstSeries();
//2ND_AXIS_IN_BARS so far one can assume to have the same plotter for each z slot
pPosHelper = dynamic_cast<BarPositionHelper*>(&( getPlottingPositionHelper( nAttachedAxisIndex ) ) );
if(!pPosHelper)
pPosHelper = m_pMainPosHelper.get();
}
nAttachedAxisIndex = rXSlot.getAttachedAxisIndexForFirstSeries();
//2ND_AXIS_IN_BARS so far one can assume to have the same plotter for each z slot
pPosHelper = dynamic_cast<BarPositionHelper*>(&( getPlottingPositionHelper( nAttachedAxisIndex ) ) );
if(!pPosHelper)
pPosHelper = m_pMainPosHelper.get();
PlotterBase::m_pPosHelper = pPosHelper;
//update/create information for current group
pPosHelper->updateSeriesCount( aZSlotIter->size() );
pPosHelper->updateSeriesCount( rZSlot.size() );
double fLogicBaseWidth = pPosHelper->getScaledSlotWidth();
std::vector< VDataSeries* >* pSeriesList = &(aXSlotIter->m_aSeriesVector);
// get distance from base value to maximum and minimum
double fMinimumY = 0.0, fMaximumY = 0.0;
if( nPointIndex < aXSlotIter->getPointCount())
aXSlotIter->calculateYMinAndMaxForCategory( nPointIndex
if( nPointIndex < rXSlot.getPointCount())
rXSlot.calculateYMinAndMaxForCategory( nPointIndex
, isSeparateStackingForDifferentSigns( 1 ), fMinimumY, fMaximumY, nAttachedAxisIndex );
double fLogicPositiveYSum = 0.0;
@@ -547,17 +535,14 @@ void BarChart::createShapes()
}
double fBaseValue = 0.0;
if( !pPosHelper->isPercentY() && pSeriesList->size()<=1 )
if( !pPosHelper->isPercentY() && rXSlot.m_aSeriesVector.size()<=1 )
fBaseValue = pPosHelper->getBaseValueY();
double fPositiveLogicYForNextSeries = fBaseValue;
double fNegativeLogicYForNextSeries = fBaseValue;
std::vector< VDataSeries* >::const_iterator aSeriesIter = pSeriesList->begin();
const std::vector< VDataSeries* >::const_iterator aSeriesEnd = pSeriesList->end();
//iterate through all series in this x slot
for( ; aSeriesIter != aSeriesEnd; ++aSeriesIter )
for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
{
VDataSeries* pSeries( *aSeriesIter );
if(!pSeries)
continue;
@@ -566,7 +551,7 @@ void BarChart::createShapes()
bOnlyConnectionLinesForThisPoint = false;
if(nPointIndex==nStartIndex)//do not create a regression line for each point
createRegressionCurvesShapes( **aSeriesIter, xRegressionCurveTarget, xRegressionCurveEquationTarget,
createRegressionCurvesShapes( *pSeries, xRegressionCurveTarget, xRegressionCurveEquationTarget,
m_pPosHelper->maySkipPointsInRegressionCalculation());
if( !bDrawConnectionLinesInited )
@@ -574,7 +559,7 @@ void BarChart::createShapes()
bDrawConnectionLines = pSeries->getConnectBars();
if( m_nDimension==3 )
bDrawConnectionLines = false;
if( bDrawConnectionLines && pSeriesList->size()==1 )
if( bDrawConnectionLines && rXSlot.m_aSeriesVector.size()==1 )
{
//detect whether we have a stacked chart or not:
StackingDirection eDirection = pSeries->getStackingDirection();
@@ -585,10 +570,10 @@ void BarChart::createShapes()
}
uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes(
getSeriesGroupShape(*aSeriesIter, xSeriesTarget) );
getSeriesGroupShape(pSeries, xSeriesTarget) );
//collect data point information (logic coordinates, style ):
double fUnscaledLogicX = (*aSeriesIter)->getXValue( nPointIndex );
double fUnscaledLogicX = pSeries->getXValue( nPointIndex );
fUnscaledLogicX = DateHelper::RasterizeDateValue( fUnscaledLogicX, m_aNullDate, m_nTimeResolution );
if(fUnscaledLogicX<pPosHelper->getLogicMinX())
continue;//point not visible
@@ -598,7 +583,7 @@ void BarChart::createShapes()
continue;//point not visible
double fLogicX = pPosHelper->getScaledSlotPos( fUnscaledLogicX, fSlotX );
double fLogicBarHeight = (*aSeriesIter)->getYValue( nPointIndex );
double fLogicBarHeight = pSeries->getYValue( nPointIndex );
if( ::rtl::math::isNan( fLogicBarHeight )) //no value at this category
continue;
@@ -634,7 +619,7 @@ void BarChart::createShapes()
// uno::Reference<drawing::XShape> xPointGroupShape_Shape =
// uno::Reference<drawing::XShape>( xPointGroupShape_Shapes, uno::UNO_QUERY );
//as long as we do not iterate we do not need to create an additional group for each point
uno::Reference< beans::XPropertySet > xDataPointProperties( (*aSeriesIter)->getPropertiesOfPoint( nPointIndex ) );
uno::Reference< beans::XPropertySet > xDataPointProperties( pSeries->getPropertiesOfPoint( nPointIndex ) );
sal_Int32 nGeometry3D = DataPointGeometry3D::CUBOID;
if(m_nDimension==3) try
{
@@ -724,9 +709,9 @@ void BarChart::createShapes()
drawing::Position3D aRightUpperPoint( fLogicX+fLogicBarWidth/2.0,fUnclippedUpperYValue,fLogicZ );
if( isValidPosition(aLeftUpperPoint) )
AddPointToPoly( (*aSeriesIter)->m_aPolyPolygonShape3D, aLeftUpperPoint );
AddPointToPoly( pSeries->m_aPolyPolygonShape3D, aLeftUpperPoint );
if( isValidPosition(aRightUpperPoint) )
AddPointToPoly( (*aSeriesIter)->m_aPolyPolygonShape3D, aRightUpperPoint );
AddPointToPoly( pSeries->m_aPolyPolygonShape3D, aRightUpperPoint );
}
if( bOnlyConnectionLinesForThisPoint )
@@ -813,14 +798,14 @@ void BarChart::createShapes()
//set name/classified ObjectID (CID)
ShapeFactory::setShapeName(xShape
, ObjectIdentifier::createPointCID(
(*aSeriesIter)->getPointCID_Stub(),nPointIndex) );
pSeries->getPointCID_Stub(),nPointIndex) );
}
//create error bar
createErrorBar_Y( aUnscaledLogicPosition, **aSeriesIter, nPointIndex, m_xLogicTarget, &fLogicX );
createErrorBar_Y( aUnscaledLogicPosition, *pSeries, nPointIndex, m_xLogicTarget, &fLogicX );
//create data point label
if( (**aSeriesIter).getDataPointLabelIfLabel(nPointIndex) )
if( pSeries->getDataPointLabelIfLabel(nPointIndex) )
{
double fLogicSum = aLogicYSumMap[nAttachedAxisIndex];
@@ -849,29 +834,26 @@ void BarChart::createShapes()
nOffset = 260;
}
createDataLabel(
xTextTarget, **aSeriesIter, nPointIndex,
xTextTarget, *pSeries, nPointIndex,
fLogicValueForLabeDisplay, fLogicSum, aScreenPosition2D, eAlignment, nOffset);
}
}//end iteration through partial points
}//next series in x slot (next y slot)
fSlotX+=1.0;
}//next x slot
++nZ;
}//next z slot
}//next category
if( bDrawConnectionLines )
{
std::vector< std::vector< VDataSeriesGroup > >::iterator aZSlotIter = m_aZSlots.begin();
const std::vector< std::vector< VDataSeriesGroup > >::const_iterator aZSlotEnd = m_aZSlots.end();
for( sal_Int32 nZ=1; aZSlotIter != aZSlotEnd; ++aZSlotIter, nZ++ )
for( auto const& rZSlot : m_aZSlots )
{
std::vector< VDataSeriesGroup >::iterator aXSlotIter = aZSlotIter->begin();
const std::vector< VDataSeriesGroup >::const_iterator aXSlotEnd = aZSlotIter->end();
BarPositionHelper* pPosHelper = m_pMainPosHelper.get();
if( aXSlotIter != aXSlotEnd )
if( rZSlot.size() )
{
sal_Int32 nAttachedAxisIndex = aXSlotIter->getAttachedAxisIndexForFirstSeries();
sal_Int32 nAttachedAxisIndex = rZSlot.front().getAttachedAxisIndexForFirstSeries();
//2ND_AXIS_IN_BARS so far one can assume to have the same plotter for each z slot
pPosHelper = dynamic_cast<BarPositionHelper*>(&( getPlottingPositionHelper( nAttachedAxisIndex ) ) );
if(!pPosHelper)
@@ -880,16 +862,11 @@ void BarChart::createShapes()
PlotterBase::m_pPosHelper = pPosHelper;
//iterate through all x slots in this category
for( double fSlotX=0; aXSlotIter != aXSlotEnd; ++aXSlotIter, fSlotX+=1.0 )
for( auto const& rXSlot : rZSlot )
{
std::vector< VDataSeries* >* pSeriesList = &(aXSlotIter->m_aSeriesVector);
std::vector< VDataSeries* >::const_iterator aSeriesIter = pSeriesList->begin();
const std::vector< VDataSeries* >::const_iterator aSeriesEnd = pSeriesList->end();
//iterate through all series in this x slot
for( ; aSeriesIter != aSeriesEnd; ++aSeriesIter )
for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
{
VDataSeries* pSeries( *aSeriesIter );
if(!pSeries)
continue;
drawing::PolyPolygonShape3D* pSeriesPoly = &pSeries->m_aPolyPolygonShape3D;
@@ -906,7 +883,7 @@ void BarChart::createShapes()
pPosHelper->transformScaledLogicToScene( aPoly );
uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes(
getSeriesGroupShape(*aSeriesIter, xSeriesTarget) );
getSeriesGroupShape(pSeries, xSeriesTarget) );
uno::Reference< drawing::XShape > xShape( m_pShapeFactory->createLine2D(
xSeriesGroupShape_Shapes, PolyToPointSequence( aPoly ) ) );
setMappedProperties( xShape, pSeries->getPropertiesOfSeries()
+9 -28
View File
@@ -69,20 +69,12 @@ void BubbleChart::calculateMaximumLogicBubbleSize()
sal_Int32 nEndIndex = VSeriesPlotter::getPointCount();
for( sal_Int32 nIndex = 0; nIndex < nEndIndex; nIndex++ )
{
std::vector< std::vector< VDataSeriesGroup > >::iterator aZSlotIter = m_aZSlots.begin();
const std::vector< std::vector< VDataSeriesGroup > >::const_iterator aZSlotEnd = m_aZSlots.end();
for( ; aZSlotIter != aZSlotEnd; ++aZSlotIter )
for( auto const& rZSlot : m_aZSlots )
{
std::vector< VDataSeriesGroup >::iterator aXSlotIter = aZSlotIter->begin();
const std::vector< VDataSeriesGroup >::const_iterator aXSlotEnd = aZSlotIter->end();
for( ; aXSlotIter != aXSlotEnd; ++aXSlotIter )
for( auto const& rXSlot : rZSlot )
{
std::vector< VDataSeries* >* pSeriesList = &(aXSlotIter->m_aSeriesVector);
std::vector< VDataSeries* >::const_iterator aSeriesIter = pSeriesList->begin();
const std::vector< VDataSeries* >::const_iterator aSeriesEnd = pSeriesList->end();
for( ; aSeriesIter != aSeriesEnd; ++aSeriesIter )
for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
{
VDataSeries* pSeries( *aSeriesIter );
if(!pSeries)
continue;
@@ -207,31 +199,20 @@ void BubbleChart::createShapes()
//iterate through all x values per indices
for( sal_Int32 nIndex = nStartIndex; nIndex < nEndIndex; nIndex++ )
{
std::vector< std::vector< VDataSeriesGroup > >::iterator aZSlotIter = m_aZSlots.begin();
const std::vector< std::vector< VDataSeriesGroup > >::const_iterator aZSlotEnd = m_aZSlots.end();
for( sal_Int32 nZ=1; aZSlotIter != aZSlotEnd; ++aZSlotIter, nZ++ )
for( auto const& rZSlot : m_aZSlots )
{
std::vector< VDataSeriesGroup >::iterator aXSlotIter = aZSlotIter->begin();
const std::vector< VDataSeriesGroup >::const_iterator aXSlotEnd = aZSlotIter->end();
for( sal_Int32 nX=0; aXSlotIter != aXSlotEnd; ++aXSlotIter, ++nX )
for( auto const& rXSlot : rZSlot )
{
std::vector< VDataSeries* >* pSeriesList = &(aXSlotIter->m_aSeriesVector);
std::vector< VDataSeries* >::const_iterator aSeriesIter = pSeriesList->begin();
const std::vector< VDataSeries* >::const_iterator aSeriesEnd = pSeriesList->end();
//iterate through all series
for( sal_Int32 nSeriesIndex = 0; aSeriesIter != aSeriesEnd; ++aSeriesIter, ++nSeriesIndex )
for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
{
VDataSeries* pSeries( *aSeriesIter );
if(!pSeries)
continue;
bool bHasFillColorMapping = pSeries->hasPropertyMapping("FillColor");
bool bHasBorderColorMapping = pSeries->hasPropertyMapping("LineColor");
uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes = getSeriesGroupShape(*aSeriesIter, xSeriesTarget);
uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes = getSeriesGroupShape(pSeries, xSeriesTarget);
sal_Int32 nAttachedAxisIndex = pSeries->getAttachedAxisIndex();
PlottingPositionHelper* pPosHelper = &(getPlottingPositionHelper( nAttachedAxisIndex ));
@@ -324,7 +305,7 @@ void BubbleChart::createShapes()
::chart::AbstractShapeFactory::setShapeName( xShape, "MarkHandles" );
//create data point label
if( (**aSeriesIter).getDataPointLabelIfLabel(nIndex) )
if( pSeries->getDataPointLabelIfLabel(nIndex) )
{
LabelAlignment eAlignment = LABEL_ALIGN_TOP;
drawing::Position3D aScenePosition3D( aScenePosition.PositionX
@@ -366,7 +347,7 @@ void BubbleChart::createShapes()
sal_Int32 nOffset = 0;
if(eAlignment!=LABEL_ALIGN_CENTER)
nOffset = 100;//add some spacing //@todo maybe get more intelligent values
createDataLabel( xTextTarget, **aSeriesIter, nIndex
createDataLabel( xTextTarget, *pSeries, nIndex
, fBubbleSize, fBubbleSize, aScreenPosition2D, eAlignment, nOffset );
}
}
@@ -137,18 +137,13 @@ void CandleStickChart::createShapes()
//iterate through all x values per indices
for( sal_Int32 nIndex = 0; nIndex < nEndIndex; nIndex++ )
{
std::vector< std::vector< VDataSeriesGroup > >::iterator aZSlotIter = m_aZSlots.begin();
const std::vector< std::vector< VDataSeriesGroup > >::const_iterator aZSlotEnd = m_aZSlots.end();
for( sal_Int32 nZ=0; aZSlotIter != aZSlotEnd; ++aZSlotIter, nZ++ )
for( auto const& rZSlot : m_aZSlots )
{
std::vector< VDataSeriesGroup >::iterator aXSlotIter = aZSlotIter->begin();
const std::vector< VDataSeriesGroup >::const_iterator aXSlotEnd = aZSlotIter->end();
sal_Int32 nAttachedAxisIndex = 0;
BarPositionHelper* pPosHelper = m_pMainPosHelper.get();
if( aXSlotIter != aXSlotEnd )
if( rZSlot.size() )
{
nAttachedAxisIndex = aXSlotIter->getAttachedAxisIndexForFirstSeries();
nAttachedAxisIndex = rZSlot.front().getAttachedAxisIndexForFirstSeries();
//2ND_AXIS_IN_BARS so far one can assume to have the same plotter for each z slot
pPosHelper = dynamic_cast<BarPositionHelper*>(&( getPlottingPositionHelper( nAttachedAxisIndex ) ) );
if(!pPosHelper)
@@ -157,29 +152,26 @@ void CandleStickChart::createShapes()
PlotterBase::m_pPosHelper = pPosHelper;
//update/create information for current group
pPosHelper->updateSeriesCount( aZSlotIter->size() );
pPosHelper->updateSeriesCount( rZSlot.size() );
double fSlotX=0;
//iterate through all x slots in this category
for( double fSlotX=0; aXSlotIter != aXSlotEnd; ++aXSlotIter, fSlotX+=1.0 )
for( auto const& rXSlot : rZSlot )
{
std::vector< VDataSeries* >* pSeriesList = &(aXSlotIter->m_aSeriesVector);
std::vector< VDataSeries* >::const_iterator aSeriesIter = pSeriesList->begin();
const std::vector< VDataSeries* >::const_iterator aSeriesEnd = pSeriesList->end();
//iterate through all series in this x slot
for( ; aSeriesIter != aSeriesEnd; ++aSeriesIter )
for( VDataSeries* const pSeries : rXSlot.m_aSeriesVector )
{
//collect data point information (logic coordinates, style ):
double fUnscaledX = (*aSeriesIter)->getXValue( nIndex );
double fUnscaledX = pSeries->getXValue( nIndex );
if( m_pExplicitCategoriesProvider && m_pExplicitCategoriesProvider->isDateAxis() )
fUnscaledX = DateHelper::RasterizeDateValue( fUnscaledX, m_aNullDate, m_nTimeResolution );
if(fUnscaledX<pPosHelper->getLogicMinX() || fUnscaledX>pPosHelper->getLogicMaxX())
continue;//point not visible
double fScaledX = pPosHelper->getScaledSlotPos( fUnscaledX, fSlotX );
double fUnscaledY_First = (*aSeriesIter)->getY_First( nIndex );
double fUnscaledY_Last = (*aSeriesIter)->getY_Last( nIndex );
double fUnscaledY_Min = (*aSeriesIter)->getY_Min( nIndex );
double fUnscaledY_Max = (*aSeriesIter)->getY_Max( nIndex );
double fUnscaledY_First = pSeries->getY_First( nIndex );
double fUnscaledY_Last = pSeries->getY_Last( nIndex );
double fUnscaledY_Min = pSeries->getY_Min( nIndex );
double fUnscaledY_Max = pSeries->getY_Max( nIndex );
bool bBlack=false;
if(fUnscaledY_Last<=fUnscaledY_First)
@@ -216,11 +208,11 @@ void CandleStickChart::createShapes()
if(bBlack)
xLossGainTarget = xLossTarget;
uno::Reference< beans::XPropertySet > xPointProp( (*aSeriesIter)->getPropertiesOfPoint( nIndex ));
uno::Reference< beans::XPropertySet > xPointProp( pSeries->getPropertiesOfPoint( nIndex ));
uno::Reference< drawing::XShapes > xPointGroupShape_Shapes(nullptr);
{
OUString aPointCID = ObjectIdentifier::createPointCID( (*aSeriesIter)->getPointCID_Stub(), nIndex );
uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes( getSeriesGroupShape(*aSeriesIter, xSeriesTarget) );
OUString aPointCID = ObjectIdentifier::createPointCID( pSeries->getPointCID_Stub(), nIndex );
uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes( getSeriesGroupShape(pSeries, xSeriesTarget) );
xPointGroupShape_Shapes = createGroupShape(xSeriesGroupShape_Shapes,aPointCID);
}
@@ -296,22 +288,23 @@ void CandleStickChart::createShapes()
}
//create data point label
if( (**aSeriesIter).getDataPointLabelIfLabel(nIndex) )
if( pSeries->getDataPointLabelIfLabel(nIndex) )
{
if(isValidPosition(aPosMiddleFirst))
createDataLabel( xTextTarget, **aSeriesIter, nIndex
createDataLabel( xTextTarget, *pSeries, nIndex
, fUnscaledY_First, 1.0, Position3DToAWTPoint(aPosMiddleFirst), LABEL_ALIGN_LEFT_BOTTOM );
if(isValidPosition(aPosMiddleLast))
createDataLabel( xTextTarget, **aSeriesIter, nIndex
createDataLabel( xTextTarget, *pSeries, nIndex
, fUnscaledY_Last, 1.0, Position3DToAWTPoint(aPosMiddleLast), LABEL_ALIGN_RIGHT_TOP );
if(isValidPosition(aPosMiddleMinimum))
createDataLabel( xTextTarget, **aSeriesIter, nIndex
createDataLabel( xTextTarget, *pSeries, nIndex
, fUnscaledY_Min, 1.0, Position3DToAWTPoint(aPosMiddleMinimum), LABEL_ALIGN_BOTTOM );
if(isValidPosition(aPosMiddleMaximum))
createDataLabel( xTextTarget, **aSeriesIter, nIndex
createDataLabel( xTextTarget, *pSeries, nIndex
, fUnscaledY_Max, 1.0, Position3DToAWTPoint(aPosMiddleMaximum), LABEL_ALIGN_TOP );
}
}//next series in x slot (next y slot)
fSlotX+=1.0;
}//next x slot
}//next z slot
}//next category
@@ -319,7 +312,7 @@ void CandleStickChart::createShapes()
//remove and delete point-group-shape if empty
if(!xSeriesGroupShape_Shapes->getCount())
{
(*aSeriesIter)->m_xShape.set(NULL);
pSeries->m_xShape.set(NULL);
m_xLogicTarget->remove(xSeriesGroupShape_Shape);
}
*/
+33 -63
View File
@@ -243,41 +243,31 @@ void NetChart::impl_createSeriesShapes()
//the polygon shapes for each series need to be created before
//iterate through all series again to create the series shapes
std::vector< std::vector< VDataSeriesGroup > >::iterator aZSlotIter = m_aZSlots.begin();
const std::vector< std::vector< VDataSeriesGroup > >::const_iterator aZSlotEnd = m_aZSlots.end();
for( sal_Int32 nZ=1; aZSlotIter != aZSlotEnd; ++aZSlotIter, ++nZ )
for( auto const& rZSlot : m_aZSlots )
{
std::vector< VDataSeriesGroup >::iterator aXSlotIter = aZSlotIter->begin();
const std::vector< VDataSeriesGroup >::const_iterator aXSlotEnd = aZSlotIter->end();
for( ; aXSlotIter != aXSlotEnd; ++aXSlotIter )
for( auto const& rXSlot : rZSlot )
{
std::vector< VDataSeries* >* pSeriesList = &(aXSlotIter->m_aSeriesVector);
std::vector< VDataSeries* >::const_iterator aSeriesIter = pSeriesList->begin();
const std::vector< VDataSeries* >::const_iterator aSeriesEnd = pSeriesList->end();
std::map< sal_Int32, drawing::PolyPolygonShape3D* > aPreviousSeriesPolyMap;//a PreviousSeriesPoly for each different nAttachedAxisIndex
drawing::PolyPolygonShape3D* pSeriesPoly = nullptr;
//iterate through all series
for( ; aSeriesIter != aSeriesEnd; ++aSeriesIter )
for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
{
sal_Int32 nAttachedAxisIndex = (*aSeriesIter)->getAttachedAxisIndex();
sal_Int32 nAttachedAxisIndex = pSeries->getAttachedAxisIndex();
PlottingPositionHelper* pPosHelper = &(getPlottingPositionHelper( nAttachedAxisIndex ));
if(!pPosHelper)
pPosHelper = m_pMainPosHelper.get();
PlotterBase::m_pPosHelper = pPosHelper;
pSeriesPoly = &(*aSeriesIter)->m_aPolyPolygonShape3D;
pSeriesPoly = &pSeries->m_aPolyPolygonShape3D;
if( m_bArea )
{
if( !impl_createArea( *aSeriesIter, pSeriesPoly, aPreviousSeriesPolyMap[nAttachedAxisIndex], pPosHelper ) )
if( !impl_createArea( pSeries, pSeriesPoly, aPreviousSeriesPolyMap[nAttachedAxisIndex], pPosHelper ) )
continue;
}
if( m_bLine )
{
if( !impl_createLine( *aSeriesIter, pSeriesPoly, pPosHelper ) )
if( !impl_createLine( pSeries, pSeriesPoly, pPosHelper ) )
continue;
}
aPreviousSeriesPolyMap[nAttachedAxisIndex] = pSeriesPoly;
@@ -374,25 +364,14 @@ void NetChart::createShapes()
//iterate through all x values per indices
for( sal_Int32 nIndex = nStartIndex; nIndex < nEndIndex; nIndex++ )
{
std::vector< std::vector< VDataSeriesGroup > >::iterator aZSlotIter = m_aZSlots.begin();
const std::vector< std::vector< VDataSeriesGroup > >::const_iterator aZSlotEnd = m_aZSlots.end();
std::map< sal_Int32, double > aLogicYSumMap;//one for each different nAttachedAxisIndex
for( ; aZSlotIter != aZSlotEnd; ++aZSlotIter )
for( auto const& rZSlot : m_aZSlots )
{
std::vector< VDataSeriesGroup >::iterator aXSlotIter = aZSlotIter->begin();
const std::vector< VDataSeriesGroup >::iterator aXSlotEnd = aZSlotIter->end();
//iterate through all x slots in this category to get 100percent sum
for( ; aXSlotIter != aXSlotEnd; ++aXSlotIter )
for( auto const& rXSlot : rZSlot )
{
std::vector<VDataSeries*>& rSeriesList = aXSlotIter->m_aSeriesVector;
std::vector<VDataSeries*>::iterator aSeriesIter = rSeriesList.begin();
std::vector<VDataSeries*>::iterator aSeriesEnd = rSeriesList.end();
for( ; aSeriesIter != aSeriesEnd; ++aSeriesIter )
for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
{
VDataSeries* pSeries( *aSeriesIter );
if(!pSeries)
continue;
@@ -415,55 +394,46 @@ void NetChart::createShapes()
}
}
aZSlotIter = m_aZSlots.begin();
for( sal_Int32 nZ=1; aZSlotIter != aZSlotEnd; ++aZSlotIter, ++nZ )
for( auto const& rZSlot : m_aZSlots )
{
std::vector< VDataSeriesGroup >::const_iterator aXSlotIter = aZSlotIter->begin();
std::vector< VDataSeriesGroup >::const_iterator aXSlotEnd = aZSlotIter->end();
//for the area chart there should be at most one x slot (no side by side stacking available)
//attention different: xSlots are always interpreted as independent areas one behind the other: @todo this doesn't work why not???
for( sal_Int32 nX=0; aXSlotIter != aXSlotEnd; ++aXSlotIter, ++nX )
for( auto const& rXSlot : rZSlot )
{
const std::vector<VDataSeries*>& rSeriesList = aXSlotIter->m_aSeriesVector;
std::vector<VDataSeries*>::const_iterator aSeriesIter = rSeriesList.begin();
const std::vector<VDataSeries*>::const_iterator aSeriesEnd = rSeriesList.end();
std::map< sal_Int32, double > aLogicYForNextSeriesMap;//one for each different nAttachedAxisIndex
//iterate through all series
for( sal_Int32 nSeriesIndex = 0; aSeriesIter != aSeriesEnd; ++aSeriesIter, ++nSeriesIndex )
for( VDataSeries* pSeries : rXSlot.m_aSeriesVector )
{
VDataSeries* pSeries( *aSeriesIter );
if(!pSeries)
continue;
/* #i70133# ignore points outside of series length in standard area
charts. Stacked area charts will use missing points as zeros. In
standard charts, pSeriesList contains only one series. */
if( m_bArea && (rSeriesList.size() == 1) && (nIndex >= (*aSeriesIter)->getTotalPointCount()) )
if( m_bArea && (rXSlot.m_aSeriesVector.size() == 1) && (nIndex >= pSeries->getTotalPointCount()) )
continue;
uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes = getSeriesGroupShapeFrontChild(*aSeriesIter, m_xSeriesTarget);
uno::Reference< drawing::XShapes > xSeriesGroupShape_Shapes = getSeriesGroupShapeFrontChild(pSeries, m_xSeriesTarget);
sal_Int32 nAttachedAxisIndex = (*aSeriesIter)->getAttachedAxisIndex();
sal_Int32 nAttachedAxisIndex = pSeries->getAttachedAxisIndex();
PlottingPositionHelper* pPosHelper = &(getPlottingPositionHelper( nAttachedAxisIndex ));
if(!pPosHelper)
pPosHelper = m_pMainPosHelper.get();
PlotterBase::m_pPosHelper = pPosHelper;
(*aSeriesIter)->m_fLogicZPos = fLogicZ;
pSeries->m_fLogicZPos = fLogicZ;
//collect data point information (logic coordinates, style ):
double fLogicX = (*aSeriesIter)->getXValue(nIndex);
double fLogicX = pSeries->getXValue(nIndex);
if (bDateCategory)
fLogicX = DateHelper::RasterizeDateValue( fLogicX, m_aNullDate, m_nTimeResolution );
double fLogicY = (*aSeriesIter)->getYValue(nIndex);
double fLogicY = pSeries->getYValue(nIndex);
if( m_bArea && ( ::rtl::math::isNan(fLogicY) || ::rtl::math::isInf(fLogicY) ) )
{
if( (*aSeriesIter)->getMissingValueTreatment() == css::chart::MissingValueTreatment::LEAVE_GAP )
if( pSeries->getMissingValueTreatment() == css::chart::MissingValueTreatment::LEAVE_GAP )
{
if( rSeriesList.size() == 1 || nSeriesIndex == 0 )
if( rXSlot.m_aSeriesVector.size() == 1 || pSeries == rXSlot.m_aSeriesVector.front() )
{
fLogicY = pPosHelper->getLogicMinY();
if( !pPosHelper->isMathematicalOrientationY() )
@@ -483,10 +453,10 @@ void NetChart::createShapes()
|| ::rtl::math::isNan(fLogicY) || ::rtl::math::isInf(fLogicY)
|| ::rtl::math::isNan(fLogicZ) || ::rtl::math::isInf(fLogicZ) )
{
if( (*aSeriesIter)->getMissingValueTreatment() == css::chart::MissingValueTreatment::LEAVE_GAP )
if( pSeries->getMissingValueTreatment() == css::chart::MissingValueTreatment::LEAVE_GAP )
{
drawing::PolyPolygonShape3D& rPolygon = (*aSeriesIter)->m_aPolyPolygonShape3D;
sal_Int32& rIndex = (*aSeriesIter)->m_nPolygonIndex;
drawing::PolyPolygonShape3D& rPolygon = pSeries->m_aPolyPolygonShape3D;
sal_Int32& rIndex = pSeries->m_nPolygonIndex;
if( 0<= rIndex && rIndex < rPolygon.SequenceX.getLength() )
{
if( rPolygon.SequenceX[ rIndex ].getLength() )
@@ -509,10 +479,10 @@ void NetChart::createShapes()
//remind minimal and maximal x values for area 'grounding' points
//only for filled area
{
double& rfMinX = (*aSeriesIter)->m_fLogicMinX;
double& rfMinX = pSeries->m_fLogicMinX;
if(!nIndex||fLogicX<rfMinX)
rfMinX=fLogicX;
double& rfMaxX = (*aSeriesIter)->m_fLogicMaxX;
double& rfMaxX = pSeries->m_fLogicMaxX;
if(!nIndex||fLogicX>rfMaxX)
rfMaxX=fLogicX;
}
@@ -542,7 +512,7 @@ void NetChart::createShapes()
//for area and/or line (symbols only do not need this)
if( isValidPosition(aScaledLogicPosition) )
{
AddPointToPoly( (*aSeriesIter)->m_aPolyPolygonShape3D, aScaledLogicPosition, (*aSeriesIter)->m_nPolygonIndex );
AddPointToPoly( pSeries->m_aPolyPolygonShape3D, aScaledLogicPosition, pSeries->m_nPolygonIndex );
//prepare clipping for filled net charts
if( !bIsVisible && m_bArea )
@@ -551,8 +521,8 @@ void NetChart::createShapes()
pPosHelper->clipScaledLogicValues( nullptr, &aClippedPos.PositionY, nullptr );
if( pPosHelper->isLogicVisible( aClippedPos.PositionX, aClippedPos.PositionY, aClippedPos.PositionZ ) )
{
AddPointToPoly( (*aSeriesIter)->m_aPolyPolygonShape3D, aClippedPos, (*aSeriesIter)->m_nPolygonIndex );
AddPointToPoly( (*aSeriesIter)->m_aPolyPolygonShape3D, aScaledLogicPosition, (*aSeriesIter)->m_nPolygonIndex );
AddPointToPoly( pSeries->m_aPolyPolygonShape3D, aClippedPos, pSeries->m_nPolygonIndex );
AddPointToPoly( pSeries->m_aPolyPolygonShape3D, aScaledLogicPosition, pSeries->m_nPolygonIndex );
}
}
}
@@ -562,7 +532,7 @@ void NetChart::createShapes()
if( !bIsVisible )
continue;
Symbol* pSymbolProperties = (*aSeriesIter)->getSymbolProperties( nIndex );
Symbol* pSymbolProperties = pSeries->getSymbolProperties( nIndex );
bool bCreateSymbol = pSymbolProperties && (pSymbolProperties->Style != SymbolStyle_NONE);
if( !bCreateSymbol && !pSeries->getDataPointLabelIfLabel(nIndex) )
@@ -570,7 +540,7 @@ void NetChart::createShapes()
//create a group shape for this point and add to the series shape:
OUString aPointCID = ObjectIdentifier::createPointCID(
(*aSeriesIter)->getPointCID_Stub(), nIndex );
pSeries->getPointCID_Stub(), nIndex );
uno::Reference< drawing::XShapes > xPointGroupShape_Shapes(
createGroupShape(xSeriesGroupShape_Shapes,aPointCID) );
uno::Reference<drawing::XShape> xPointGroupShape_Shape =
@@ -611,7 +581,7 @@ void NetChart::createShapes()
}
//create data point label
if( (**aSeriesIter).getDataPointLabelIfLabel(nIndex) )
if( pSeries->getDataPointLabelIfLabel(nIndex) )
{
LabelAlignment eAlignment = LABEL_ALIGN_TOP;
drawing::Position3D aScenePosition3D( aScenePosition.PositionX
@@ -669,7 +639,7 @@ void NetChart::createShapes()
.transformSceneToScreenPosition( aScenePosition3D ) );
}
createDataLabel( m_xTextTarget, **aSeriesIter, nIndex
createDataLabel( m_xTextTarget, *pSeries, nIndex
, fLogicValueForLabeDisplay
, aLogicYSumMap[nAttachedAxisIndex], aScreenPosition2D, eAlignment, nOffset );
}
+12 -16
View File
@@ -406,16 +406,15 @@ void SAL_CALL OPropertySetAggregationHelper::propertiesChange(const css::uno::Se
std::unique_ptr< css::uno::Any[]> pNewValues(new css::uno::Any[nLen]);
std::unique_ptr< css::uno::Any[]> pOldValues(new css::uno::Any[nLen]);
const css::beans::PropertyChangeEvent* pEvents = _rEvents.getConstArray();
sal_Int32 nDest = 0;
for (sal_Int32 nSource=0; nSource<nLen; ++nSource, ++pEvents)
for (const css::beans::PropertyChangeEvent& rEvent : _rEvents)
{
sal_Int32 nHandle = rPH.getHandleByName(pEvents->PropertyName);
sal_Int32 nHandle = rPH.getHandleByName(rEvent.PropertyName);
if ( ( nHandle != -1 ) && !isCurrentlyForwardingProperty( nHandle ) )
{ // same as above : -1 is valid (73247) ...
pHandles[nDest] = nHandle;
pNewValues[nDest] = pEvents->NewValue;
pOldValues[nDest] = pEvents->OldValue;
pNewValues[nDest] = rEvent.NewValue;
pOldValues[nDest] = rEvent.OldValue;
++nDest;
}
}
@@ -607,13 +606,12 @@ void SAL_CALL OPropertySetAggregationHelper::setPropertyValues(
OPropertyArrayAggregationHelper& rPH = static_cast< OPropertyArrayAggregationHelper& >( getInfoHelper() );
// determine which properties belong to the aggregate, and which ones to the delegator
const OUString* pNames = _rPropertyNames.getConstArray();
sal_Int32 nAggCount(0);
sal_Int32 nLen(_rPropertyNames.getLength());
for ( sal_Int32 i = 0; i < nLen; ++i, ++pNames )
for ( const OUString& rName : _rPropertyNames )
{
OPropertyArrayAggregationHelper::PropertyOrigin ePropOrg = rPH.classifyProperty( *pNames );
OPropertyArrayAggregationHelper::PropertyOrigin ePropOrg = rPH.classifyProperty( rName );
if ( OPropertyArrayAggregationHelper::PropertyOrigin::Unknown == ePropOrg )
throw WrappedTargetException( OUString(), static_cast< XMultiPropertySet* >( this ), Any( UnknownPropertyException( ) ) );
// due to a flaw in the API design, this method is not allowed to throw an UnknownPropertyException
@@ -623,8 +621,6 @@ void SAL_CALL OPropertySetAggregationHelper::setPropertyValues(
++nAggCount;
}
pNames = _rPropertyNames.getConstArray(); // reset, we'll need it again below ...
// all properties belong to the aggregate
if (nAggCount == nLen)
m_xAggregateMultiSet->setPropertyValues(_rPropertyNames, _rValues);
@@ -655,17 +651,17 @@ void SAL_CALL OPropertySetAggregationHelper::setPropertyValues(
Sequence< Any > DelValues( nLen - nAggCount );
Any* pDelValues = DelValues.getArray();
for ( sal_Int32 i = 0; i < nLen; ++i, ++pNames, ++pValues )
for ( const OUString& rName : _rPropertyNames )
{
if ( OPropertyArrayAggregationHelper::PropertyOrigin::Aggregate == rPH.classifyProperty( *pNames ) )
if ( OPropertyArrayAggregationHelper::PropertyOrigin::Aggregate == rPH.classifyProperty( rName ) )
{
*pAggNames++ = *pNames;
*pAggValues++ = *pValues;
*pAggNames++ = rName;
*pAggValues++ = *pValues++;
}
else
{
*pDelNames++ = *pNames;
*pDelValues++ = *pValues;
*pDelNames++ = rName;
*pDelValues++ = *pValues++;
}
}
+6 -7
View File
@@ -71,20 +71,19 @@ void copyProperties(const Reference<XPropertySet>& _rxSource,
Reference< XPropertySetInfo > xDestProps = _rxDest->getPropertySetInfo();
Sequence< Property > aSourceProps = xSourceProps->getProperties();
const Property* pSourceProps = aSourceProps.getConstArray();
Property aDestProp;
for (sal_Int32 i=0; i<aSourceProps.getLength(); ++i, ++pSourceProps)
for (const Property& rSourceProp : aSourceProps)
{
if ( xDestProps->hasPropertyByName(pSourceProps->Name) )
if ( xDestProps->hasPropertyByName(rSourceProp.Name) )
{
try
{
aDestProp = xDestProps->getPropertyByName(pSourceProps->Name);
aDestProp = xDestProps->getPropertyByName(rSourceProp.Name);
if (0 == (aDestProp.Attributes & PropertyAttribute::READONLY) )
{
const Any aSourceValue = _rxSource->getPropertyValue(pSourceProps->Name);
const Any aSourceValue = _rxSource->getPropertyValue(rSourceProp.Name);
if ( 0 != (aDestProp.Attributes & PropertyAttribute::MAYBEVOID) || aSourceValue.hasValue() )
_rxDest->setPropertyValue(pSourceProps->Name, aSourceValue);
_rxDest->setPropertyValue(rSourceProp.Name, aSourceValue);
}
}
catch (Exception&)
@@ -92,7 +91,7 @@ void copyProperties(const Reference<XPropertySet>& _rxSource,
#if OSL_DEBUG_LEVEL > 0
OUStringBuffer aBuffer;
aBuffer.append( "::comphelper::copyProperties: could not copy property '" );
aBuffer.append( pSourceProps->Name );
aBuffer.append(rSourceProp.Name );
aBuffer.append( "' to the destination set (a '" );
Reference< XServiceInfo > xSI( _rxDest, UNO_QUERY );
@@ -131,12 +131,10 @@ namespace param
OUString ParameterWrapper::impl_getPseudoAggregatePropertyName( sal_Int32 _nHandle ) const
{
Reference< XPropertySetInfo > xInfo = const_cast<ParameterWrapper*>( this )->getPropertySetInfo();
Sequence< Property > aProperties = xInfo->getProperties();
const Property* pProperties = aProperties.getConstArray();
for ( sal_Int32 i = 0; i < aProperties.getLength(); ++i, ++pProperties )
for ( const Property& rProperty : xInfo->getProperties() )
{
if ( pProperties->Handle == _nHandle )
return pProperties->Name;
if ( rProperty.Handle == _nHandle )
return rProperty.Name;
}
OSL_FAIL( "ParameterWrapper::impl_getPseudoAggregatePropertyName: invalid argument!" );
+7 -10
View File
@@ -170,26 +170,23 @@ void OQuery::rebuildColumns()
throw RuntimeException();
}
Sequence< OUString> aNames = xColumns->getElementNames();
const OUString* pIter = aNames.getConstArray();
const OUString* pEnd = pIter + aNames.getLength();
for ( sal_Int32 i = 0;pIter != pEnd; ++pIter,++i)
for ( const OUString& rName : xColumns->getElementNames() )
{
Reference<XPropertySet> xSource(xColumns->getByName( *pIter ),UNO_QUERY);
OUString sLabel = *pIter;
if ( xColumnDefinitions.is() && xColumnDefinitions->hasByName(*pIter) )
Reference<XPropertySet> xSource(xColumns->getByName( rName ),UNO_QUERY);
OUString sLabel = rName;
if ( xColumnDefinitions.is() && xColumnDefinitions->hasByName(rName) )
{
Reference<XPropertySet> xCommandColumn(xColumnDefinitions->getByName( *pIter ),UNO_QUERY);
Reference<XPropertySet> xCommandColumn(xColumnDefinitions->getByName( rName ),UNO_QUERY);
xCommandColumn->getPropertyValue(PROPERTY_LABEL) >>= sLabel;
}
OQueryColumn* pColumn = new OQueryColumn( xSource, m_xConnection, sLabel);
Reference< XChild > xChild( *pColumn, UNO_QUERY_THROW );
xChild->setParent( *this );
implAppendColumn( *pIter, pColumn );
implAppendColumn( rName, pColumn );
Reference< XPropertySet > xDest( *pColumn, UNO_QUERY_THROW );
if ( m_pColumnMediator.is() )
m_pColumnMediator->notifyElementCreated( *pIter, xDest );
m_pColumnMediator->notifyElementCreated( rName, xDest );
}
}
catch( const SQLContext& e )
@@ -466,18 +466,14 @@ void ODatabaseContext::storeTransientProperties( ODatabaseModelImpl& _rModelImpl
if (xSetInfo.is())
aProperties = xSetInfo->getProperties();
if (aProperties.getLength())
for ( const Property& rProperty : aProperties )
{
const Property* pProperties = aProperties.getConstArray();
for ( sal_Int32 i=0; i<aProperties.getLength(); ++i, ++pProperties )
if ( ( ( rProperty.Attributes & PropertyAttribute::TRANSIENT) != 0 )
&& ( ( rProperty.Attributes & PropertyAttribute::READONLY) == 0 )
)
{
if ( ( ( pProperties->Attributes & PropertyAttribute::TRANSIENT) != 0 )
&& ( ( pProperties->Attributes & PropertyAttribute::READONLY) == 0 )
)
{
// found such a property
aRememberProps.put( pProperties->Name, xSource->getPropertyValue( pProperties->Name ) );
}
// found such a property
aRememberProps.put( rProperty.Name, xSource->getPropertyValue( rProperty.Name ) );
}
}
}
@@ -383,12 +383,10 @@ void lcl_uglyHackToStoreDialogeEmbedImages( const Reference< XStorageBasedLibrar
{
// Export the images to the storage
Reference< XGraphicObjectResolver > xGraphicResolver = GraphicObjectResolver::createWithStorage(rxContext, xTmpPic);
std::vector< OUString >::const_iterator it = vEmbedImgUrls.begin();
std::vector< OUString >::const_iterator it_end = vEmbedImgUrls.end();
if ( xGraphicResolver.is() )
{
for ( sal_Int32 count = 0; it != it_end; ++it, ++count )
xGraphicResolver->resolveGraphicObjectURL( *it );
for ( const OUString& rURL : vEmbedImgUrls )
xGraphicResolver->resolveGraphicObjectURL( rURL );
}
// delete old 'Pictures' storage and copy the contents of tempPictures into xStorage
+15 -17
View File
@@ -132,39 +132,38 @@ void SbaExternalSourceBrowser::modified(const css::lang::EventObject& aEvent)
void SAL_CALL SbaExternalSourceBrowser::dispatch(const css::util::URL& aURL, const Sequence< css::beans::PropertyValue>& aArgs)
{
const css::beans::PropertyValue* pArguments = aArgs.getConstArray();
if ( aURL.Complete == ".uno:FormSlots/AddGridColumn" )
{
// search the argument describing the column to create
OUString sControlType;
sal_Int32 nControlPos = -1;
Sequence< css::beans::PropertyValue> aControlProps;
for ( sal_Int32 i = 0; i < aArgs.getLength(); ++i, ++pArguments )
for ( const css::beans::PropertyValue& rArgument : aArgs )
{
if ( pArguments->Name == "ColumnType" )
if ( rArgument.Name == "ColumnType" )
{
auto s = o3tl::tryAccess<OUString>(pArguments->Value);
auto s = o3tl::tryAccess<OUString>(rArgument.Value);
OSL_ENSURE(s, "invalid type for argument \"ColumnType\" !");
if (s)
sControlType = *s;
}
else if ( pArguments->Name == "ColumnPosition" )
else if ( rArgument.Name == "ColumnPosition" )
{
auto n = o3tl::tryAccess<sal_Int16>(pArguments->Value);
auto n = o3tl::tryAccess<sal_Int16>(rArgument.Value);
OSL_ENSURE(n, "invalid type for argument \"ColumnPosition\" !");
if (n)
nControlPos = *n;
}
else if ( pArguments->Name == "ColumnProperties" )
else if ( rArgument.Name == "ColumnProperties" )
{
auto s = o3tl::tryAccess<Sequence<css::beans::PropertyValue>>(
pArguments->Value);
rArgument.Value);
OSL_ENSURE(s, "invalid type for argument \"ColumnProperties\" !");
if (s)
aControlProps = *s;
}
else
SAL_WARN("dbaccess.ui", "SbaExternalSourceBrowser::dispatch(AddGridColumn) : unknown argument (" << pArguments->Name << ") !");
SAL_WARN("dbaccess.ui", "SbaExternalSourceBrowser::dispatch(AddGridColumn) : unknown argument (" << rArgument.Name << ") !");
}
if (sControlType.isEmpty())
{
@@ -182,17 +181,16 @@ void SAL_CALL SbaExternalSourceBrowser::dispatch(const css::util::URL& aURL, con
// set its properties
if (xNewColProperties.is())
{
const css::beans::PropertyValue* pControlProps = aControlProps.getConstArray();
for (sal_Int32 i=0; i<aControlProps.getLength(); ++i, ++pControlProps)
for (const css::beans::PropertyValue& rControlProp : aControlProps)
{
try
{
if (xNewColProperties->hasPropertyByName(pControlProps->Name))
xNewCol->setPropertyValue(pControlProps->Name, pControlProps->Value);
if (xNewColProperties->hasPropertyByName(rControlProp.Name))
xNewCol->setPropertyValue(rControlProp.Name, rControlProp.Value);
}
catch (const Exception&)
{
SAL_WARN("dbaccess.ui", "SbaExternalSourceBrowser::dispatch : could not set a column property (" << pControlProps->Name << ")!");
SAL_WARN("dbaccess.ui", "SbaExternalSourceBrowser::dispatch : could not set a column property (" << rControlProp.Name << ")!");
}
}
}
@@ -219,11 +217,11 @@ void SAL_CALL SbaExternalSourceBrowser::dispatch(const css::util::URL& aURL, con
Reference< XRowSet > xMasterForm;
// search the arguments for the master form
for (sal_Int32 i=0; i<aArgs.getLength(); ++i, ++pArguments)
for (const css::beans::PropertyValue& rArgument : aArgs)
{
if ( (pArguments->Name == "MasterForm") && (pArguments->Value.getValueTypeClass() == TypeClass_INTERFACE) )
if ( (rArgument.Name == "MasterForm") && (rArgument.Value.getValueTypeClass() == TypeClass_INTERFACE) )
{
xMasterForm.set(pArguments->Value, UNO_QUERY);
xMasterForm.set(rArgument.Value, UNO_QUERY);
break;
}
}
+9 -15
View File
@@ -1206,14 +1206,11 @@ Reference< css::beans::XPropertySetInfo > SAL_CALL SbaXFormAdapter::getPropertyS
if (-1 == m_nNamePropHandle)
{
// we need to determine the handle for the NAME property
Sequence< css::beans::Property> aProps = xReturn->getProperties();
const css::beans::Property* pProps = aProps.getConstArray();
for (sal_Int32 i=0; i<aProps.getLength(); ++i, ++pProps)
for (const css::beans::Property& rProp : xReturn->getProperties())
{
if (pProps->Name == PROPERTY_NAME)
if (rProp.Name == PROPERTY_NAME)
{
m_nNamePropHandle = pProps->Handle;
m_nNamePropHandle = rProp.Handle;
break;
}
}
@@ -1234,16 +1231,14 @@ Sequence< Any > SAL_CALL SbaXFormAdapter::getPropertyValues(const Sequence< OUSt
if (!xSet.is())
return Sequence< Any>(aPropertyNames.getLength());
Sequence< Any> aReturn = xSet->getPropertyValues(aPropertyNames);
Sequence< Any> aReturn = xSet->getPropertyValues(aPropertyNames);
// search for (and fake) the NAME property
const OUString* pNames = aPropertyNames.getConstArray();
Any* pValues = aReturn.getArray();
OSL_ENSURE(aReturn.getLength() == aPropertyNames.getLength(), "SAL_CALL SbaXFormAdapter::getPropertyValues : the main form returned an invalid-length sequence !");
for (sal_Int32 i=0; i<aPropertyNames.getLength(); ++i, ++pNames, ++pValues)
if (*pNames == PROPERTY_NAME)
for (sal_Int32 i=0; i<aPropertyNames.getLength(); ++i)
if (aPropertyNames[i] == PROPERTY_NAME)
{
(*pValues) <<= m_sName;
aReturn[i] <<= m_sName;
break;
}
@@ -1336,9 +1331,8 @@ Sequence< css::beans::PropertyState> SAL_CALL SbaXFormAdapter::getPropertyStates
// set them all to DEFAULT
Sequence< css::beans::PropertyState> aReturn(aPropertyName.getLength());
css::beans::PropertyState* pStates = aReturn.getArray();
for (sal_Int32 i=0; i<aPropertyName.getLength(); ++i, ++pStates)
*pStates = css::beans::PropertyState_DEFAULT_VALUE;
for (css::beans::PropertyState& rState : aReturn)
rState = css::beans::PropertyState_DEFAULT_VALUE;
return aReturn;
}
+7 -8
View File
@@ -427,22 +427,21 @@ void SAL_CALL SbaXGridPeer::dispatch(const URL& aURL, const Sequence< PropertyVa
SolarMutexGuard aGuard;
sal_Int16 nColId = -1;
const PropertyValue* pArgs = aArgs.getConstArray();
for (sal_Int32 i=0; i<aArgs.getLength(); ++i, ++pArgs)
for (const PropertyValue& rArg : aArgs)
{
if (pArgs->Name == "ColumnViewPos")
if (rArg.Name == "ColumnViewPos")
{
nColId = pGrid->GetColumnIdFromViewPos(::comphelper::getINT16(pArgs->Value));
nColId = pGrid->GetColumnIdFromViewPos(::comphelper::getINT16(rArg.Value));
break;
}
if (pArgs->Name == "ColumnModelPos")
if (rArg.Name == "ColumnModelPos")
{
nColId = pGrid->GetColumnIdFromModelPos(::comphelper::getINT16(pArgs->Value));
nColId = pGrid->GetColumnIdFromModelPos(::comphelper::getINT16(rArg.Value));
break;
}
if (pArgs->Name == "ColumnId")
if (rArg.Name == "ColumnId")
{
nColId = ::comphelper::getINT16(pArgs->Value);
nColId = ::comphelper::getINT16(rArg.Value);
break;
}
}
+14 -26
View File
@@ -657,16 +657,13 @@ bool SbaTableQueryBrowser::InitializeGridModel(const Reference< css::form::XForm
OUString aCurrentModelType;
Reference<XColumnsSupplier> xSupCols(getRowSet(),UNO_QUERY);
Reference<XNameAccess> xColumns = xSupCols->getColumns();
Sequence< OUString> aNames = xColumns->getElementNames();
const OUString* pIter = aNames.getConstArray();
const OUString* pEnd = pIter + aNames.getLength();
OUString sDefaultProperty;
Reference< XPropertySet > xColumn;
Reference< XPropertySetInfo > xColPSI;
for (sal_uInt16 i=0; pIter != pEnd; ++i,++pIter)
for (const OUString& rName : xColumns->getElementNames())
{
xColumn.set( xColumns->getByName( *pIter ), UNO_QUERY_THROW );
xColumn.set( xColumns->getByName( rName ), UNO_QUERY_THROW );
xColPSI.set( xColumn->getPropertySetInfo(), UNO_SET_THROW );
// ignore the column when it is a rowversion one
@@ -730,13 +727,13 @@ bool SbaTableQueryBrowser::InitializeGridModel(const Reference< css::form::XForm
break;
}
aInitialValues.emplace_back( PROPERTY_CONTROLSOURCE, makeAny( *pIter ) );
aInitialValues.emplace_back( PROPERTY_CONTROLSOURCE, makeAny( rName ) );
OUString sLabel;
xColumn->getPropertyValue(PROPERTY_LABEL) >>= sLabel;
if ( !sLabel.isEmpty() )
aInitialValues.emplace_back( PROPERTY_LABEL, makeAny( sLabel ) );
else
aInitialValues.emplace_back( PROPERTY_LABEL, makeAny( *pIter ) );
aInitialValues.emplace_back( PROPERTY_LABEL, makeAny( rName ) );
Reference< XPropertySet > xGridCol( xColFactory->createColumn( aCurrentModelType ), UNO_SET_THROW );
Reference< XPropertySetInfo > xGridColPSI( xGridCol->getPropertySetInfo(), UNO_SET_THROW );
@@ -799,7 +796,7 @@ bool SbaTableQueryBrowser::InitializeGridModel(const Reference< css::form::XForm
)
xGridCol->setPropertyValue( *copyPropertyName, xColumn->getPropertyValue( *copyPropertyName ) );
xColContainer->insertByName(*pIter, makeAny(xGridCol));
xColContainer->insertByName(rName, makeAny(xGridCol));
}
}
}
@@ -2083,11 +2080,8 @@ void SbaTableQueryBrowser::initializeTreeModel()
OUString sQueriesName, sTablesName;
// fill the model with the names of the registered datasources
Sequence< OUString > aDatasources = m_xDatabaseContext->getElementNames();
const OUString* pIter = aDatasources.getConstArray();
const OUString* pEnd = pIter + aDatasources.getLength();
for (; pIter != pEnd; ++pIter)
implAddDatasource( *pIter, aDBImage, sQueriesName, aQueriesImage, sTablesName, aTablesImage, SharedConnection() );
for (const OUString& rDatasource : m_xDatabaseContext->getElementNames())
implAddDatasource( rDatasource, aDBImage, sQueriesName, aQueriesImage, sTablesName, aTablesImage, SharedConnection() );
}
}
@@ -2101,22 +2095,19 @@ void SbaTableQueryBrowser::populateTree(const Reference<XNameAccess>& _xNameAcce
try
{
Sequence< OUString > aNames = _xNameAccess->getElementNames();
const OUString* pIter = aNames.getConstArray();
const OUString* pEnd = pIter + aNames.getLength();
for (; pIter != pEnd; ++pIter)
for (const OUString& rName : _xNameAccess->getElementNames())
{
if( !m_pTreeView->getListBox().GetEntryPosByName(*pIter,_pParent))
if( !m_pTreeView->getListBox().GetEntryPosByName(rName,_pParent))
{
DBTreeListUserData* pEntryData = new DBTreeListUserData;
pEntryData->eType = _eEntryType;
if ( _eEntryType == etQuery )
{
Reference<XNameAccess> xChild(_xNameAccess->getByName(*pIter),UNO_QUERY);
Reference<XNameAccess> xChild(_xNameAccess->getByName(rName),UNO_QUERY);
if ( xChild.is() )
pEntryData->eType = etQueryContainer;
}
implAppendEntry( _pParent, *pIter, pEntryData, pEntryData->eType );
implAppendEntry( _pParent, rName, pEntryData, pEntryData->eType );
}
}
}
@@ -3591,14 +3582,11 @@ void SbaTableQueryBrowser::frameAction(const css::frame::FrameActionEvent& aEven
void SbaTableQueryBrowser::clearGridColumns(const Reference< XNameContainer >& _xColContainer)
{
// first we have to clear the grid
Sequence< OUString > aNames = _xColContainer->getElementNames();
const OUString* pIter = aNames.getConstArray();
const OUString* pEnd = pIter + aNames.getLength();
Reference< XInterface > xColumn;
for (; pIter != pEnd;++pIter)
for (const OUString& rName : _xColContainer->getElementNames())
{
_xColContainer->getByName(*pIter) >>= xColumn;
_xColContainer->removeByName(*pIter);
_xColContainer->getByName(rName) >>= xColumn;
_xColContainer->removeByName(rName);
::comphelper::disposeComponent(xColumn);
}
}
+4 -5
View File
@@ -589,18 +589,17 @@ void ODbDataSourceAdministrationHelper::translateProperties(const Reference< XPr
catch(Exception&) { }
// collect the names of the additional settings
const PropertyValue* pAdditionalInfo = aAdditionalInfo.getConstArray();
PropertyValueSet aInfos;
for (sal_Int32 i=0; i<aAdditionalInfo.getLength(); ++i, ++pAdditionalInfo)
for (const PropertyValue& rAdditionalInfo : aAdditionalInfo)
{
if( pAdditionalInfo->Name == "JDBCDRV" )
if( rAdditionalInfo.Name == "JDBCDRV" )
{ // compatibility
PropertyValue aCompatibility(*pAdditionalInfo);
PropertyValue aCompatibility(rAdditionalInfo);
aCompatibility.Name = "JavaDriverClass";
aInfos.insert(aCompatibility);
}
else
aInfos.insert(*pAdditionalInfo);
aInfos.insert(rAdditionalInfo);
}
// go through all known translations and check if we have such a setting
+2 -6
View File
@@ -281,20 +281,16 @@ void ODbaseIndexDialog::Init()
// first assume for all indexes they're free
Sequence< OUString> aFolderContent( ::utl::LocalFileHelper::GetFolderContents(m_aDSN,bFolder));
OUString const aIndexExt("ndx");
OUString const aTableExt("dbf");
std::vector< OUString > aUsedIndexes;
const OUString *pBegin = aFolderContent.getConstArray();
const OUString *pEnd = pBegin + aFolderContent.getLength();
aURL.SetSmartProtocol(INetProtocol::File);
for(;pBegin != pEnd;++pBegin)
for(const OUString& rURL : ::utl::LocalFileHelper::GetFolderContents(m_aDSN, bFolder))
{
OUString aName;
osl::FileBase::getSystemPathFromFileURL(pBegin->getStr(),aName);
osl::FileBase::getSystemPathFromFileURL(rURL,aName);
aURL.SetSmartURL(aName);
OUString aExt = aURL.getExtension();
if (aExt == aIndexExt)
+3 -4
View File
@@ -159,13 +159,12 @@ namespace dbaui
SvTreeListEntry* pRootEntry = m_pTablesList->getAllObjectsEntry();
const OUString* pIncludeTable = _rTables.getConstArray();
for (sal_Int32 i=0; i<_rTables.getLength(); ++i, ++pIncludeTable)
for (const OUString& rIncludeTable : _rTables)
{
if (xMeta.is())
qualifiedNameComponents(xMeta, pIncludeTable->getStr(), sCatalog, sSchema, sName,::dbtools::EComposeRule::InDataManipulation);
qualifiedNameComponents(xMeta, rIncludeTable.getStr(), sCatalog, sSchema, sName,::dbtools::EComposeRule::InDataManipulation);
else
sName = *pIncludeTable;
sName = rIncludeTable;
bool bAllTables = (1 == sName.getLength()) && ('%' == sName[0]);
bool bAllSchemas = (1 == sSchema.getLength()) && ('%' == sSchema[0]);
+6 -8
View File
@@ -879,8 +879,8 @@ bool callColumnFormatDialog(vcl::Window* _pParent,
{
const sal_uInt32* pDeletedKeys = pInfoItem->GetDelArray();
for (sal_uInt32 i=0; i< pInfoItem->GetDelCount(); ++i, ++pDeletedKeys)
_pFormatter->DeleteEntry(*pDeletedKeys);
for (sal_uInt32 i=0; i< pInfoItem->GetDelCount(); ++i)
_pFormatter->DeleteEntry(pDeletedKeys[i]);
}
}
}
@@ -916,16 +916,14 @@ bool appendToFilter(const Reference<XConnection>& _xConnection,
xProp->getPropertyValue(PROPERTY_TABLEFILTER) >>= aFilter;
// first check if we have something like SCHEMA.%
bool bHasToInsert = true;
const OUString* pBegin = aFilter.getConstArray();
const OUString* pEnd = pBegin + aFilter.getLength();
for (;pBegin != pEnd; ++pBegin)
for (const OUString& rItem : aFilter)
{
if(pBegin->indexOf('%') != -1)
if(rItem.indexOf('%') != -1)
{
sal_Int32 nLen;
if((nLen = pBegin->lastIndexOf('.')) != -1 && !pBegin->compareTo(_sName,nLen))
if((nLen = rItem.lastIndexOf('.')) != -1 && !rItem.compareTo(_sName,nLen))
bHasToInsert = false;
else if(pBegin->getLength() == 1)
else if(rItem.getLength() == 1)
bHasToInsert = false;
}
}
+2 -5
View File
@@ -44,11 +44,8 @@ bool OStringListItem::operator==(const SfxPoolItem& _rItem) const
return false;
// compare all strings individually
const OUString* pMyStrings = m_aList.getConstArray();
const OUString* pCompareStrings = pCompare->m_aList.getConstArray();
for (sal_Int32 i=0; i<m_aList.getLength(); ++i, ++pMyStrings, ++pCompareStrings)
if (*pMyStrings != *pCompareStrings)
for (sal_Int32 i=0; i<m_aList.getLength(); ++i)
if (m_aList[i] != pCompare->m_aList[i])
return false;
return true;
@@ -139,13 +139,10 @@ namespace
OUString sRelatedColumn;
// iterate through all foreignkey columns to create the connections
Sequence< OUString> aElements(_rxSourceForeignKeyColumns->getElementNames());
const OUString* pIter = aElements.getConstArray();
const OUString* pEnd = pIter + aElements.getLength();
for(sal_Int32 i=0;pIter != pEnd;++pIter,++i)
for(const OUString& rElement : _rxSourceForeignKeyColumns->getElementNames())
{
Reference<XPropertySet> xColumn;
if ( !( _rxSourceForeignKeyColumns->getByName(*pIter) >>= xColumn ) )
if ( !( _rxSourceForeignKeyColumns->getByName(rElement) >>= xColumn ) )
{
OSL_FAIL( "addConnections: invalid foreign key column!" );
continue;
@@ -154,7 +151,7 @@ namespace
xColumn->getPropertyValue(PROPERTY_RELATEDCOLUMN) >>= sRelatedColumn;
{
Sequence< sal_Int16> aFind(::comphelper::findValue(_rSource.GetOriginalColumns()->getElementNames(),*pIter,true));
Sequence< sal_Int16> aFind(::comphelper::findValue(_rSource.GetOriginalColumns()->getElementNames(),rElement,true));
if(aFind.getLength())
pNewConnData->SetFieldIndex(JTCS_FROM,aFind[0]+1);
else
@@ -170,7 +167,7 @@ namespace
else
OSL_FAIL("Column not found!");
}
pNewConnData->AppendConnLine(*pIter,sRelatedColumn);
pNewConnData->AppendConnLine(rElement,sRelatedColumn);
// now add the Conn itself
ScopedVclPtrInstance< OQueryTableConnection > aNewConn(_pView, aNewConnData);
@@ -315,12 +315,11 @@ namespace
{
osl_setThreadName("RelationLoader");
const OUString* pIter = m_aTableList.getConstArray() + m_nStartIndex;
for(sal_Int32 i = m_nStartIndex; i < m_nEndIndex;++i,++pIter)
for(sal_Int32 i = m_nStartIndex; i < m_nEndIndex; ++i)
{
OUString sCatalog,sSchema,sTable;
::dbtools::qualifiedNameComponents(m_xMetaData,
*pIter,
m_aTableList[i],
sCatalog,
sSchema,
sTable,
@@ -335,7 +334,7 @@ namespace
if ( xResult.is() && xResult->next() )
{
::comphelper::disposeComponent(xResult);
loadTableData(m_xTables->getByName(*pIter));
loadTableData(m_xTables->getByName(m_aTableList[i]));
}
}
catch( const Exception& )
@@ -406,14 +405,12 @@ namespace
// insert columns
const Reference<XColumnsSupplier> xColsSup(xKey,UNO_QUERY);
OSL_ENSURE(xColsSup.is(),"Key is no XColumnsSupplier!");
const Reference<XNameAccess> xColumns = xColsSup->getColumns();
const Reference<XNameAccess> xColumns = xColsSup->getColumns();
const Sequence< OUString> aNames = xColumns->getElementNames();
const OUString* pIter = aNames.getConstArray();
const OUString* pEnd = pIter + aNames.getLength();
OUString sColumnName,sRelatedName;
for(sal_uInt16 j=0;pIter != pEnd;++pIter,++j)
for(sal_Int32 j=0;j<aNames.getLength();++j)
{
const Reference<XPropertySet> xPropSet(xColumns->getByName(*pIter),UNO_QUERY);
const Reference<XPropertySet> xPropSet(xColumns->getByName(aNames[j]),UNO_QUERY);
OSL_ENSURE(xPropSet.is(),"Invalid column found in KeyColumns!");
if ( xPropSet.is() )
{
@@ -781,14 +781,11 @@ void OTableController::loadData()
// For Add and Drop all rows can be edited
// sal_Bool bReadOldRow = xMetaData->supportsAlterTableWithAddColumn() && xMetaData->supportsAlterTableWithDropColumn();
bool bIsAlterAllowed = isAlterAllowed();
Sequence< OUString> aColumns = xColumns->getElementNames();
const OUString* pIter = aColumns.getConstArray();
const OUString* pEnd = pIter + aColumns.getLength();
for(;pIter != pEnd;++pIter)
for(const OUString& rColumn : xColumns->getElementNames())
{
Reference<XPropertySet> xColumn;
xColumns->getByName(*pIter) >>= xColumn;
xColumns->getByName(rColumn) >>= xColumn;
sal_Int32 nType = 0;
sal_Int32 nScale = 0;
sal_Int32 nPrecision = 0;
@@ -855,19 +852,13 @@ void OTableController::loadData()
Reference<XNameAccess> xKeyColumns = getKeyColumns();
if(xKeyColumns.is())
{
Sequence< OUString> aKeyColumns = xKeyColumns->getElementNames();
const OUString* pKeyBegin = aKeyColumns.getConstArray();
const OUString* pKeyEnd = pKeyBegin + aKeyColumns.getLength();
for(;pKeyBegin != pKeyEnd;++pKeyBegin)
for(const OUString& rKeyColumn : xKeyColumns->getElementNames())
{
std::vector< std::shared_ptr<OTableRow> >::const_iterator rowIter = m_vRowList.begin();
std::vector< std::shared_ptr<OTableRow> >::const_iterator rowEnd = m_vRowList.end();
for(;rowIter != rowEnd;++rowIter)
for(std::shared_ptr<OTableRow> const& pRow : m_vRowList)
{
if((*rowIter)->GetActFieldDescr()->GetName() == *pKeyBegin)
if(pRow->GetActFieldDescr()->GetName() == rKeyColumn)
{
(*rowIter)->SetPrimaryKey(true);
pRow->SetPrimaryKey(true);
break;
}
}
@@ -1176,17 +1167,14 @@ void OTableController::alterColumns()
// now we have to look for the columns who could be deleted
if ( xDrop.is() )
{
Sequence< OUString> aColumnNames = xColumns->getElementNames();
const OUString* pIter = aColumnNames.getConstArray();
const OUString* pEnd = pIter + aColumnNames.getLength();
for(;pIter != pEnd;++pIter)
for(const OUString& rColumnName : xColumns->getElementNames())
{
if(aColumns.find(*pIter) == aColumns.end()) // found a column to delete
if(aColumns.find(rColumnName) == aColumns.end()) // found a column to delete
{
if(xKeyColumns.is() && xKeyColumns->hasByName(*pIter)) // check if this column is a member of the primary key
if(xKeyColumns.is() && xKeyColumns->hasByName(rColumnName)) // check if this column is a member of the primary key
{
OUString aMsgT(DBA_RES(STR_TBL_COLUMN_IS_KEYCOLUMN));
aMsgT = aMsgT.replaceFirst("$column$",*pIter);
aMsgT = aMsgT.replaceFirst("$column$",rColumnName);
OUString aTitle(DBA_RES(STR_TBL_COLUMN_IS_KEYCOLUMN_TITLE));
ScopedVclPtrInstance< OSQLMessageBox > aMsg(getView(),aTitle,aMsgT,MessBoxStyle::YesNo| MessBoxStyle::DefaultYes);
if(aMsg->Execute() == RET_YES)
@@ -1202,12 +1190,12 @@ void OTableController::alterColumns()
}
try
{
xDrop->dropByName(*pIter);
xDrop->dropByName(rColumnName);
}
catch (const SQLException&)
{
OUString sError( DBA_RES( STR_TABLEDESIGN_COULD_NOT_DROP_COL ) );
sError = sError.replaceFirst( "$column$", *pIter );
sError = sError.replaceFirst( "$column$", rColumnName );
SQLException aNewException;
aNewException.Message = sError;
+3 -7
View File
@@ -1166,8 +1166,6 @@ void CopyTableWizard::impl_copyRows_throw( const Reference< XResultSet >& _rxSou
}
++nRowCount;
ODatabaseExport::TPositions::const_iterator aPosIter = aColumnPositions.begin();
ODatabaseExport::TPositions::const_iterator aPosEnd = aColumnPositions.end();
aCopyEvent.Error.clear();
try
@@ -1180,9 +1178,9 @@ void CopyTableWizard::impl_copyRows_throw( const Reference< XResultSet >& _rxSou
sal_Int32 nSourceColumn( 1 );
ValueTransfer aTransfer( nSourceColumn, nDestColumn, aSourceColTypes, xRow, xStatementParams );
for ( ; aPosIter != aPosEnd; ++aPosIter )
for ( auto const& rColumnPos : aColumnPositions )
{
nDestColumn = aPosIter->first;
nDestColumn = rColumnPos.first;
if ( nDestColumn == COLUMN_POSITION_NOT_FOUND )
{
++nSourceColumn;
@@ -1432,9 +1430,7 @@ OUString CopyTableWizard::impl_getServerSideCopyStatement_throw(const Reference<
const OUString sQuote = xDestMetaData->getIdentifierQuoteString();
OUStringBuffer sColumns;
// 1st check if the columns matching
const OCopyTableWizard& rWizard = impl_getDialog_throw();
ODatabaseExport::TPositions const & rColumnPositions = rWizard.GetColumnPositions();
for ( auto const & rColumnPositionPair : rColumnPositions )
for ( auto const & rColumnPositionPair : impl_getDialog_throw().GetColumnPositions() )
{
if ( COLUMN_POSITION_NOT_FOUND != rColumnPositionPair.second )
{
+22 -31
View File
@@ -389,55 +389,49 @@ migrations_vr MigrationImpl::readMigrationSteps(const OUString& rMigrationName)
// get migration description from org.openoffice.Setup/Migration
// and build vector of migration steps
uno::Reference< XNameAccess > theNameAccess(xMigrationData->getByName("MigrationSteps"), uno::UNO_QUERY_THROW);
uno::Sequence< OUString > seqMigrations = theNameAccess->getElementNames();
uno::Reference< XNameAccess > tmpAccess;
uno::Sequence< OUString > tmpSeq;
migrations_vr vrMigrations(new migrations_v);
for (sal_Int32 i = 0; i < seqMigrations.getLength(); i++) {
for (const OUString& rMigrationStep : theNameAccess->getElementNames()) {
// get current migration step
theNameAccess->getByName(seqMigrations[i]) >>= tmpAccess;
theNameAccess->getByName(rMigrationStep) >>= tmpAccess;
migration_step tmpStep;
tmpStep.name = seqMigrations[i];
tmpStep.name = rMigrationStep;
// read included files from current step description
OUString aSeqEntry;
if (tmpAccess->getByName("IncludedFiles") >>= tmpSeq) {
for (sal_Int32 j=0; j<tmpSeq.getLength(); j++) {
aSeqEntry = tmpSeq[j];
tmpStep.includeFiles.push_back(aSeqEntry);
}
for (const OUString& rSeqEntry : tmpSeq)
tmpStep.includeFiles.push_back(rSeqEntry);
}
// excluded files...
if (tmpAccess->getByName("ExcludedFiles") >>= tmpSeq) {
for (sal_Int32 j=0; j<tmpSeq.getLength(); j++)
tmpStep.excludeFiles.push_back(tmpSeq[j]);
for (const OUString& rSeqEntry : tmpSeq)
tmpStep.excludeFiles.push_back(rSeqEntry);
}
// included nodes...
if (tmpAccess->getByName("IncludedNodes") >>= tmpSeq) {
for (sal_Int32 j=0; j<tmpSeq.getLength(); j++)
tmpStep.includeConfig.push_back(tmpSeq[j]);
for (const OUString& rSeqEntry : tmpSeq)
tmpStep.includeConfig.push_back(rSeqEntry);
}
// excluded nodes...
if (tmpAccess->getByName("ExcludedNodes") >>= tmpSeq) {
for (sal_Int32 j=0; j<tmpSeq.getLength(); j++)
tmpStep.excludeConfig.push_back(tmpSeq[j]);
for (const OUString& rSeqEntry : tmpSeq)
tmpStep.excludeConfig.push_back(rSeqEntry);
}
// included extensions...
if (tmpAccess->getByName("IncludedExtensions") >>= tmpSeq) {
for (sal_Int32 j=0; j<tmpSeq.getLength(); j++)
tmpStep.includeExtensions.push_back(tmpSeq[j]);
for (const OUString& rSeqEntry : tmpSeq)
tmpStep.includeExtensions.push_back(rSeqEntry);
}
// excluded extensions...
if (tmpAccess->getByName("ExcludedExtensions") >>= tmpSeq) {
for (sal_Int32 j=0; j<tmpSeq.getLength(); j++) {
aSeqEntry = tmpSeq[j];
tmpStep.excludeExtensions.push_back(aSeqEntry);
}
for (const OUString& rSeqEntry : tmpSeq)
tmpStep.excludeExtensions.push_back(rSeqEntry);
}
// generic service
@@ -714,20 +708,17 @@ uno::Sequence< OUString > setToSeq(std::set< OUString > const & set)
void MigrationImpl::copyConfig()
{
Components comps;
for (migrations_v::const_iterator i(m_vrMigrations->begin());
i != m_vrMigrations->end(); ++i) {
for (strings_v::const_iterator j(i->includeConfig.begin());
j != i->includeConfig.end(); ++j) {
for (auto const& rMigrationStep : *m_vrMigrations) {
for (const OUString& rIncludePath : rMigrationStep.includeConfig) {
OUString comp;
if (getComponent(*j, &comp)) {
comps[comp].includedPaths.insert(*j);
if (getComponent(rIncludePath, &comp)) {
comps[comp].includedPaths.insert(rIncludePath);
}
}
for (strings_v::const_iterator j(i->excludeConfig.begin());
j != i->excludeConfig.end(); ++j) {
for (const OUString& rExcludePath : rMigrationStep.excludeConfig) {
OUString comp;
if (getComponent(*j, &comp)) {
comps[comp].excludedPaths.insert(*j);
if (getComponent(rExcludePath, &comp)) {
comps[comp].excludedPaths.insert(rExcludePath);
}
}
}
@@ -284,16 +284,11 @@ void CommandEnvironmentImpl::handle(
}
// select:
Sequence< Reference<task::XInteractionContinuation> > conts(
xRequest->getContinuations() );
Reference<task::XInteractionContinuation> const * pConts =
conts.getConstArray();
sal_Int32 len = conts.getLength();
for ( sal_Int32 pos = 0; pos < len; ++pos )
for ( auto const& rCont : xRequest->getContinuations() )
{
if (approve) {
Reference<task::XInteractionApprove> xInteractionApprove(
pConts[ pos ], UNO_QUERY );
rCont, UNO_QUERY );
if (xInteractionApprove.is()) {
xInteractionApprove->select();
break;
@@ -301,7 +296,7 @@ void CommandEnvironmentImpl::handle(
}
else if (abort) {
Reference<task::XInteractionAbort> xInteractionAbort(
pConts[ pos ], UNO_QUERY );
rCont, UNO_QUERY );
if (xInteractionAbort.is()) {
xInteractionAbort->select();
break;
@@ -1218,12 +1218,9 @@ namespace accessibility
::comphelper::SequenceAsHashMap aPropHashMap( getDefaultAttributes( aPropertyNames ) );
// ... and override them with the direct attributes from the specific position
uno::Sequence< beans::PropertyValue > aRunAttribs( getRunAttributes( nIndex, aPropertyNames ) );
sal_Int32 nRunAttribs = aRunAttribs.getLength();
const beans::PropertyValue *pRunAttrib = aRunAttribs.getConstArray();
for (sal_Int32 k = 0; k < nRunAttribs; ++k)
const uno::Sequence< beans::PropertyValue > aRunAttribs( getRunAttributes( nIndex, aPropertyNames ) );
for (auto const& rRunAttrib : aRunAttribs)
{
const beans::PropertyValue &rRunAttrib = pRunAttrib[k];
aPropHashMap[ rRunAttrib.Name ] = rRunAttrib.Value; //!! should not only be the value !!
}
@@ -1234,16 +1231,13 @@ namespace accessibility
// since SequenceAsHashMap ignores property handles and property state
// we have to restore the property state here (property handles are
// of no use to the accessibility API).
sal_Int32 nRes = aRes.getLength();
beans::PropertyValue *pRes = aRes.getArray();
for (sal_Int32 i = 0; i < nRes; ++i)
for (beans::PropertyValue & rRes : aRes)
{
beans::PropertyValue &rRes = pRes[i];
bool bIsDirectVal = false;
for (sal_Int32 k = 0; k < nRunAttribs && !bIsDirectVal; ++k)
for (auto const& rRunAttrib : aRunAttribs)
{
if (rRes.Name == pRunAttrib[k].Name)
bIsDirectVal = true;
if ((bIsDirectVal = rRes.Name == rRunAttrib.Name))
break;
}
rRes.Handle = -1;
rRes.State = bIsDirectVal ? PropertyState_DIRECT_VALUE : PropertyState_DEFAULT_VALUE;
@@ -1252,10 +1246,9 @@ namespace accessibility
{
_correctValues( aRes );
// NumberingPrefix
nRes = aRes.getLength();
sal_Int32 nRes = aRes.getLength();
aRes.realloc( nRes + 1 );
pRes = aRes.getArray();
beans::PropertyValue &rRes = pRes[nRes];
beans::PropertyValue &rRes = aRes[nRes];
rRes.Name = "NumberingPrefix";
OUString numStr;
if (aBulletInfo.nType != SVX_NUM_CHAR_SPECIAL && aBulletInfo.nType != SVX_NUM_BITMAP)
@@ -1269,32 +1262,30 @@ namespace accessibility
{
nRes = aRes.getLength();
aRes.realloc( nRes + 1 );
pRes = aRes.getArray();
beans::PropertyValue &rResField = pRes[nRes];
beans::PropertyValue aFieldType;
beans::PropertyValue &rResField = aRes[nRes];
rResField.Name = "FieldType";
rResField.Value <<= strFieldType.toAsciiLowerCase();
rResField.Handle = -1;
rResField.State = PropertyState_DIRECT_VALUE;
}
//sort property values
// build sorted index array
sal_Int32 nLength = aRes.getLength();
const beans::PropertyValue* pPairs = aRes.getConstArray();
std::unique_ptr<sal_Int32[]> pIndices(new sal_Int32[nLength]);
sal_Int32 i = 0;
for( i = 0; i < nLength; i++ )
pIndices[i] = i;
sort( &pIndices[0], &pIndices[nLength], IndexCompare(pPairs) );
// create sorted sequences according to index array
uno::Sequence<beans::PropertyValue> aNewValues( nLength );
beans::PropertyValue* pNewValues = aNewValues.getArray();
for( i = 0; i < nLength; i++ )
{
pNewValues[i] = pPairs[pIndices[i]];
}
}
//sort property values
// build sorted index array
sal_Int32 nLength = aRes.getLength();
const beans::PropertyValue* pPairs = aRes.getConstArray();
std::unique_ptr<sal_Int32[]> pIndices(new sal_Int32[nLength]);
sal_Int32 i = 0;
for( i = 0; i < nLength; i++ )
pIndices[i] = i;
sort( &pIndices[0], &pIndices[nLength], IndexCompare(pPairs) );
// create sorted sequences according to index array
uno::Sequence<beans::PropertyValue> aNewValues( nLength );
beans::PropertyValue* pNewValues = aNewValues.getArray();
for( i = 0; i < nLength; i++ )
{
pNewValues[i] = pPairs[pIndices[i]];
}
return aNewValues;
return aNewValues;
}
return aRes;
}
@@ -2352,20 +2343,16 @@ namespace accessibility
xPropSet->SetSelection( MakeSelection(nStartIndex, nEndIndex) );
// convert from PropertyValue to Any
sal_Int32 i, nLength( aAttributeSet.getLength() );
const beans::PropertyValue* pPropArray = aAttributeSet.getConstArray();
for(i=0; i<nLength; ++i)
for(const beans::PropertyValue& rProp : aAttributeSet)
{
try
{
xPropSet->setPropertyValue(pPropArray->Name, pPropArray->Value);
xPropSet->setPropertyValue(rProp.Name, rProp.Value);
}
catch (const uno::Exception&)
{
OSL_FAIL("AccessibleEditableTextPara::setAttributes exception in setPropertyValue");
}
++pPropArray;
}
rCacheTF.QuickFormatDoc();
@@ -2410,21 +2397,18 @@ namespace accessibility
( static_cast< XAccessible* > (this) ) ); // disambiguate hierarchy
// build sequence of available properties to check
sal_Int32 nLenReqAttr = rRequestedAttributes.getLength();
uno::Sequence< beans::Property > aProperties;
if (nLenReqAttr)
if (const sal_Int32 nLenReqAttr = rRequestedAttributes.getLength())
{
const OUString *pRequestedAttributes = rRequestedAttributes.getConstArray();
aProperties.realloc( nLenReqAttr );
beans::Property *pProperties = aProperties.getArray();
sal_Int32 nCurLen = 0;
for (sal_Int32 i = 0; i < nLenReqAttr; ++i)
for (const OUString& rRequestedAttribute : rRequestedAttributes)
{
beans::Property aProp;
try
{
aProp = xPropSetInfo->getPropertyByName( pRequestedAttributes[i] );
aProp = xPropSetInfo->getPropertyByName( rRequestedAttribute );
}
catch (const beans::UnknownPropertyException&)
{
@@ -2437,19 +2421,16 @@ namespace accessibility
else
aProperties = xPropSetInfo->getProperties();
sal_Int32 nLength = aProperties.getLength();
const beans::Property *pProperties = aProperties.getConstArray();
// build resulting sequence
uno::Sequence< beans::PropertyValue > aOutSequence( nLength );
uno::Sequence< beans::PropertyValue > aOutSequence( aProperties.getLength() );
beans::PropertyValue* pOutSequence = aOutSequence.getArray();
sal_Int32 nOutLen = 0;
for (sal_Int32 i = 0; i < nLength; ++i)
for (const beans::Property& rProperty : aProperties)
{
// calling implementation functions:
// _getPropertyState and _getPropertyValue (see below) to provide
// the proper paragraph number when retrieving paragraph attributes
PropertyState eState = xPropSet->_getPropertyState( pProperties->Name, mnParagraphIndex );
PropertyState eState = xPropSet->_getPropertyState( rProperty.Name, mnParagraphIndex );
if ( eState == PropertyState_AMBIGUOUS_VALUE )
{
OSL_FAIL( "ambiguous property value encountered" );
@@ -2460,15 +2441,14 @@ namespace accessibility
// properties spanning the whole paragraph should be returned
// and declared as default value
{
pOutSequence->Name = pProperties->Name;
pOutSequence->Handle = pProperties->Handle;
pOutSequence->Value = xPropSet->_getPropertyValue( pProperties->Name, mnParagraphIndex );
pOutSequence->Name = rProperty.Name;
pOutSequence->Handle = rProperty.Handle;
pOutSequence->Value = xPropSet->_getPropertyValue( rProperty.Name, mnParagraphIndex );
pOutSequence->State = PropertyState_DEFAULT_VALUE;
++pOutSequence;
++nOutLen;
}
++pProperties;
}
aOutSequence.realloc( nOutLen );
@@ -2503,21 +2483,18 @@ namespace accessibility
( static_cast< XAccessible* > (this) ) ); // disambiguate hierarchy
// build sequence of available properties to check
sal_Int32 nLenReqAttr = rRequestedAttributes.getLength();
uno::Sequence< beans::Property > aProperties;
if (nLenReqAttr)
if (const sal_Int32 nLenReqAttr = rRequestedAttributes.getLength())
{
const OUString *pRequestedAttributes = rRequestedAttributes.getConstArray();
aProperties.realloc( nLenReqAttr );
beans::Property *pProperties = aProperties.getArray();
sal_Int32 nCurLen = 0;
for (sal_Int32 i = 0; i < nLenReqAttr; ++i)
for (const OUString& rRequestedAttribute : rRequestedAttributes)
{
beans::Property aProp;
try
{
aProp = xPropSetInfo->getPropertyByName( pRequestedAttributes[i] );
aProp = xPropSetInfo->getPropertyByName( rRequestedAttribute );
}
catch (const beans::UnknownPropertyException&)
{
@@ -2530,28 +2507,24 @@ namespace accessibility
else
aProperties = xPropSetInfo->getProperties();
sal_Int32 nLength = aProperties.getLength();
const beans::Property *pProperties = aProperties.getConstArray();
// build resulting sequence
uno::Sequence< beans::PropertyValue > aOutSequence( nLength );
uno::Sequence< beans::PropertyValue > aOutSequence( aProperties.getLength() );
beans::PropertyValue* pOutSequence = aOutSequence.getArray();
sal_Int32 nOutLen = 0;
for (sal_Int32 i = 0; i < nLength; ++i)
for (const beans::Property& rProperty : aProperties)
{
// calling 'regular' functions that will operate on the selection
PropertyState eState = xPropSet->getPropertyState( pProperties->Name );
PropertyState eState = xPropSet->getPropertyState( rProperty.Name );
if (eState == PropertyState_DIRECT_VALUE)
{
pOutSequence->Name = pProperties->Name;
pOutSequence->Handle = pProperties->Handle;
pOutSequence->Value = xPropSet->getPropertyValue( pProperties->Name );
pOutSequence->Name = rProperty.Name;
pOutSequence->Handle = rProperty.Handle;
pOutSequence->Value = xPropSet->getPropertyValue( rProperty.Name );
pOutSequence->State = eState;
++pOutSequence;
++nOutLen;
}
++pProperties;
}
aOutSequence.realloc( nOutLen );
+1 -2
View File
@@ -59,8 +59,7 @@ SvxAutoCorrCfg::SvxAutoCorrCfg() :
Reference < ucb::XCommandEnvironment > xEnv;
::utl::UCBContentHelper::ensureFolder(comphelper::getProcessComponentContext(), xEnv, sUserPath, aContent);
OUString* pS = &sSharePath;
for( sal_uInt16 n = 0; n < 2; ++n, pS = &sUserPath )
for( OUString* pS : { &sSharePath, &sUserPath } )
{
INetURLObject aPath( *pS );
aPath.insertName("acor");
+26 -42
View File
@@ -1042,43 +1042,32 @@ uno::Sequence< beans::PropertyState > SAL_CALL SvxUnoTextRangeBase::getPropertyS
uno::Sequence< beans::PropertyState > SvxUnoTextRangeBase::_getPropertyStates(const uno::Sequence< OUString >& PropertyName, sal_Int32 nPara /* = -1 */)
{
const sal_Int32 nCount = PropertyName.getLength();
const OUString* pNames = PropertyName.getConstArray();
uno::Sequence< beans::PropertyState > aRet( nCount );
beans::PropertyState* pState = aRet.getArray();
uno::Sequence< beans::PropertyState > aRet( PropertyName.getLength() );
SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : nullptr;
if( pForwarder )
{
SfxItemSet* pSet = nullptr;
std::unique_ptr<SfxItemSet> pSet;
if( nPara != -1 )
{
pSet = new SfxItemSet( pForwarder->GetParaAttribs( nPara ) );
pSet.reset(new SfxItemSet( pForwarder->GetParaAttribs( nPara ) ));
}
else
{
ESelection aSel( GetSelection() );
CheckSelection( aSel, pForwarder );
pSet = new SfxItemSet( pForwarder->GetAttribs( aSel, EditEngineAttribs::OnlyHard ) );
pSet.reset(new SfxItemSet( pForwarder->GetAttribs( aSel, EditEngineAttribs::OnlyHard ) ));
}
bool bUnknownPropertyFound = false;
for( sal_Int32 nIdx = 0; nIdx < nCount; nIdx++ )
beans::PropertyState* pState = aRet.getArray();
for( const OUString& rName : PropertyName )
{
const SfxItemPropertySimpleEntry* pMap = mpPropSet->getPropertyMapEntry( *pNames++ );
if( nullptr == pMap )
const SfxItemPropertySimpleEntry* pMap = mpPropSet->getPropertyMapEntry( rName );
if( !_getOnePropertyStates(pSet.get(), pMap, *pState++) )
{
bUnknownPropertyFound = true;
break;
throw beans::UnknownPropertyException();
}
bUnknownPropertyFound = !_getOnePropertyStates(pSet, pMap, *pState++);
}
delete pSet;
if( bUnknownPropertyFound )
throw beans::UnknownPropertyException();
}
return aRet;
@@ -1302,22 +1291,20 @@ void SAL_CALL SvxUnoTextRangeBase::setAllPropertiesToDefault()
void SAL_CALL SvxUnoTextRangeBase::setPropertiesToDefault( const uno::Sequence< OUString >& aPropertyNames )
{
sal_Int32 nCount = aPropertyNames.getLength();
for( const OUString* pName = aPropertyNames.getConstArray(); nCount; pName++, nCount-- )
for( const OUString& rName : aPropertyNames )
{
setPropertyToDefault( *pName );
setPropertyToDefault( rName );
}
}
uno::Sequence< uno::Any > SAL_CALL SvxUnoTextRangeBase::getPropertyDefaults( const uno::Sequence< OUString >& aPropertyNames )
{
sal_Int32 nCount = aPropertyNames.getLength();
uno::Sequence< uno::Any > ret( nCount );
uno::Sequence< uno::Any > ret( aPropertyNames.getLength() );
uno::Any* pDefaults = ret.getArray();
for( const OUString* pName = aPropertyNames.getConstArray(); nCount; pName++, nCount--, pDefaults++ )
for( const OUString& rName : aPropertyNames )
{
*pDefaults = getPropertyDefault( *pName );
*pDefaults++ = getPropertyDefault( rName );
}
return ret;
@@ -2004,13 +1991,11 @@ void SvxPropertyValuesToItemSet(
SvxTextForwarder *pForwarder /*needed for WID_NUMLEVEL*/,
sal_Int32 nPara /*needed for WID_NUMLEVEL*/)
{
sal_Int32 nProps = rPropertyVaules.getLength();
const beans::PropertyValue *pProps = rPropertyVaules.getConstArray();
for (sal_Int32 i = 0; i < nProps; ++i)
for (const beans::PropertyValue& rProp : rPropertyVaules)
{
const SfxItemPropertySimpleEntry *pEntry = pPropSet->getPropertyMap().getByName( pProps[i].Name );
const SfxItemPropertySimpleEntry *pEntry = pPropSet->getPropertyMap().getByName( rProp.Name );
if (!pEntry)
throw beans::UnknownPropertyException( "Unknown property: " + pProps[i].Name, static_cast < cppu::OWeakObject * > ( nullptr ) );
throw beans::UnknownPropertyException( "Unknown property: " + rProp.Name, static_cast < cppu::OWeakObject * > ( nullptr ) );
// Note: there is no need to take special care of the properties
// TextField (EE_FEATURE_FIELD) and
// TextPortionType (WID_PORTIONTYPE)
@@ -2018,13 +2003,13 @@ void SvxPropertyValuesToItemSet(
if (pEntry->nFlags & beans::PropertyAttribute::READONLY)
// should be PropertyVetoException which is not yet defined for the new import API's functions
throw uno::RuntimeException("Property is read-only: " + pProps[i].Name, static_cast < cppu::OWeakObject * > ( nullptr ) );
//throw PropertyVetoException ("Property is read-only: " + pProps[i].Name, static_cast < cppu::OWeakObject * > ( 0 ) );
throw uno::RuntimeException("Property is read-only: " + rProp.Name, static_cast < cppu::OWeakObject * > ( nullptr ) );
//throw PropertyVetoException ("Property is read-only: " + rProp.Name, static_cast < cppu::OWeakObject * > ( 0 ) );
if (pEntry->nWID == WID_FONTDESC)
{
awt::FontDescriptor aDesc;
if (pProps[i].Value >>= aDesc)
if (rProp.Value >>= aDesc)
SvxUnoFontDescriptor::FillItemSet( aDesc, rItemSet );
}
else if (pEntry->nWID == WID_NUMLEVEL)
@@ -2032,7 +2017,7 @@ void SvxPropertyValuesToItemSet(
if (pForwarder)
{
sal_Int16 nLevel = -1;
pProps[i].Value >>= nLevel;
rProp.Value >>= nLevel;
// #101004# Call interface method instead of unsafe cast
if (!pForwarder->SetDepth( nPara, nLevel ))
@@ -2044,7 +2029,7 @@ void SvxPropertyValuesToItemSet(
if( pForwarder )
{
sal_Int16 nStartValue = -1;
if( !(pProps[i].Value >>= nStartValue) )
if( !(rProp.Value >>= nStartValue) )
throw lang::IllegalArgumentException();
pForwarder->SetNumberingStartValue( nPara, nStartValue );
@@ -2055,14 +2040,14 @@ void SvxPropertyValuesToItemSet(
if( pForwarder )
{
bool bParaIsNumberingRestart = false;
if( !(pProps[i].Value >>= bParaIsNumberingRestart) )
if( !(rProp.Value >>= bParaIsNumberingRestart) )
throw lang::IllegalArgumentException();
pForwarder->SetParaIsNumberingRestart( nPara, bParaIsNumberingRestart );
}
}
else
pPropSet->setPropertyValue( pProps[i].Name, pProps[i].Value, rItemSet );
pPropSet->setPropertyValue( rProp.Name, rProp.Value, rItemSet );
}
}
@@ -2144,9 +2129,8 @@ uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextBase::appendTextPortion(
SvxUnoTextRange* pRange = new SvxUnoTextRange( *this );
xRet = pRange;
pRange->SetSelection( aSel );
const beans::PropertyValue* pProps = rCharAndParaProps.getConstArray();
for( sal_Int32 nProp = 0; nProp < rCharAndParaProps.getLength(); ++nProp )
pRange->setPropertyValue( pProps[nProp].Name, pProps[nProp].Value );
for( const beans::PropertyValue& rProp : rCharAndParaProps )
pRange->setPropertyValue( rProp.Name, rProp.Value );
}
return xRet;
}
+20 -48
View File
@@ -329,12 +329,8 @@ MappingDialog_Impl::MappingDialog_Impl(vcl::Window* pParent, BibDataManager* pMa
DBG_ASSERT(xFields.is(), "MappingDialog_Impl::MappingDialog_Impl : gave me an invalid form !");
if(xFields.is())
{
Sequence< OUString > aNames = xFields->getElementNames();
sal_Int32 nFieldsCount = aNames.getLength();
const OUString* pNames = aNames.getConstArray();
for(sal_Int32 nField = 0; nField < nFieldsCount; nField++)
aListBoxes[0]->InsertEntry(pNames[nField]);
for(const OUString& rName : xFields->getElementNames())
aListBoxes[0]->InsertEntry(rName);
}
Link<ListBox&,void> aLnk = LINK(this, MappingDialog_Impl, ListBoxSelectHdl);
@@ -486,10 +482,8 @@ DBChangeDialog_Impl::DBChangeDialog_Impl(vcl::Window* pParent, BibDataManager* p
try
{
OUString sActiveSource = pDatMan->getActiveDataSource();
const Sequence< OUString >& rSources = aConfig.GetDataSourceNames();
const OUString* pSourceNames = rSources.getConstArray();
for (sal_Int32 i = 0; i < rSources.getLength(); ++i)
m_pSelectionLB->InsertEntry(pSourceNames[i]);
for (const OUString& rSourceName : aConfig.GetDataSourceNames())
m_pSelectionLB->InsertEntry(rSourceName);
m_pSelectionLB->SelectEntry(sActiveSource);
}
@@ -566,10 +560,9 @@ css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL
{
Sequence< Reference< XDispatch> > aReturn( aDescripts.getLength() );
Reference< XDispatch >* pReturn = aReturn.getArray();
const DispatchDescriptor* pDescripts = aDescripts.getConstArray();
for ( sal_Int32 i=0; i<aDescripts.getLength(); ++i, ++pReturn, ++pDescripts )
for ( const DispatchDescriptor& rDescript : aDescripts )
{
*pReturn = queryDispatch( pDescripts->FeatureURL, pDescripts->FrameName, pDescripts->SearchFlags );
*pReturn++ = queryDispatch( rDescript.FeatureURL, rDescript.FrameName, rDescript.SearchFlags );
}
return aReturn;
}
@@ -650,11 +643,8 @@ void BibDataManager::InsertFields(const Reference< XFormComponent > & _rxGrid)
// remove the old fields
if ( xColContainer->hasElements() )
{
Sequence< OUString > aNames = xColContainer->getElementNames();
const OUString* pNames = aNames.getConstArray();
const OUString* pNamesEnd = pNames + aNames.getLength();
for ( ; pNames != pNamesEnd; ++pNames )
xColContainer->removeByName( *pNames );
for ( OUString& rName : xColContainer->getElementNames() )
xColContainer->removeByName( rName );
}
Reference< XNameAccess > xFields = getColumns( m_xForm );
@@ -665,13 +655,9 @@ void BibDataManager::InsertFields(const Reference< XFormComponent > & _rxGrid)
Reference< XPropertySet > xField;
Sequence< OUString > aFields( xFields->getElementNames() );
const OUString* pFields = aFields.getConstArray();
const OUString* pFieldsEnd = pFields + aFields.getLength();
for ( ; pFields != pFieldsEnd; ++pFields )
for ( const OUString& rField : xFields->getElementNames() )
{
xFields->getByName( *pFields ) >>= xField;
xFields->getByName( rField ) >>= xField;
OUString sCurrentModelType;
const OUString sType("Type");
@@ -713,11 +699,11 @@ void BibDataManager::InsertFields(const Reference< XFormComponent > & _rxGrid)
Any aFormatted(bFormattedIsNumeric);
xCurrentCol->setPropertyValue("TreatAsNumber", aFormatted);
}
Any aColName = makeAny( *pFields );
Any aColName = makeAny( rField );
xCurrentCol->setPropertyValue(FM_PROP_CONTROLSOURCE, aColName);
xCurrentCol->setPropertyValue(FM_PROP_LABEL, aColName);
xColContainer->insertByName( *pFields, makeAny( xCurrentCol ) );
xColContainer->insertByName( rField, makeAny( xCurrentCol ) );
}
}
catch (const Exception&)
@@ -796,12 +782,11 @@ Reference< XForm > BibDataManager::createDatabaseForm(BibDBDescriptor& rDesc)
if(aTableNameSeq.getLength() > 0)
{
const OUString* pTableNames = aTableNameSeq.getConstArray();
if(!rDesc.sTableOrQuery.isEmpty())
aActiveDataTable = rDesc.sTableOrQuery;
else
{
rDesc.sTableOrQuery = aActiveDataTable = pTableNames[0];
rDesc.sTableOrQuery = aActiveDataTable = aTableNameSeq[0];
rDesc.nCommandType = CommandType::TABLE;
}
@@ -918,11 +903,10 @@ OUString BibDataManager::getQueryField()
OUString aFieldString = pConfig->getQueryField();
if(aFieldString.isEmpty())
{
Sequence< OUString > aSeq = getQueryFields();
const OUString* pFields = aSeq.getConstArray();
const Sequence< OUString > aSeq = getQueryFields();
if(aSeq.getLength()>0)
{
aFieldString=pFields[0];
aFieldString=aSeq[0];
}
}
return aFieldString;
@@ -986,8 +970,7 @@ void BibDataManager::setActiveDataSource(const OUString& rURL)
}
if(aTableNameSeq.getLength() > 0)
{
const OUString* pTableNames = aTableNameSeq.getConstArray();
aActiveDataTable = pTableNames[0];
aActiveDataTable = aTableNameSeq[0];
aVal <<= aActiveDataTable;
aPropertySet->setPropertyValue("Command", aVal);
aPropertySet->setPropertyValue("CommandType", makeAny(CommandType::TABLE));
@@ -1431,17 +1414,12 @@ void BibDataManager::SetMeAsUidListener()
if (!xFields.is())
return;
Sequence< OUString > aFields(xFields->getElementNames());
const OUString* pFields = aFields.getConstArray();
sal_Int32 nCount=aFields.getLength();
OUString theFieldName;
for( sal_Int32 i=0; i<nCount; i++ )
for( const OUString& rName : xFields->getElementNames() )
{
const OUString& rName = pFields[i];
if (rName.equalsIgnoreAsciiCase(STR_UID))
{
theFieldName=pFields[i];
theFieldName=rName;
break;
}
}
@@ -1472,18 +1450,12 @@ void BibDataManager::RemoveMeAsUidListener()
if (!xFields.is())
return;
Sequence< OUString > aFields(xFields->getElementNames());
const OUString* pFields = aFields.getConstArray();
sal_Int32 nCount=aFields.getLength();
OUString theFieldName;
for( sal_Int32 i=0; i<nCount; i++ )
for(const OUString& rName : xFields->getElementNames() )
{
const OUString& rName = pFields[i];
if (rName.equalsIgnoreAsciiCase(STR_UID))
{
theFieldName=pFields[i];
theFieldName=rName;
break;
}
}
+3 -8
View File
@@ -712,22 +712,17 @@ namespace pcr
continue;
// loop through all methods
Sequence< OUString > aMethods( comphelper::getEventMethodsForType( rListener ) );
const OUString* pMethods = aMethods.getConstArray();
sal_uInt32 methodCount = aMethods.getLength();
for (sal_uInt32 method = 0 ; method < methodCount ; ++method, ++pMethods )
for (const OUString& rMethod : comphelper::getEventMethodsForType( rListener ))
{
EventDescription aEvent;
if ( !lcl_getEventDescriptionForMethod( *pMethods, aEvent ) )
if ( !lcl_getEventDescriptionForMethod( rMethod, aEvent ) )
continue;
if ( !impl_filterMethod_nothrow( aEvent ) )
continue;
m_aEvents.emplace(
lcl_getEventPropertyName( sListenerClassName, *pMethods ), aEvent );
lcl_getEventPropertyName( sListenerClassName, rMethod ), aEvent );
}
}
@@ -272,21 +272,17 @@ namespace pcr
Sequence< OUString > aStrings;
aPropertyValue >>= aStrings;
const OUString* pStrings = aStrings.getConstArray();
sal_Int32 nCount = aStrings.getLength();
std::vector< OUString > aResolvedStrings;
aResolvedStrings.resize( nCount );
aResolvedStrings.reserve( aStrings.getLength() );
try
{
for ( sal_Int32 i = 0; i < nCount; ++i )
for ( const OUString& rIdStr : aStrings )
{
OUString aIdStr = pStrings[i];
OUString aPureIdStr = aIdStr.copy( 1 );
OUString aPureIdStr = rIdStr.copy( 1 );
if( xStringResourceResolver->hasEntryForId( aPureIdStr ) )
aResolvedStrings[i] = xStringResourceResolver->resolveString( aPureIdStr );
aResolvedStrings.push_back(xStringResourceResolver->resolveString( aPureIdStr ));
else
aResolvedStrings[i] = aIdStr;
aResolvedStrings.push_back(rIdStr);
}
}
catch( const resource::MissingResourceException & )
@@ -333,10 +329,8 @@ namespace pcr
// special handling, the value is a faked value we generated ourself in impl_executeFontDialog_nothrow
Sequence< NamedValue > aFontPropertyValues;
OSL_VERIFY( _rValue >>= aFontPropertyValues );
const NamedValue* fontPropertyValue = aFontPropertyValues.getConstArray();
const NamedValue* fontPropertyValueEnd = fontPropertyValue + aFontPropertyValues.getLength();
for ( ; fontPropertyValue != fontPropertyValueEnd; ++fontPropertyValue )
m_xComponent->setPropertyValue( fontPropertyValue->Name, fontPropertyValue->Value );
for ( const NamedValue& fontPropertyValue : aFontPropertyValues )
m_xComponent->setPropertyValue( fontPropertyValue.Name, fontPropertyValue.Value );
}
else
{
@@ -374,8 +368,7 @@ namespace pcr
Sequence< OUString > aNewStrings;
_rValue >>= aNewStrings;
const OUString* pNewStrings = aNewStrings.getConstArray();
sal_Int32 nNewCount = aNewStrings.getLength();
const sal_Int32 nNewCount = aNewStrings.getLength();
// Create new Ids
std::unique_ptr<OUString[]> pNewPureIds(new OUString[nNewCount]);
@@ -399,8 +392,6 @@ namespace pcr
// Move strings to new Ids for all locales
Sequence< Locale > aLocaleSeq = xStringResourceManager->getLocales();
const Locale* pLocale = aLocaleSeq.getConstArray();
sal_Int32 nLocaleCount = aLocaleSeq.getLength();
Sequence< OUString > aOldIdStrings;
aPropertyValue >>= aOldIdStrings;
try
@@ -418,20 +409,18 @@ namespace pcr
}
OUString aNewPureIdStr = pNewPureIds[i];
for ( sal_Int32 iLocale = 0; iLocale < nLocaleCount; ++iLocale )
for ( const Locale& rLocale : aLocaleSeq )
{
Locale aLocale = pLocale[iLocale];
OUString aResourceStr;
if( !aOldPureIdStr.isEmpty() )
{
if( xStringResourceManager->hasEntryForIdAndLocale( aOldPureIdStr, aLocale ) )
if( xStringResourceManager->hasEntryForIdAndLocale( aOldPureIdStr, rLocale ) )
{
aResourceStr = xStringResourceManager->
resolveStringForLocale( aOldPureIdStr, aLocale );
resolveStringForLocale( aOldPureIdStr, rLocale );
}
}
xStringResourceManager->setStringForLocale( aNewPureIdStr, aResourceStr, aLocale );
xStringResourceManager->setStringForLocale( aNewPureIdStr, aResourceStr, rLocale );
}
}
}
@@ -446,8 +435,8 @@ namespace pcr
OUString* pNewIdStrings = aNewIdStrings.getArray();
for ( i = 0; i < nNewCount; ++i )
{
OUString aPureIdStr = pNewPureIds[i];
OUString aStr = pNewStrings[i];
const OUString& aPureIdStr = pNewPureIds[i];
const OUString& aStr = aNewStrings[i];
xStringResourceManager->setString( aPureIdStr, aStr );
pNewIdStrings[i] = "&" + aPureIdStr;
@@ -455,18 +444,14 @@ namespace pcr
aValue <<= aNewIdStrings;
// Remove old ids from resource for all locales
const OUString* pOldIdStrings = aOldIdStrings.getConstArray();
sal_Int32 nOldIdCount = aOldIdStrings.getLength();
for( i = 0 ; i < nOldIdCount ; ++i )
for( const OUString& rIdStr : aOldIdStrings )
{
OUString aIdStr = pOldIdStrings[i];
OUString aPureIdStr = aIdStr.copy( 1 );
for ( sal_Int32 iLocale = 0; iLocale < nLocaleCount; ++iLocale )
OUString aPureIdStr = rIdStr.copy( 1 );
for ( const Locale& rLocale : aLocaleSeq )
{
Locale aLocale = pLocale[iLocale];
try
{
xStringResourceManager->removeIdForLocale( aPureIdStr, aLocale );
xStringResourceManager->removeIdForLocale( aPureIdStr, rLocale );
}
catch( const resource::MissingResourceException & )
{}
@@ -2316,11 +2301,8 @@ namespace pcr
sal_Int32 nObjectType = CommandType::COMMAND;
OSL_VERIFY( xFormSet->getPropertyValue( PROPERTY_COMMANDTYPE ) >>= nObjectType );
Sequence< OUString > aFields( ::dbtools::getFieldNamesByCommandDescriptor( m_xRowSetConnection, nObjectType, sObjectName ) );
const OUString* pFields = aFields.getConstArray();
for ( sal_Int32 i = 0; i < aFields.getLength(); ++i, ++pFields )
_rFieldNames.push_back( *pFields );
for ( const OUString& rField : ::dbtools::getFieldNamesByCommandDescriptor( m_xRowSetConnection, nObjectType, sObjectName ) )
_rFieldNames.push_back( rField );
}
}
catch (const Exception&)
@@ -2454,12 +2436,8 @@ namespace pcr
if ( !xTableNames.is() )
return;
Sequence< OUString> aTableNames = xTableNames->getElementNames();
sal_uInt32 nCount = aTableNames.getLength();
const OUString* pTableNames = aTableNames.getConstArray();
for ( sal_uInt32 i=0; i<nCount; ++i ,++pTableNames )
_out_rNames.push_back( *pTableNames );
for ( const OUString& rTableName : xTableNames->getElementNames() )
_out_rNames.push_back( rTableName );
}
@@ -2483,12 +2461,9 @@ namespace pcr
if ( !_xQueryNames.is() )
return;
Sequence< OUString> aQueryNames = _xQueryNames->getElementNames();
sal_uInt32 nCount = aQueryNames.getLength();
const OUString* pQueryNames = aQueryNames.getConstArray();
bool bAdd = !_sName.isEmpty();
for ( sal_uInt32 i=0; i<nCount; i++, ++pQueryNames )
for ( const OUString& rQueryName : _xQueryNames->getElementNames() )
{
OUStringBuffer sTemp;
if ( bAdd )
@@ -2496,8 +2471,8 @@ namespace pcr
sTemp.append(_sName);
sTemp.append("/");
}
sTemp.append(*pQueryNames);
Reference< XNameAccess > xSubQueries(_xQueryNames->getByName(*pQueryNames),UNO_QUERY);
sTemp.append(rQueryName);
Reference< XNameAccess > xSubQueries(_xQueryNames->getByName(rQueryName),UNO_QUERY);
if ( xSubQueries.is() )
impl_fillQueryNames_throw(xSubQueries,_out_rNames,sTemp.makeStringAndClear());
else
@@ -2696,8 +2671,8 @@ namespace pcr
{
const sal_uInt32* pDeletedKeys = pInfoItem->GetDelArray();
for (sal_uInt32 i=0; i< pInfoItem->GetDelCount(); ++i, ++pDeletedKeys)
pFormatter->DeleteEntry(*pDeletedKeys);
for (sal_uInt32 i=0; i< pInfoItem->GetDelCount(); ++i)
pFormatter->DeleteEntry(pDeletedKeys[i]);
}
pItem = nullptr;
+5 -9
View File
@@ -177,15 +177,12 @@ namespace pcr
try
{
Sequence< Reference< XControlModel > > aControlModels( m_xTempModel->getControlModels() );
const Reference< XControlModel >* pControlModels = aControlModels.getConstArray();
OUString aName;
Image aImage;
for ( sal_Int32 i=0; i < aControlModels.getLength(); ++i, ++pControlModels )
for ( auto const& rControlModel : m_xTempModel->getControlModels() )
{
Reference< XPropertySet > xControl( *pControlModels, UNO_QUERY );
Reference< XPropertySet > xControl( rControlModel, UNO_QUERY );
Reference< XPropertySetInfo > xPI;
if ( xControl.is() )
xPI = xControl->getPropertySetInfo();
@@ -261,18 +258,17 @@ namespace pcr
Sequence< Reference< XControlModel > > aSortedControlModelSeq( nEntryCount );
Sequence< Reference< XControlModel > > aControlModels( m_xTempModel->getControlModels());
Reference< XControlModel > * pSortedControlModels = aSortedControlModelSeq.getArray();
const Reference< XControlModel > * pControlModels = aControlModels.getConstArray();
for (sal_uLong i=0; i < nEntryCount; i++)
{
SvTreeListEntry* pEntry = m_pLB_Controls->GetEntry(i);
for( sal_Int32 j=0; j<aControlModels.getLength(); j++ )
for( auto const& rControlModel : aControlModels )
{
Reference< XPropertySet > xSet(pControlModels[j], UNO_QUERY);
Reference< XPropertySet > xSet(rControlModel, UNO_QUERY);
if (xSet.get() == static_cast<XPropertySet*>(pEntry->GetUserData()))
{
pSortedControlModels[i] = pControlModels[j];
pSortedControlModels[i] = rControlModel;
break;
}
}
@@ -307,11 +307,10 @@ sal_Int16 SAL_CALL XMLFilterDialogComponent::execute( )
void SAL_CALL XMLFilterDialogComponent::initialize( const Sequence< Any >& aArguments )
{
const Any* pArguments = aArguments.getConstArray();
for(sal_Int32 i=0; i<aArguments.getLength(); ++i, ++pArguments)
for(const Any& rArgument : aArguments)
{
PropertyValue aProperty;
if(*pArguments >>= aProperty)
if(rArgument >>= aProperty)
{
if( aProperty.Name == "ParentWindow" )
{
@@ -326,35 +326,36 @@ void XMLFilterTestDialog::onExportBrowse()
continue;
OUString aInterfaceName;
PropertyValue* pValues = aValues.getArray();
OUString aType, aService;
sal_Int32 nFlags( 0 );
int nFound = 0;
for( sal_Int32 nValue = 0; (nValue < aValues.getLength()) && (nFound != 15); nValue++, pValues++ )
for( const PropertyValue& rValue : aValues )
{
if ( pValues->Name == "Type" )
if ( rValue.Name == "Type" )
{
pValues->Value >>= aType;
rValue.Value >>= aType;
nFound |= 1;
}
else if ( pValues->Name == "DocumentService" )
else if ( rValue.Name == "DocumentService" )
{
pValues->Value >>= aService;
rValue.Value >>= aService;
nFound |= 2;
}
else if ( pValues->Name == "Flags" )
else if ( rValue.Name == "Flags" )
{
pValues->Value >>= nFlags;
rValue.Value >>= nFlags;
nFound |= 4;
}
if ( pValues->Name == "UIName" )
else if ( rValue.Name == "UIName" )
{
pValues->Value >>= aInterfaceName;
rValue.Value >>= aInterfaceName;
nFound |= 8;
}
if (nFound == 15)
break;
}
if( (nFound == 15) && (!aType.isEmpty() && aService == m_pFilterInfo->maDocumentService) )
+9 -16
View File
@@ -417,10 +417,8 @@ void SAL_CALL OComboBoxModel::read(const Reference<css::io::XObjectInputStream>&
m_aListSource.clear();
css::uno::Sequence<OUString> aListSource;
_rxInStream >> aListSource;
const OUString* pToken = aListSource.getConstArray();
sal_Int32 nLen = aListSource.getLength();
for (sal_Int32 i = 0; i < nLen; ++i, ++pToken)
m_aListSource += *pToken;
for (const OUString& rToken : aListSource)
m_aListSource += rToken;
}
sal_Int16 nListSourceType;
@@ -647,12 +645,8 @@ void OComboBoxModel::loadData( bool _bForce )
Reference<XNameAccess> xFieldNames = getTableFields(xConnection, m_aListSource);
if (xFieldNames.is())
{
css::uno::Sequence<OUString> seqNames = xFieldNames->getElementNames();
sal_Int32 nFieldsCount = seqNames.getLength();
const OUString* pustrNames = seqNames.getConstArray();
for (sal_Int32 k=0; k<nFieldsCount; ++k)
aStringList.push_back(pustrNames[k]);
for (const OUString& rustrNames : xFieldNames->getElementNames())
aStringList.push_back(rustrNames);
}
}
break;
@@ -770,20 +764,19 @@ bool OComboBoxModel::commitControlValueToDbColumn( bool _bPostReset )
css::uno::Sequence<OUString> aStringItemList;
if ( getPropertyValue( PROPERTY_STRINGITEMLIST ) >>= aStringItemList )
{
const OUString* pStringItems = aStringItemList.getConstArray();
sal_Int32 i;
for (i=0; i<aStringItemList.getLength(); ++i, ++pStringItems)
bool bFound = false;
for (const OUString& rStringItem : aStringItemList)
{
if ( *pStringItems == sNewValue )
if ( (bFound = rStringItem == sNewValue) )
break;
}
// not found -> add
if (i >= aStringItemList.getLength())
if (!bFound)
{
sal_Int32 nOldLen = aStringItemList.getLength();
aStringItemList.realloc( nOldLen + 1 );
aStringItemList.getArray()[ nOldLen ] = sNewValue;
aStringItemList[ nOldLen ] = sNewValue;
setFastPropertyValue( PROPERTY_ID_STRINGITEMLIST, makeAny( aStringItemList ) );
setFastPropertyValue( PROPERTY_ID_TYPEDITEMLIST, makeAny( css::uno::Sequence<css::uno::Any>() ) );
+9 -16
View File
@@ -645,16 +645,12 @@ void ODatabaseForm::AppendComponent(HtmlSuccessfulObjList& rList, const Referenc
Reference<XControlContainer> xControlContainer(rxSubmitButton->getContext(), UNO_QUERY);
if( !xControlContainer.is() ) break;
Sequence<Reference<XControl> > aControlSeq = xControlContainer->getControls();
Reference<XControl> xControl;
// Find the right control
sal_Int32 i;
for( i=0; i<aControlSeq.getLength(); i++ )
bool bFound = false;
for( auto const& xControl : xControlContainer->getControls() )
{
xControl = aControlSeq.getConstArray()[i];
Reference<XPropertySet> xModel(xControl->getModel(), UNO_QUERY);
if (xModel == xComponentSet)
if ((bFound = xModel == xComponentSet))
{
Reference<XTextComponent> xTextComponent(xControl, UNO_QUERY);
if( xTextComponent.is() )
@@ -663,7 +659,7 @@ void ODatabaseForm::AppendComponent(HtmlSuccessfulObjList& rList, const Referenc
}
}
// Couldn't find control or it does not exist (edit in the grid)
if (i == aControlSeq.getLength())
if (!bFound)
xComponentSet->getPropertyValue( PROPERTY_TEXT ) >>= sText;
}
else
@@ -2410,17 +2406,15 @@ void SAL_CALL ODatabaseForm::setControlModels(const Sequence<Reference<XControlM
::osl::ResettableMutexGuard aGuard(m_aMutex);
// Set TabIndex in the order of the sequence
const Reference<XControlModel>* pControls = rControls.getConstArray();
sal_Int32 nCount = getCount();
sal_Int32 nNewCount = rControls.getLength();
// HiddenControls and forms are not listed
if (nNewCount <= nCount)
if (rControls.getLength() <= nCount)
{
sal_Int16 nTabIndex = 1;
for (sal_Int32 i=0; i < nNewCount; ++i, ++pControls)
for (auto const& rControl : rControls)
{
Reference<XFormComponent> xComp(*pControls, UNO_QUERY);
Reference<XFormComponent> xComp(rControl, UNO_QUERY);
if (xComp.is())
{
// Find component in the list
@@ -2455,13 +2449,12 @@ void SAL_CALL ODatabaseForm::setGroup( const Sequence<Reference<XControlModel> >
// The controls are grouped by adjusting their names to the name of the
// first control of the sequence
const Reference<XControlModel>* pControls = _rGroup.getConstArray();
Reference< XPropertySet > xSet;
OUString sGroupName( Name );
for( sal_Int32 i=0; i<_rGroup.getLength(); ++i, ++pControls )
for( auto const& rControl : _rGroup )
{
xSet.set(*pControls, css::uno::UNO_QUERY);
xSet.set(rControl, css::uno::UNO_QUERY);
if ( !xSet.is() )
{
// can't throw an exception other than a RuntimeException (which would not be appropriate),
+3 -5
View File
@@ -172,14 +172,12 @@ void OGroup::RemoveComponent( const Reference<XPropertySet>& rxElement )
Sequence< Reference<XControlModel> > OGroup::GetControlModels() const
{
sal_Int32 nLen = m_aCompArray.size();
Sequence<Reference<XControlModel> > aControlModelSeq( nLen );
Sequence<Reference<XControlModel> > aControlModelSeq( m_aCompArray.size() );
Reference<XControlModel>* pModels = aControlModelSeq.getArray();
OGroupCompArr::const_iterator aGroupComps = m_aCompArray.begin();
for (sal_Int32 i = 0; i < nLen; ++i, ++pModels, ++aGroupComps)
for (auto const& rGroupComp : m_aCompArray)
{
*pModels = aGroupComps->GetControlModel();
*pModels++ = rGroupComp.GetControlModel();
}
return aControlModelSeq;
}
+7 -11
View File
@@ -81,11 +81,9 @@ namespace
bool
lcl_hasVbaEvents( const Sequence< ScriptEventDescriptor >& sEvents )
{
const ScriptEventDescriptor* pDesc = sEvents.getConstArray();
const ScriptEventDescriptor* pEnd = ( pDesc + sEvents.getLength() );
for ( ; pDesc != pEnd; ++pDesc )
for ( auto const& rDesc : sEvents )
{
if ( pDesc->ScriptType == "VBAInterop" )
if ( rDesc.ScriptType == "VBAInterop" )
return true;
}
return false;
@@ -95,19 +93,17 @@ Sequence< ScriptEventDescriptor >
lcl_stripVbaEvents( const Sequence< ScriptEventDescriptor >& sEvents )
{
Sequence< ScriptEventDescriptor > sStripped( sEvents.getLength() );
ScriptEventDescriptor* pStripped = sStripped.getArray();
const ScriptEventDescriptor* pDesc = sEvents.getConstArray();
const ScriptEventDescriptor* pEnd = ( pDesc + sEvents.getLength() );
sal_Int32 nCopied = 0;
for ( ; pDesc != pEnd; ++pDesc )
for ( auto const& rDesc : sEvents )
{
if ( pDesc->ScriptType != "VBAInterop" )
if ( rDesc.ScriptType != "VBAInterop" )
{
sStripped[ nCopied++ ] = *pDesc;
pStripped[ nCopied++ ] = rDesc;
}
}
if ( nCopied )
sStripped.realloc( nCopied );
sStripped.realloc( nCopied );
return sStripped;
}