qtcontactsmobility/plugins/contacts/symbian/src/filtering/cntsymbianfiltersql.cpp
changeset 37 fd64c38c277d
parent 31 2a11b5b00470
child 40 b46a585f6909
equal deleted inserted replaced
31:2a11b5b00470 37:fd64c38c277d
    49 #include "cntfilterdetail.h"
    49 #include "cntfilterdetail.h"
    50 #include "cntfilterdefault.h"
    50 #include "cntfilterdefault.h"
    51 #include "cntfilterintersection.h"
    51 #include "cntfilterintersection.h"
    52 #include "cntfilterunion.h"
    52 #include "cntfilterunion.h"
    53 #include "cntfilterrelationship.h"
    53 #include "cntfilterrelationship.h"
    54 #include "cntfilterinvalid.h"
       
    55 #include "cntfilterdetailrange.h"
       
    56 #include "cntfilterchangelog.h"
       
    57 #include "cntfilteraction.h"
       
    58 #include "cntfilterlocalid.h"
       
    59 #include <QLatin1String>
    54 #include <QLatin1String>
    60 #include <e32cmn.h>
    55 #include <e32cmn.h>
    61 #include <cntdb.h>
    56 #include <cntdb.h>
    62 
    57 
    63 
    58 
    75     m_filterMap.insert(QContactFilter::ContactDetailFilter, new CntFilterDetail(m_contactDatabase,m_srvConnection,*m_dbInfo));
    70     m_filterMap.insert(QContactFilter::ContactDetailFilter, new CntFilterDetail(m_contactDatabase,m_srvConnection,*m_dbInfo));
    76     m_filterMap.insert(QContactFilter::DefaultFilter, new CntFilterDefault(m_contactDatabase,m_srvConnection,*m_dbInfo));
    71     m_filterMap.insert(QContactFilter::DefaultFilter, new CntFilterDefault(m_contactDatabase,m_srvConnection,*m_dbInfo));
    77     m_filterMap.insert(QContactFilter::IntersectionFilter, new CntFilterIntersection(m_contactDatabase,m_srvConnection,*m_dbInfo));
    72     m_filterMap.insert(QContactFilter::IntersectionFilter, new CntFilterIntersection(m_contactDatabase,m_srvConnection,*m_dbInfo));
    78     m_filterMap.insert(QContactFilter::UnionFilter, new CntFilterUnion(m_contactDatabase,m_srvConnection,*m_dbInfo));
    73     m_filterMap.insert(QContactFilter::UnionFilter, new CntFilterUnion(m_contactDatabase,m_srvConnection,*m_dbInfo));
    79     m_filterMap.insert(QContactFilter::RelationshipFilter, new CntFilterRelationship(m_contactDatabase,m_srvConnection,*m_dbInfo));
    74     m_filterMap.insert(QContactFilter::RelationshipFilter, new CntFilterRelationship(m_contactDatabase,m_srvConnection,*m_dbInfo));
    80     m_filterMap.insert(QContactFilter::InvalidFilter, new CntFilterInvalid(m_contactDatabase,m_srvConnection,*m_dbInfo));
       
    81     m_filterMap.insert(QContactFilter::ContactDetailRangeFilter, new CntFilterdetailrange(m_contactDatabase,m_srvConnection,*m_dbInfo));
       
    82     m_filterMap.insert(QContactFilter::ChangeLogFilter, new CntFilterChangeLog(m_contactDatabase,m_srvConnection,*m_dbInfo));
       
    83     m_filterMap.insert(QContactFilter::ActionFilter, new CntFilterAction(m_contactDatabase,m_srvConnection,*m_dbInfo));
       
    84     m_filterMap.insert(QContactFilter::LocalIdFilter, new CntFilterLocalId(m_contactDatabase,m_srvConnection,*m_dbInfo));
       
    85 }
    75 }
    86 
    76 
    87 CntSymbianFilter::~CntSymbianFilter()
    77 CntSymbianFilter::~CntSymbianFilter()
    88 {
    78 {
    89     //delete the all filters from the map
    79     //delete the all filters from the map
    90     QMap<QContactFilter::FilterType, CntAbstractContactFilter*>::iterator itr;
    80     QMap<QContactFilter::FilterType, CntAbstractContactFilter*>::iterator itr;
    91 
    81 
    92     for (itr = m_filterMap.begin(); itr != m_filterMap.end(); ++itr)
    82     for (itr = m_filterMap.begin(); itr != m_filterMap.end(); ++itr) {
    93     {
       
    94         CntAbstractContactFilter* value = itr.value();
    83         CntAbstractContactFilter* value = itr.value();
    95         delete value;
    84         delete value;
    96         value = 0;
    85         value = 0;
    97     }
    86     }
    98     
    87     
    99     delete m_dbInfo;  
    88     delete m_dbInfo;  
   100 }
    89 }
   101 
    90 
   102 QList<QContactLocalId> CntSymbianFilter::contacts(
    91 QList<QContactLocalId> CntSymbianFilter::contacts(const QContactFilter& filter,
   103             const QContactFilter& filter,
    92                                                   const QList<QContactSortOrder>& sortOrders,
   104             const QList<QContactSortOrder>& sortOrders,
    93                                                   bool &filterSupported,
   105             bool &filterSupported,
    94                                                   QContactManager::Error* error)
   106             QContactManager::Error* error)
       
   107 {
    95 {
   108     QList<QContactLocalId> ids;
    96     QList<QContactLocalId> ids;
   109     if(m_filterMap.contains(filter.type()))
    97     if (m_filterMap.contains(filter.type())) {
   110         {
       
   111 
       
   112         ids = ( m_filterMap.value(filter.type()))->contacts(filter,sortOrders,filterSupported,error);
    98         ids = ( m_filterMap.value(filter.type()))->contacts(filter,sortOrders,filterSupported,error);
   113         return ids;   
    99         return ids;   
   114         
   100     }
   115         }
       
   116     *error = QContactManager::NotSupportedError;
   101     *error = QContactManager::NotSupportedError;
   117     return ids;
   102     return ids;
   118     
       
   119 }
   103 }
   120 
   104 
   121 bool CntSymbianFilter::filterSupported(const QContactFilter& filter)
   105 bool CntSymbianFilter::filterSupported(const QContactFilter& filter)
   122 {
   106 {
   123     bool result = false;
   107     bool result = false;
   124     
   108     if (m_filterMap.contains(filter.type())) {
   125     if(m_filterMap.contains(filter.type()))
       
   126     {
       
   127         result = m_filterMap.value(filter.type())->filterSupported(filter);
   109         result = m_filterMap.value(filter.type())->filterSupported(filter);
   128     }
   110     }
   129     return result;
   111     return result;
   130 }
   112 }
   131 
   113