summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKohei Yoshida <kyoshida@novell.com>2011-03-04 11:41:40 -0500
committerKohei Yoshida <kyoshida@novell.com>2011-03-05 15:21:07 -0500
commitac211cd143086753c82d2b28ff2de39bae902c26 (patch)
treecbf8b39e80c1577693cd2434ba5f8d1dfaae17d0
parentef5b262fd51c69781c36dc449ebb1849c7c05b9f (diff)
More work on ScRangeName re-work...
-rw-r--r--sc/inc/rangenam.hxx10
-rw-r--r--sc/source/core/tool/rangenam.cxx22
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<rtl::OUString, ScRangeData> MapType;
- MapType maData;
+ typedef ::boost::ptr_map<rtl::OUString, ScRangeData> 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<DataType::iterator, bool> 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;