From ac211cd143086753c82d2b28ff2de39bae902c26 Mon Sep 17 00:00:00 2001 From: Kohei Yoshida Date: Fri, 4 Mar 2011 11:41:40 -0500 Subject: More work on ScRangeName re-work... --- sc/inc/rangenam.hxx | 10 ++++++---- sc/source/core/tool/rangenam.cxx | 22 +++++++++++++++++----- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/sc/inc/rangenam.hxx b/sc/inc/rangenam.hxx index a6fa164fe724..b7e183cc2c72 100644 --- a/sc/inc/rangenam.hxx +++ b/sc/inc/rangenam.hxx @@ -182,8 +182,9 @@ extern "C" int SAL_CALL ScRangeData_QsortNameCompare( const void*, const void* ) class ScRangeName { private: - typedef ::boost::ptr_map MapType; - MapType maData; + typedef ::boost::ptr_map DataType; + DataType maData; + ScDocument* mpDoc; sal_uInt16 mnSharedMaxIndex; public: @@ -199,14 +200,15 @@ public: void UpdateTabRef(SCTAB nTable, sal_uInt16 nFlag, SCTAB nNewTable = 0); void UpdateTranspose(const ScRange& rSource, const ScAddress& rDest); void UpdateGrow(const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY); - SC_DLLPUBLIC ScRangeData* FindIndex(sal_uInt16 nIndex); + SC_DLLPUBLIC ScRangeData* FindIndex(size_t i); sal_uInt16 GetSharedMaxIndex(); void SetSharedMaxIndex(sal_uInt16 nInd); - sal_uInt16 GetEntryIndex(); SC_DLLPUBLIC size_t GetCount() const; + SC_DLLPUBLIC size_t size() const; SC_DLLPUBLIC bool Insert(ScRangeData* p); void AtFree(size_t i); void FreeAll(); + void clear(); SC_DLLPUBLIC ScRangeData* At(size_t i); bool operator== (const ScRangeName& r) const; }; diff --git a/sc/source/core/tool/rangenam.cxx b/sc/source/core/tool/rangenam.cxx index c82f7b9a0ff8..eac22ececbc7 100644 --- a/sc/source/core/tool/rangenam.cxx +++ b/sc/source/core/tool/rangenam.cxx @@ -49,6 +49,8 @@ #include "document.hxx" using namespace formula; +using ::std::pair; +using ::rtl::OUString; //======================================================================== // ScRangeData @@ -699,7 +701,7 @@ void ScRangeName::UpdateGrow(const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY) { } -ScRangeData* ScRangeName::FindIndex(sal_uInt16 nIndex) +ScRangeData* ScRangeName::FindIndex(size_t i) { return NULL; } @@ -714,19 +716,24 @@ void ScRangeName::SetSharedMaxIndex(sal_uInt16 nInd) mnSharedMaxIndex = nInd; } -sal_uInt16 ScRangeName::GetEntryIndex() +size_t ScRangeName::GetCount() const { - return 0; + return maData.size(); } -size_t ScRangeName::GetCount() const +size_t ScRangeName::size() const { return maData.size(); } bool ScRangeName::Insert(ScRangeData* p) { - return true; + if (!p) + return false; + + OUString aName = p->GetName(); + pair r = maData.insert(aName, p); + return r.second; } void ScRangeName::AtFree(size_t i) @@ -737,6 +744,11 @@ void ScRangeName::FreeAll() { } +void ScRangeName::clear() +{ + maData.clear(); +} + ScRangeData* ScRangeName::At(size_t i) { return NULL; -- cgit