diff options
Diffstat (limited to 'sc/source/core/data/documen3.cxx')
-rw-r--r-- | sc/source/core/data/documen3.cxx | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx index 783bac66f2fd..3a588b81fab7 100644 --- a/sc/source/core/data/documen3.cxx +++ b/sc/source/core/data/documen3.cxx @@ -1578,6 +1578,27 @@ void ScDocument::GetFilterEntriesArea( } /** + * Get entries for computing auto-complete entries in input handler (no numbers/formulas) + */ +void ScDocument::GetStringBlockEntries( + SCCOL nCursorCol, SCROW nCursorRow, SCTAB nTab, + std::vector<ScTypedStrData>& rStrings) const +{ + if (!ValidTab(nTab) || nTab >= static_cast<SCTAB>(maTabs.size())) + return; + + if (!maTabs[nTab]) + return; + + std::set<ScTypedStrData> aStrings; + if (maTabs[nTab]->GetStringBlockEntries(nCursorCol, nCursorRow, aStrings)) + { + rStrings.insert(rStrings.end(), aStrings.begin(), aStrings.end()); + sortAndRemoveDuplicates(rStrings, true/*bCaseSens*/); + } +} + +/** * Entries for selection list listbox (no numbers/formulas) */ void ScDocument::GetDataEntries( @@ -1587,8 +1608,7 @@ void ScDocument::GetDataEntries( if( !bLimit ) { /* Try to generate the list from list validation. This part is skipped, - if bLimit==true, because in that case this function is called to get - cell values for auto completion on input. */ + if bLimit==true. */ sal_uInt32 nValidation = GetAttr( nCol, nRow, nTab, ATTR_VALIDDATA )->GetValue(); if( nValidation ) { |