summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKohei Yoshida <kyoshida@novell.com>2011-03-05 12:52:56 -0500
committerKohei Yoshida <kyoshida@novell.com>2011-03-05 15:21:09 -0500
commitfe2ee40d95cddd52bf90d1f6b2023171e2caea24 (patch)
tree4046f5c488288c08cc1e5b81f73a69aab3589136
parentbe1b2028a0d2daa4400a2fd68d35be9c74f06e31 (diff)
Extracted duplicated code blocks into a separate method.
-rw-r--r--sc/source/core/data/document.cxx55
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) :