QList<QContact> CntSymbianSimEngine::contacts(const QContactFilter& filter, const QList<QContactSortOrder>& sortOrders, const QContactFetchHint& fetchHint, QContactManager::Error* error) const { QContactFetchRequest req; req.setFilter(filter); req.setSorting(sortOrders); req.setFetchHint(fetchHint); executeRequest(&req, error); return req.contacts(); }
QContact DecodedDataDocumentParser::getContact(string name, string surname) { QContactFetchRequest fetchRequest; QContactSortOrder s; s.setDirection(Qt::DescendingOrder); s.setCaseSensitivity(Qt::CaseInsensitive); s.setDetailDefinitionName("Name","FirstName"); s.setBlankPolicy(QContactSortOrder::BlanksFirst); QList<QContactSortOrder> sortList; sortList.push_back(s); //Search filters QContactUnionFilter nameFilter; QContactDetailFilter subFilterF; subFilterF.setDetailDefinitionName("Name", "FirstName"); subFilterF.setValue(name.c_str()); subFilterF.setMatchFlags(QContactFilter::MatchContains); nameFilter.append(subFilterF); QContactDetailFilter subFilterL; subFilterL.setDetailDefinitionName("Name", "LastName"); subFilterL.setValue(surname.c_str()); subFilterL.setMatchFlags(QContactFilter::MatchContains); nameFilter.append(subFilterL); fetchRequest.setSorting(sortList); fetchRequest.setFilter(nameFilter); fetchRequest.setManager(new QContactManager(&fetchRequest)); //connect(request, SIGNAL(stateChanged(QContactAbstractRequest::State)), //SLOT(onStateChanged(QContactAbstractRequest::State)) fetchRequest.start(); QEventLoop loop; QObject::connect(&fetchRequest, SIGNAL(stateChanged(QContactAbstractRequest::State)), &loop, SLOT(quit())); loop.exec(); QList<QContact> list=fetchRequest.contacts(); qWarning("Contacts readed %d",list.count()); if(list.count()>0) { return list.at(0); } else { QContact c; return c; } }