Uploaded image for project: 'Qt Mobility'
  1. Qt Mobility
  2. QTMOBILITY-1623

QContactManagerEngine::CompareVariant() does not support QVariant::StringList

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • None
    • 1.2.0
    • Contacts
    • None
    • MeeGo
    • c3fc8dd258e6c956abc2fd0229cb94d9502da9d2

    Description

      I'm using QContactManagerEngine::testFilter() to check that a contact is matching a particular QContactDetailFilter as follows:

      """ Sample code """

      QContact c;
      QContactOrganization org;
      org.setDepartment(QStringList() << "OTC" << "SSG");
      c.saveDetail(&org);
      QContactDetailFilter f;
      f.setDetailDefinitionName(QContactOrganization::DefinitionName, QContactOrganization::FieldDepartment);
      f.setMatchFlags(QContactFilter::MatchExactly);
      f.setValue(QStringList() << "OTC" << "XXX");
      Q_ASSERT(!QCOntactManagerEngine::testFilter(filter, c)); // HITS THE ASSERT (It shouldn't)
      

      """

      What happens is that QContactManagerEngine::testFilter() will call QContactManagerEngine::compareVariant().
      The thing is that the QContactOrganization::FieldDepartment is a QStringList and compareVariant() does not support String lists comparison and will return 0 (i.e. "are equal").

      I believe that QContactManagerEngine::compareVariant() should support StringList comparison since some details' fields have this type (e.g. QContactOrganization::FieldDepartment).

      Attachments

        Activity

          People

            satu.m.makela satu makela
            hydr0g3n Christophe Dumez
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: