diff options
author | Kohei Yoshida <kyoshida@novell.com> | 2011-03-05 12:52:56 -0500 |
---|---|---|
committer | Kohei Yoshida <kyoshida@novell.com> | 2011-03-05 15:21:09 -0500 |
commit | fe2ee40d95cddd52bf90d1f6b2023171e2caea24 (patch) | |
tree | 4046f5c488288c08cc1e5b81f73a69aab3589136 | |
parent | be1b2028a0d2daa4400a2fd68d35be9c74f06e31 (diff) |
Extracted duplicated code blocks into a separate method.
-rw-r--r-- | sc/source/core/data/document.cxx | 55 |
1 files 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<USHORT>& 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<USHORT> 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) : |