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();
}
Ejemplo n.º 2
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;    
	} 

}