Remove contact method added (not tested yet)
Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-qt/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-qt/commit/b8243aa8 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-qt/tree/b8243aa8 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-qt/diff/b8243aa8 Branch: refs/heads/master Commit: b8243aa8a4c1fcf569a30a2701c1f61c6ce9b4a8 Parents: f773df7 Author: Denis Kormalev <dkorma...@ics.com> Authored: Thu Mar 1 16:28:06 2012 +0400 Committer: Denis Kormalev <dkorma...@ics.com> Committed: Fri Mar 16 19:26:38 2012 +0400 ---------------------------------------------------------------------- src/plugins/contacts.cpp | 13 +++++++++++++ src/plugins/contacts.h | 8 ++++---- www/js/contacts.js | 17 +++++++++++++++-- 3 files changed, 32 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cordova-qt/blob/b8243aa8/src/plugins/contacts.cpp ---------------------------------------------------------------------- diff --git a/src/plugins/contacts.cpp b/src/plugins/contacts.cpp index 1274332..07f8d7a 100644 --- a/src/plugins/contacts.cpp +++ b/src/plugins/contacts.cpp @@ -81,6 +81,19 @@ void Contacts::saveContact(int scId, int ecId, const QVariantMap ¶ms) qDeleteAll(detailsToDelete); } +void Contacts::removeContact(int scId, int ecId, const QString &guid) +{ + Q_UNUSED(scId) + Q_UNUSED(ecId) + + QContactDetailFilter idFilter; + idFilter.setDetailDefinitionName(QContactGuid::DefinitionName, QContactGuid::FieldGuid); + idFilter.setValue(guid); + idFilter.setMatchFlags(QContactFilter::MatchExactly); + QList<QContactLocalId> contacts = m_manager->contactIds(idFilter); + m_manager->removeContacts(contacts); +} + void Contacts::findContacts(int scId, int ecId, const QStringList &fields, const QString &filter, bool multiple) { qDebug() << Q_FUNC_INFO << filter << fields << multiple; http://git-wip-us.apache.org/repos/asf/incubator-cordova-qt/blob/b8243aa8/src/plugins/contacts.h ---------------------------------------------------------------------- diff --git a/src/plugins/contacts.h b/src/plugins/contacts.h index e4c23d6..95f5168 100644 --- a/src/plugins/contacts.h +++ b/src/plugins/contacts.h @@ -15,15 +15,14 @@ #ifdef QTM_NAMESPACE QTM_BEGIN_NAMESPACE -#elif defined QTCONTACTS_USE_NAMESPACE -QTCONTACTS_BEGIN_NAMESPACE -#endif class QContact; class QContactManager; -#ifdef QTM_NAMESPACE QTM_END_NAMESPACE QTM_USE_NAMESPACE #elif defined QTCONTACTS_USE_NAMESPACE +QTCONTACTS_BEGIN_NAMESPACE +class QContact; +class QContactManager; QTCONTACTS_END_NAMESPACE QTCONTACTS_USE_NAMESPACE #endif @@ -41,6 +40,7 @@ signals: public slots: void saveContact(int scId, int ecId, const QVariantMap ¶ms); + void removeContact(int scId, int ecId, const QString &guid); void findContacts(int scId, int ecId, const QStringList &fields, const QString &filter, bool multiple); private: http://git-wip-us.apache.org/repos/asf/incubator-cordova-qt/blob/b8243aa8/www/js/contacts.js ---------------------------------------------------------------------- diff --git a/www/js/contacts.js b/www/js/contacts.js index 79c5e66..c8d5495 100644 --- a/www/js/contacts.js +++ b/www/js/contacts.js @@ -173,7 +173,7 @@ Contact.create = function(obj) { return result } -Contact.prototype.id = "" +Contact.prototype.id = null Contact.prototype.displayName = "" Contact.prototype.name = new ContactName() Contact.prototype.nickname = "" @@ -189,10 +189,23 @@ Contact.prototype.categories = [] Contact.prototype.urls = [] Contact.prototype.clone = function() { - + var newContact = Contact.create(this) + newContact.id = null + return newContact } Contact.prototype.remove = function(onSaveSuccess,onSaveError) { + if( typeof contactSuccess !== "function" ) return + if( typeof contactError !== "function" ) contactError = function() {} + + //TODO: call onSaveError here + if (this.id == null || this.id == "") + return + + Cordova.exec( function() { + contactSuccess() + }, contactError, "com.cordova.Contacts", "removeContact", [ this.id ] ) + }