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(); }
/*! * Reads a contact from the Etel store. * * \param contactId The Id of the contact to be retrieved. * \param definitionRestrictions Definition restrictions. * \param error Qt error code. * \return A QContact for the requested QContactLocalId value or 0 if the read * operation was unsuccessful (e.g. contact not found). */ QContact CntSymbianSimEngine::contact(const QContactLocalId& contactId, const QContactFetchHint& fetchHint, QContactManager::Error* error) const { QContactFetchRequest req; QContactLocalIdFilter filter; filter.setIds(QList<QContactLocalId>() << contactId); req.setFilter(filter); req.setFetchHint(fetchHint); executeRequest(&req, error); if (req.contacts().count() == 0) return QContact(); return req.contacts().at(0); }
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; } }
/* A FetchByIdRequestController is a RequestController for QContactFetchByIdRequests */ bool FetchByIdRequestController::start() { // Our strategy is to translate it to a ContactFetchRequest. Later when it finishes, we can // fiddle with the results to get it in the right format. Q_ASSERT(m_request); QContactFetchRequest* qcfr = new QContactFetchRequest; QContactLocalIdFilter lif; lif.setIds(static_cast<QContactFetchByIdRequest*>(m_request.data())->localIds()); qcfr->setFilter(lif); qcfr->setFetchHint(qcfr->fetchHint()); // normally, you'd set the manager, but in this case, we only have a bare engine: QContactManagerEngineV2Wrapper::setEngineOfRequest(qcfr, m_engine); m_currentSubRequest.reset(qcfr); connect(qcfr, SIGNAL(stateChanged(QContactAbstractRequest::State)), this, SLOT(handleUpdatedSubRequest(QContactAbstractRequest::State)), Qt::QueuedConnection); return qcfr->start(); }