equal
deleted
inserted
replaced
48 |
48 |
49 #include <pathinfo.h> |
49 #include <pathinfo.h> |
50 #include <driveinfo.h> |
50 #include <driveinfo.h> |
51 |
51 |
52 #include <qtcontacts.h> |
52 #include <qtcontacts.h> |
53 #include <qcontactname.h> |
|
54 |
53 |
55 #include "cntsymbianengine.h" |
54 #include "cntsymbianengine.h" |
56 #include "qcontactchangeset.h" |
55 #include "qcontactchangeset.h" |
57 #include "cntsymbiandatabase.h" |
56 #include "cntsymbiandatabase.h" |
58 #include "cnttransformcontact.h" |
57 #include "cnttransformcontact.h" |
109 m_contactFilter = new CntSymbianFilter(*m_dataBase->contactDatabase()); |
108 m_contactFilter = new CntSymbianFilter(*m_dataBase->contactDatabase()); |
110 m_contactSorter = new CntSymbianSorterDbms(*m_dataBase->contactDatabase(), *m_transformContact); |
109 m_contactSorter = new CntSymbianSorterDbms(*m_dataBase->contactDatabase(), *m_transformContact); |
111 #endif |
110 #endif |
112 m_relationship = new CntRelationship(m_dataBase->contactDatabase(), m_managerUri); |
111 m_relationship = new CntRelationship(m_dataBase->contactDatabase(), m_managerUri); |
113 m_displayLabel = new CntDisplayLabel(); |
112 m_displayLabel = new CntDisplayLabel(); |
|
113 #ifdef SYMBIAN_BACKEND_USE_SQLITE |
|
114 connect(m_displayLabel, SIGNAL(displayLabelChanged()), this, SIGNAL(dataChanged())); |
|
115 #endif |
114 } |
116 } |
115 } |
117 } |
116 |
118 |
117 CntSymbianEngine::~CntSymbianEngine() |
119 CntSymbianEngine::~CntSymbianEngine() |
118 { |
120 { |
146 #ifdef SYMBIAN_BACKEND_USE_SQLITE |
148 #ifdef SYMBIAN_BACKEND_USE_SQLITE |
147 |
149 |
148 // Remove possible false positives |
150 // Remove possible false positives |
149 if(!filterSupported && *error == QContactManager::NotSupportedError) |
151 if(!filterSupported && *error == QContactManager::NotSupportedError) |
150 { |
152 { |
|
153 //fetch all contacts |
|
154 *error = QContactManager::NoError; |
|
155 result = m_contactFilter->contacts(QContactFilter(),sortOrders, filterSupported, error); |
|
156 |
|
157 //slow filtering |
151 result = slowFilter(filter, result, error); |
158 result = slowFilter(filter, result, error); |
152 |
159 |
153 //slow sorting until it's supported in SQL requests |
160 //slow sorting until it's supported in SQL requests |
154 result = slowSort(result, sortOrders, error); |
161 result = slowSort(result, sortOrders, error); |
155 } |
162 } |
166 } else { |
173 } else { |
167 result = slowSort(result, sortOrders, error); |
174 result = slowSort(result, sortOrders, error); |
168 } |
175 } |
169 } |
176 } |
170 #endif |
177 #endif |
171 |
178 |
172 return result; |
179 return result; |
173 } |
180 } |
174 |
181 |
175 QList<QContact> CntSymbianEngine::contacts(const QContactFilter& filter, const QList<QContactSortOrder>& sortOrders, const QContactFetchHint& fh, QContactManager::Error* error) const |
182 QList<QContact> CntSymbianEngine::contacts(const QContactFilter& filter, const QList<QContactSortOrder>& sortOrders, const QContactFetchHint& fh, QContactManager::Error* error) const |
176 { |
183 { |
239 *error = relationshipError; |
246 *error = relationshipError; |
240 } |
247 } |
241 QContactManagerEngine::setContactRelationships(contact, relationships); |
248 QContactManagerEngine::setContactRelationships(contact, relationships); |
242 } |
249 } |
243 } |
250 } |
|
251 |
244 return *QScopedPointer<QContact>(contact); |
252 return *QScopedPointer<QContact>(contact); |
245 } |
253 } |
246 |
254 |
247 bool CntSymbianEngine::saveContact(QContact* contact, QContactManager::Error* error) |
255 bool CntSymbianEngine::saveContact(QContact* contact, QContactManager::Error* error) |
248 { |
256 { |
249 QContactChangeSet changeSet; |
257 QContactChangeSet changeSet; |
250 TBool ret = doSaveContact(contact, changeSet, error); |
258 bool ret = doSaveContact(contact, changeSet, error); |
251 changeSet.emitSignals(this); |
259 changeSet.emitSignals(this); |
252 return ret; |
260 return ret; |
253 } |
261 } |
254 |
262 |
255 /*! \reimp */ |
263 /*! \reimp */ |
863 if (contactId <= 0) { |
871 if (contactId <= 0) { |
864 *error = QContactManager::BadArgumentError; |
872 *error = QContactManager::BadArgumentError; |
865 return false; |
873 return false; |
866 } |
874 } |
867 |
875 |
|
876 QContactManager::Error e; |
|
877 QContactLocalId selfCntId = selfContactId( &e ); // err ignored |
|
878 |
|
879 QContactChangeSet changeSet; |
|
880 QOwnCardPair ownCard(selfCntId, contactId); |
|
881 |
868 TContactItemId id(contactId); |
882 TContactItemId id(contactId); |
869 CContactItem* symContact = 0; |
883 CContactItem* symContact = 0; |
870 TRAPD(err, |
884 TRAPD(err, |
871 symContact = m_dataBase->contactDatabase()->ReadContactL(id); |
885 symContact = m_dataBase->contactDatabase()->ReadContactL(id); |
872 m_dataBase->contactDatabase()->SetOwnCardL(*symContact); |
886 m_dataBase->contactDatabase()->SetOwnCardL(*symContact); |
873 ); |
887 ); |
874 delete symContact; |
888 delete symContact; |
|
889 |
|
890 if(err == KErrNone) |
|
891 { |
|
892 m_dataBase->appendContactEmitted(id); |
|
893 |
|
894 changeSet.setOldAndNewSelfContactId(ownCard); |
|
895 changeSet.emitSignals( this ); |
|
896 } |
|
897 |
875 CntSymbianTransformError::transformError(err, error); |
898 CntSymbianTransformError::transformError(err, error); |
876 return (err==KErrNone); |
899 return (err==KErrNone); |
877 } |
900 } |
878 |
901 |
879 QContactLocalId CntSymbianEngine::selfContactId(QContactManager::Error* error) const |
902 QContactLocalId CntSymbianEngine::selfContactId(QContactManager::Error* error) const |