sc/source/ui/unoobj/chart2uno.cxx | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-)
New commits: commit 64642dcacfc66e45977919682a026d21ca8f725b Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Fri Dec 18 23:03:17 2015 +0100 std::pair<OUString, OUString> is the more natural key type Change-Id: I21c22d5d987d4b84b775b1c82d186f561971fb30 Reviewed-on: https://gerrit.libreoffice.org/20809 Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrh...@googlemail.com> diff --git a/sc/source/ui/unoobj/chart2uno.cxx b/sc/source/ui/unoobj/chart2uno.cxx index 51a159e..695ab81 100644 --- a/sc/source/ui/unoobj/chart2uno.cxx +++ b/sc/source/ui/unoobj/chart2uno.cxx @@ -1762,15 +1762,14 @@ bool RangeAnalyzer::inSameSingleColumn( RangeAnalyzer& rOther ) return false; } -OUString constructKey(const uno::Reference< chart2::data::XLabeledDataSequence>& xNew) +std::pair<OUString, OUString> constructKey(const uno::Reference< chart2::data::XLabeledDataSequence>& xNew) { - OUString key; + std::pair<OUString, OUString> aKey; if( xNew->getLabel().is() ) - key += xNew->getLabel()->getSourceRangeRepresentation(); - key += "####"; + aKey.first = xNew->getLabel()->getSourceRangeRepresentation(); if( xNew->getValues().is() ) - key += xNew->getValues()->getSourceRangeRepresentation(); - return key; + aKey.second = xNew->getValues()->getSourceRangeRepresentation(); + return aKey; } @@ -2000,27 +1999,31 @@ uno::Sequence< beans::PropertyValue > SAL_CALL ScChart2DataProvider::detectArgum const uno::Sequence< uno::Reference< chart2::data::XLabeledDataSequence> >& aNewSequences = xDataSource->getDataSequences(); - std::map<OUString,sal_Int32> aOldEntryToIndex; + std::map<std::pair<OUString, OUString>,sal_Int32> aOldEntryToIndex; for( sal_Int32 nIndex = 0; nIndex < aOldSequences.getLength(); nIndex++ ) { const uno::Reference< chart2::data::XLabeledDataSequence>& xOld( aOldSequences[nIndex] ); if( xOld.is() ) { - OUString key = constructKey(xOld); - aOldEntryToIndex[key] = nIndex; + std::pair<OUString, OUString> aKey = constructKey(xOld); + aOldEntryToIndex[aKey] = nIndex; } } + for( sal_Int32 nNewIndex = 0; nNewIndex < aNewSequences.getLength(); nNewIndex++ ) { const uno::Reference< chart2::data::XLabeledDataSequence>& xNew( aNewSequences[nNewIndex] ); if( !xNew.is() ) continue; - OUString key = constructKey(xNew); - if (aOldEntryToIndex.find(key) == aOldEntryToIndex.end()) + + std::pair<OUString, OUString> aKey = constructKey(xNew); + if (aOldEntryToIndex.find(aKey) == aOldEntryToIndex.end()) continue; - sal_Int32 nOldIndex = aOldEntryToIndex[key]; + + sal_Int32 nOldIndex = aOldEntryToIndex[aKey]; if( nOldIndex != nNewIndex ) bDifferentIndexes = true; + aSequenceMappingVector.push_back(nOldIndex); } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits