From fe2ee40d95cddd52bf90d1f6b2023171e2caea24 Mon Sep 17 00:00:00 2001 From: Kohei Yoshida Date: Sat, 5 Mar 2011 12:52:56 -0500 Subject: Extracted duplicated code blocks into a separate method. --- sc/source/core/data/document.cxx | 55 ++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index b4cef992d2a8..5aa83c54e545 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -1762,6 +1762,29 @@ void ScDocument::TransposeClip( ScDocument* pTransClip, USHORT nFlags, BOOL bAsL GetClipParam().mbCutMode = false; } +namespace { + +void copyUsedNamesToClip(ScRangeName* pClipRangeName, ScRangeName* pRangeName, const std::set& rUsedNames) +{ + pClipRangeName->clear(); + ScRangeName::const_iterator itr = pRangeName->begin(), itrEnd = pRangeName->end(); + for (; itr != itrEnd; ++itr) //! DB-Bereiche Pivot-Bereiche auch !!! + { + USHORT nIndex = itr->GetIndex(); + bool bInUse = (rUsedNames.count(nIndex) > 0); + if (!bInUse) + continue; + + ScRangeData* pData = new ScRangeData(*itr); + if (!pClipRangeName->insert(pData)) + delete pData; + else + pData->SetIndex(nIndex); + } +} + +} + void ScDocument::CopyRangeNamesToClip(ScDocument* pClipDoc, const ScRange& rClipRange, const ScMarkData* pMarks, bool bAllTabs) { std::set aUsedNames; // indexes of named ranges that are used in the copied cells @@ -1772,21 +1795,7 @@ void ScDocument::CopyRangeNamesToClip(ScDocument* pClipDoc, const ScRange& rClip rClipRange.aStart.Col(), rClipRange.aStart.Row(), rClipRange.aEnd.Col(), rClipRange.aEnd.Row(), aUsedNames); - pClipDoc->pRangeName->clear(); - ScRangeName::const_iterator itr = pRangeName->begin(), itrEnd = pRangeName->end(); - for (; itr != itrEnd; ++itr) //! DB-Bereiche Pivot-Bereiche auch !!! - { - USHORT nIndex = itr->GetIndex(); - bool bInUse = (aUsedNames.count(nIndex) > 0); - if (bInUse) - { - ScRangeData* pData = new ScRangeData(*itr); - if (!pClipDoc->pRangeName->insert(pData)) - delete pData; - else - pData->SetIndex(nIndex); - } - } + copyUsedNamesToClip(pClipDoc->pRangeName, pRangeName, aUsedNames); } void ScDocument::CopyRangeNamesToClip(ScDocument* pClipDoc, const ScRange& rClipRange, SCTAB nTab) @@ -1800,21 +1809,7 @@ void ScDocument::CopyRangeNamesToClip(ScDocument* pClipDoc, const ScRange& rClip rClipRange.aEnd.Col(), rClipRange.aEnd.Row(), aUsedNames ); } - pClipDoc->pRangeName->clear(); - ScRangeName::const_iterator itr = pRangeName->begin(), itrEnd = pRangeName->end(); - for (; itr != itrEnd; ++itr) - { - USHORT nIndex = itr->GetIndex(); - bool bInUse = (aUsedNames.count(nIndex) > 0); - if (bInUse) - { - ScRangeData* pData = new ScRangeData(*itr); - if (!pClipDoc->pRangeName->insert(pData)) - delete pData; - else - pData->SetIndex(nIndex); - } - } + copyUsedNamesToClip(pClipDoc->pRangeName, pRangeName, aUsedNames); } ScDocument::NumFmtMergeHandler::NumFmtMergeHandler(ScDocument* pDoc, ScDocument* pSrcDoc) : -- cgit