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 |