--- a/qtcontactsmobility/plugins/contacts/symbian/src/cntsymbianengine.cpp Fri Jun 11 13:29:23 2010 +0300
+++ b/qtcontactsmobility/plugins/contacts/symbian/src/cntsymbianengine.cpp Wed Jun 23 18:02:44 2010 +0300
@@ -50,7 +50,6 @@
#include <driveinfo.h>
#include <qtcontacts.h>
-#include <qcontactname.h>
#include "cntsymbianengine.h"
#include "qcontactchangeset.h"
@@ -111,6 +110,9 @@
#endif
m_relationship = new CntRelationship(m_dataBase->contactDatabase(), m_managerUri);
m_displayLabel = new CntDisplayLabel();
+#ifdef SYMBIAN_BACKEND_USE_SQLITE
+ connect(m_displayLabel, SIGNAL(displayLabelChanged()), this, SIGNAL(dataChanged()));
+#endif
}
}
@@ -148,6 +150,11 @@
// Remove possible false positives
if(!filterSupported && *error == QContactManager::NotSupportedError)
{
+ //fetch all contacts
+ *error = QContactManager::NoError;
+ result = m_contactFilter->contacts(QContactFilter(),sortOrders, filterSupported, error);
+
+ //slow filtering
result = slowFilter(filter, result, error);
//slow sorting until it's supported in SQL requests
@@ -168,7 +175,7 @@
}
}
#endif
-
+
return result;
}
@@ -241,13 +248,14 @@
QContactManagerEngine::setContactRelationships(contact, relationships);
}
}
+
return *QScopedPointer<QContact>(contact);
}
bool CntSymbianEngine::saveContact(QContact* contact, QContactManager::Error* error)
{
QContactChangeSet changeSet;
- TBool ret = doSaveContact(contact, changeSet, error);
+ bool ret = doSaveContact(contact, changeSet, error);
changeSet.emitSignals(this);
return ret;
}
@@ -865,6 +873,12 @@
return false;
}
+ QContactManager::Error e;
+ QContactLocalId selfCntId = selfContactId( &e ); // err ignored
+
+ QContactChangeSet changeSet;
+ QOwnCardPair ownCard(selfCntId, contactId);
+
TContactItemId id(contactId);
CContactItem* symContact = 0;
TRAPD(err,
@@ -872,6 +886,15 @@
m_dataBase->contactDatabase()->SetOwnCardL(*symContact);
);
delete symContact;
+
+ if(err == KErrNone)
+ {
+ m_dataBase->appendContactEmitted(id);
+
+ changeSet.setOldAndNewSelfContactId(ownCard);
+ changeSet.emitSignals( this );
+ }
+
CntSymbianTransformError::transformError(err, error);
return (err==KErrNone);
}