diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2023-02-10 13:25:53 +0300 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2023-02-21 13:08:42 +0000 |
commit | b14f914901e50a2dd15cbce7832d72cb5a6a9b9f (patch) | |
tree | 3a73e6ca585401283bef69a956bb7d2a4302e4e5 | |
parent | f95a97eccc1cf0e5bdfe1189f9953b9379694b37 (diff) |
tdf#153514: try to find exact match, even when searching case-insensitively
Change-Id: Ib3bec382ef80a9078ffde8612c395cb0154fd476
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146747
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
(cherry picked from commit 2a984c77ccb1aa77d9bbd02218d4dc76aaff4a9e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146771
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
-rw-r--r-- | sc/source/core/data/stlpool.cxx | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sc/source/core/data/stlpool.cxx b/sc/source/core/data/stlpool.cxx index 3939978633f3..4e2c75ac1593 100644 --- a/sc/source/core/data/stlpool.cxx +++ b/sc/source/core/data/stlpool.cxx @@ -411,14 +411,20 @@ ScStyleSheet* ScStyleSheetPool::FindCaseIns( const OUString& rName, SfxStyleFami CaseInsensitiveNamePredicate aPredicate(rName, eFam); std::vector<sal_Int32> aFoundPositions = GetIndexedStyleSheets().FindPositionsByPredicate(aPredicate); + ScStyleSheet* first = nullptr; // first case insensitive match found for (const auto& rPos : aFoundPositions) { SfxStyleSheetBase *pFound = GetStyleSheetByPositionInIndex(rPos); // we do not know what kind of sheets we have. if (pFound->isScStyleSheet()) - return static_cast<ScStyleSheet*>(pFound); + { + if (pFound->GetName() == rName) // exact case sensitive match + return static_cast<ScStyleSheet*>(pFound); + if (!first) + first = static_cast<ScStyleSheet*>(pFound); + } } - return nullptr; + return first; } void ScStyleSheetPool::setAllParaStandard() |