Author: Alberto Mardegan <alberto.mardegan@canonical.com>
Description: ContactReader: support case insensitive search
 It's not clear why the case insensitive filter was limited to the
 MatchFixedString, as that makes impossible to implement a contact
 search.

--- a/src/engine/contactreader.cpp
+++ b/src/engine/contactreader.cpp
@@ -1156,9 +1156,8 @@
             globValue = QContactFilter::MatchContains;
         }
 
-        // We need to perform case-insensitive matching if MatchFixedString is specified (unless
-        // CaseSensitive is also specified)
-        bool caseInsensitive = stringField && fixedString && ((filter.matchFlags() & QContactFilter::MatchCaseSensitive) == 0);
+        // We need to perform case-insensitive unless CaseSensitive is specified
+        bool caseInsensitive = stringField && ((filter.matchFlags() & QContactFilter::MatchCaseSensitive) == 0);
 
         QString clause(detail.where(queryContacts));
         QString comparison = QStringLiteral("%1");
@@ -1308,7 +1307,6 @@
     bool dateField = field.fieldType == DateField;
     bool stringField = field.fieldType == StringField || field.fieldType == LocalizedField;
     bool caseInsensitive = stringField &&
-                           filter.matchFlags() & QContactFilter::MatchFixedString &&
                            (filter.matchFlags() & QContactFilter::MatchCaseSensitive) == 0;
 
     bool needsAnd = false;
--- a/tests/auto/qcontactmanager/tst_qcontactmanager.cpp
+++ b/tests/auto/qcontactmanager/tst_qcontactmanager.cpp
@@ -4987,7 +4987,7 @@
     QCOMPARE(m->contactIds().count(), currCount+1);
 
     QCOMPARE(m->contactIds(exactMatch).count(), originalCount[0] + 1);
-    QCOMPARE(m->contactIds(exactMismatch).count(), originalCount[1]);
+    QCOMPARE(m->contactIds(exactMismatch).count(), originalCount[1] + 1);
     QCOMPARE(m->contactIds(insensitiveMatch).count(), originalCount[2] + 1);
     QCOMPARE(m->contactIds(insensitiveMismatch).count(), originalCount[3] + 1);
     QCOMPARE(m->contactIds(sensitiveMatch).count(), originalCount[4] + 1);
