Kaydet (Commit) 3b6fc983 authored tarafından Markus Mohrhard's avatar Markus Mohrhard

show local range names in navigator

üst e1de59eb
......@@ -653,6 +653,18 @@ void ScContentTree::GetTableNames()
}
}
namespace {
rtl::OUString createLocalRangeName(const rtl::OUString& rName, const rtl::OUString& rTableName)
{
rtl::OUStringBuffer aString (rName);
aString.append(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" (")));
aString.append(rTableName);
aString.append(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")")));
return aString.makeStringAndClear();
}
}
void ScContentTree::GetAreaNames()
{
if ( nRootType && nRootType != SC_CONTENT_RANGENAME ) // ausgeblendet ?
......@@ -662,30 +674,39 @@ void ScContentTree::GetAreaNames()
if (!pDoc)
return;
ScRange aDummy;
std::set<rtl::OUString> aSet;
ScRangeName* pRangeNames = pDoc->GetRangeName();
if (!pRangeNames->empty())
{
ScRange aDummy;
ScRangeName::const_iterator itrBeg = pRangeNames->begin(), itrEnd = pRangeNames->end();
std::vector<const ScRangeData*> aSortArray;
for (ScRangeName::const_iterator itr = itrBeg; itr != itrEnd; ++itr)
{
if (itr->IsValidReference(aDummy))
aSortArray.push_back(&(*itr));
aSet.insert(itr->GetName());
}
}
for (SCTAB i = 0; i < pDoc->GetTableCount(); ++i)
{
ScRangeName* pLocalRangeName = pDoc->GetRangeName(i);
if (pLocalRangeName && !pLocalRangeName->empty())
{
rtl::OUString aTableName;
pDoc->GetName(i, aTableName);
for (ScRangeName::const_iterator itr = pLocalRangeName->begin(); itr != pLocalRangeName->end(); ++itr)
{
if (itr->IsValidReference(aDummy))
aSet.insert(createLocalRangeName(itr->GetName(), aTableName));
}
}
}
if (!aSortArray.empty())
if (!aSet.empty())
{
for (std::set<rtl::OUString>::iterator itr = aSet.begin();
itr != aSet.end(); ++itr)
{
#ifndef ICC
size_t n = aSortArray.size();
qsort( (void*)&aSortArray[0], n, sizeof(ScRangeData*),
&ScRangeData_QsortNameCompare );
#else
qsort( (void*)&aSortArray[0], n, sizeof(ScRangeData*),
ICCQsortNameCompare );
#endif
for (size_t i = 0; i < n; ++i)
InsertContent(SC_CONTENT_RANGENAME, aSortArray[i]->GetName());
InsertContent(SC_CONTENT_RANGENAME, *itr);
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment