qtcontactsmobility/plugins/contacts/symbian/src/filtering/cntfilterunion.cpp
changeset 37 fd64c38c277d
parent 27 de1630741fbe
child 40 b46a585f6909
--- 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;
+        }
     }
-    
+}
+