summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2023-02-10 13:25:53 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2023-02-21 13:09:08 +0000
commita8d01c66b823c3556081f8678059911f1264547f (patch)
tree8f30912cae7b0c28b4b0c03153cad3e3ca13fa49
parent2209762dcdae0424d8e8b83e0972246c8654d3d5 (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/+/146769 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
-rw-r--r--sc/source/core/data/stlpool.cxx10
1 files changed, 8 insertions, 2 deletions
diff --git a/sc/source/core/data/stlpool.cxx b/sc/source/core/data/stlpool.cxx
index a03cc61180ec..18f856aac2ae 100644
--- a/sc/source/core/data/stlpool.cxx
+++ b/sc/source/core/data/stlpool.cxx
@@ -409,14 +409,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()