--- a/qtcontactsmobility/plugins/contacts/symbian/src/filtering/cntfilterunion.cpp Fri May 14 15:42:23 2010 +0300
+++ b/qtcontactsmobility/plugins/contacts/symbian/src/filtering/cntfilterunion.cpp Thu May 27 12:45:19 2010 +0300
@@ -51,139 +51,119 @@
m_srvConnection(cntServer),
m_dbInfo(dbInfo)
{
-
}
CntFilterUnion::~CntFilterUnion()
{
-
}
-QList<QContactLocalId> CntFilterUnion::contacts(
- const QContactFilter &filter,
- const QList<QContactSortOrder> &sortOrders,
- bool &filterSupportedflag,
- QContactManager::Error* error)
+QList<QContactLocalId> CntFilterUnion::contacts(const QContactFilter &filter,
+ const QList<QContactSortOrder> &sortOrders,
+ bool &filterSupportedflag,
+ QContactManager::Error* error)
{
Q_UNUSED(sortOrders);
Q_UNUSED(filterSupportedflag);
//Check if any invalid filter is passed
- if(!filterSupported(filter))
- {
+ if (!filterSupported(filter)) {
*error = QContactManager::NotSupportedError;
return QList<QContactLocalId>();
- }
- QList<QContactLocalId> idList;
- QString sqlQuery;
- createSelectQuery(filter,sqlQuery,error);
- QString sortQuery = m_dbInfo.getSortQuery(sortOrders, sqlQuery, error);
- //fetch the contacts
- if(*error == QContactManager::NoError )
- {
- idList = m_srvConnection.searchContacts(sortQuery, error);
- }
- return idList;
+ }
+ QList<QContactLocalId> idList;
+ QString sqlQuery;
+ createSelectQuery(filter,sqlQuery,error);
+ QString sortQuery = m_dbInfo.getSortQuery(sortOrders, sqlQuery, error);
+ //fetch the contacts
+ if (*error == QContactManager::NoError) {
+ idList = m_srvConnection.searchContacts(sortQuery, error);
+ }
+ return idList;
}
bool CntFilterUnion::filterSupported(const QContactFilter& filter)
{
bool result = false;
- if(QContactFilter::UnionFilter == filter.type())
- {
- result = true;
- }
-
- return result;
+ if (QContactFilter::UnionFilter == filter.type()) {
+ result = true;
+ }
+ return result;
}
void CntFilterUnion::createSelectQuery(const QContactFilter& filter,
- QString& selectquery,
- QContactManager::Error* error)
+ QString& selectquery,
+ QContactManager::Error* error)
{
const QContactUnionFilter& unionfilter = static_cast<const QContactUnionFilter&>(filter);
- if(!filterSupported(filter))
- {
+ if (!filterSupported(filter)) {
*error = QContactManager::NotSupportedError;
return;
+ }
+ QList<QContactFilter> individualFilters = unionfilter.filters();
+ //QString selectquery;
+ int fltrcnt = individualFilters.count();
+ if (fltrcnt)
+ getSelectQueryforFilter(individualFilters[0],selectquery,error);
+
+ for (int i=1; i< fltrcnt ; i++) {
+ QString query;
+ getSelectQueryforFilter(individualFilters[i],query,error);
+ if (*error == QContactManager::NoError ) {
+ selectquery.append(" UNION ");
+ selectquery += query;
}
- QList<QContactFilter> individualFilters = unionfilter.filters();
- //QString selectquery;
- int fltrcnt = individualFilters.count();
- if(fltrcnt)
- getSelectQueryforFilter(individualFilters[0],selectquery,error);
-
- for(int i=1; i< fltrcnt ; i++)
- {
-
- QString query;
- getSelectQueryforFilter(individualFilters[i],query,error);
- if(*error == QContactManager::NoError )
- {
- selectquery.append(" UNION ");
- selectquery += query;
- }
-
- }
-
-
+ }
}
-void CntFilterUnion::getSelectQueryforFilter(const QContactFilter& filter,QString& sqlSelectQuery,QContactManager::Error* error)
- {
- switch(filter.type())
- {
- case QContactFilter::DefaultFilter:
- {
- CntFilterDefault defaultfltr(m_contactdatabase,m_srvConnection,m_dbInfo);
- defaultfltr.createSelectQuery(filter,sqlSelectQuery,error);
- break;
- }
- case QContactFilter::ContactDetailFilter:
- {
- QContactDetailFilter detailfilter(filter);
- if(detailfilter.detailDefinitionName() == QContactPhoneNumber::DefinitionName )
- {
- *error=QContactManager::NotSupportedError;
- }
- else
- {
- CntFilterDetail dtlfltr(m_contactdatabase,m_srvConnection,m_dbInfo);
- dtlfltr.createSelectQuery(filter,sqlSelectQuery,error);
- }
- break;
- }
- case QContactFilter::RelationshipFilter:
- {
- CntFilterRelationship relationfltr(m_contactdatabase,m_srvConnection,m_dbInfo);
- relationfltr.createSelectQuery(filter,sqlSelectQuery,error);
- break;
- }
- case QContactFilter::IntersectionFilter:
- {
- sqlSelectQuery += "SELECT DISTINCT contact_id FROM (";
- CntFilterIntersection intersectionfltr(m_contactdatabase,m_srvConnection,m_dbInfo);
- intersectionfltr.createSelectQuery(filter,sqlSelectQuery,error);
- sqlSelectQuery += ')';
- break;
- }
- case QContactFilter::UnionFilter:
- {
- sqlSelectQuery += "SELECT DISTINCT contact_id FROM (";
- CntFilterUnion unionfltr(m_contactdatabase,m_srvConnection,m_dbInfo);
- unionfltr.createSelectQuery(filter,sqlSelectQuery,error);
- sqlSelectQuery += ')';
- break;
- }
- default:
- {
- *error = QContactManager::NotSupportedError;
- break;
- }
+void CntFilterUnion::getSelectQueryforFilter(const QContactFilter& filter,
+ QString& sqlSelectQuery,
+ QContactManager::Error* error)
+{
+ switch (filter.type()) {
+ case QContactFilter::DefaultFilter: {
+ CntFilterDefault defaultfltr(m_contactdatabase,m_srvConnection,m_dbInfo);
+ defaultfltr.createSelectQuery(filter,sqlSelectQuery,error);
+ break;
+ }
+ case QContactFilter::ContactDetailFilter: {
+ QContactDetailFilter detailfilter(filter);
+ if (detailfilter.detailDefinitionName() == QContactPhoneNumber::DefinitionName ) {
+ CntFilterDetail dtlfltr(m_contactdatabase,m_srvConnection,m_dbInfo);
+ dtlfltr.createMatchPhoneNumberQuery(filter,sqlSelectQuery,error);
+ }
+ else {
+ CntFilterDetail dtlfltr(m_contactdatabase,m_srvConnection,m_dbInfo);
+ dtlfltr.createSelectQuery(filter,sqlSelectQuery,error);
}
+ break;
+ }
+ case QContactFilter::RelationshipFilter: {
+ CntFilterRelationship relationfltr(m_contactdatabase,m_srvConnection,m_dbInfo);
+ relationfltr.createSelectQuery(filter,sqlSelectQuery,error);
+ break;
+ }
+ case QContactFilter::IntersectionFilter: {
+ sqlSelectQuery += "SELECT DISTINCT contact_id FROM (";
+ CntFilterIntersection intersectionfltr(m_contactdatabase,m_srvConnection,m_dbInfo);
+ intersectionfltr.createSelectQuery(filter,sqlSelectQuery,error);
+ sqlSelectQuery += ')';
+ break;
+ }
+ case QContactFilter::UnionFilter: {
+ sqlSelectQuery += "SELECT DISTINCT contact_id FROM (";
+ CntFilterUnion unionfltr(m_contactdatabase,m_srvConnection,m_dbInfo);
+ unionfltr.createSelectQuery(filter,sqlSelectQuery,error);
+ sqlSelectQuery += ')';
+ break;
+ }
+ default: {
+ *error = QContactManager::NotSupportedError;
+ break;
+ }
}
-
+}
+