sc/source/ui/view/gridwin.cxx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
New commits: commit c9ab5237afa7bb106e97a9afa036df723f0238e8 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Tue Feb 14 21:25:45 2023 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Wed Feb 15 08:48:56 2023 +0000 Resolves: tdf#153622 crash in SvListView::SelectListEntry probably since: commit 4c8b1fa44d4f49510d3910981e649dcb08bceb36 Date: Fri Oct 28 13:15:00 2022 -0400 tdf#151794 sc validate: honor NO_BLANK in Cell range dropdown Change-Id: Id6752126c0c8df8d813bc862e5533d05bba1b622 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147027 Tested-by: Jenkins Reviewed-by: Justin Luth <jl...@mail.com> Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index ade27511ab69..41db66bc82bd 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -1432,6 +1432,14 @@ void ScGridWindow::LaunchDataSelectMenu(const SCCOL nCol, const SCROW nRow) std::vector<ScTypedStrData> aStrings; // case sensitive // Fill List rDoc.GetDataEntries(nCol, nRow, nTab, aStrings, true /* bValidation */); + + // IsIgnoreBlank allows blank values. Don't add empty string unless "Allow Empty Cells" + if (pData && !pData->IsIgnoreBlank()) + { + auto lambda = [](const ScTypedStrData& rStr) { return rStr.GetString().isEmpty(); }; + aStrings.erase(std::remove_if(aStrings.begin(), aStrings.end(), lambda), aStrings.end()); + } + if (aStrings.empty()) bEmpty = true; @@ -1447,10 +1455,8 @@ void ScGridWindow::LaunchDataSelectMenu(const SCCOL nCol, const SCROW nRow) for (const auto& rString : aStrings) { - // IsIgnoreBlank allows blank values. Don't add empty string unless "Allow Empty Cells" const OUString& rFilterString = rString.GetString(); - if (!rFilterString.isEmpty() || !pData || pData->IsIgnoreBlank()) - rFilterBox.append_text(rFilterString); + rFilterBox.append_text(rFilterString); } if (bWait)