From f61f235b1104d26a266a8f9fdcc286fff1e50ea4 Mon Sep 17 00:00:00 2001 From: Mike FABIAN Date: Tue, 7 Sep 2010 18:55:18 +0200 Subject: Changes: speedup MLocationDatabase::matchingCities() RevBy: TrustMe Details: before: RESULT : Pt_MLocationDatabase::benchmarkMatchingCities(): 0.21 msecs per iteration (total: 56, iterations: 256) after: RESULT : Pt_MLocationDatabase::benchmarkMatchingCities(): 0.12 msecs per iteration (total: 64, iterations: 512) --- src/corelib/i18n/mlocationdatabase.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/corelib/i18n/mlocationdatabase.cpp b/src/corelib/i18n/mlocationdatabase.cpp index b642d7ef..26f977c1 100644 --- a/src/corelib/i18n/mlocationdatabase.cpp +++ b/src/corelib/i18n/mlocationdatabase.cpp @@ -21,6 +21,7 @@ #include #include +#include #include const QString path = "/usr/share/meegotouch/locationdatabase/"; @@ -255,9 +256,10 @@ QList MLocationDatabase::matchingCities(const QString& searchString) Q_D(MLocationDatabase); QList list; + QStringMatcher matcher(searchString, Qt::CaseInsensitive); foreach (const MCity &city, d->cities) { - if (city.englishName().contains(searchString, Qt::CaseInsensitive) - || city.localName().contains(searchString, Qt::CaseInsensitive)) + if (matcher.indexIn(city.englishName()) != -1 + || matcher.indexIn(city.localName()) != -1) { list.append( city ); } -- cgit v1.2.3