summaryrefslogtreecommitdiffstats
path: root/src/imports/contacts/qdeclarativecontactrelationshipmodel.cpp
diff options
context:
space:
mode:
authorCristiano di Flora <cristiano.di-flora@nokia.com>2011-10-17 11:23:47 +0300
committerQt by Nokia <qt-info@nokia.com>2011-10-17 15:38:36 +0200
commitd36cad151118f72532283d0d61555265e5ccc0ef (patch)
tree08d04319d5984676d9a02c066a983b9d146c2357 /src/imports/contacts/qdeclarativecontactrelationshipmodel.cpp
parentc3559597e7f1e65f0566d03e792803614fb9db40 (diff)
Fix two issues in contact relationship qml elements.
- export RelationshipModel element - check if participant property is set before parsing its value Change-Id: Iae1f54323a5e539a54406167659bade7b7155742 Reviewed-by: Claudio Brunelli <claudio.brunelli@nokia.com> Reviewed-by: Tommi Anttila <tommi.4.anttila@nokia.com> Reviewed-by: Kranthi Kumar Kuntala <kranthi.kumar-kuntala@nokia.com>
Diffstat (limited to 'src/imports/contacts/qdeclarativecontactrelationshipmodel.cpp')
-rw-r--r--src/imports/contacts/qdeclarativecontactrelationshipmodel.cpp28
1 files changed, 10 insertions, 18 deletions
diff --git a/src/imports/contacts/qdeclarativecontactrelationshipmodel.cpp b/src/imports/contacts/qdeclarativecontactrelationshipmodel.cpp
index db77da48d..f92ee11a3 100644
--- a/src/imports/contacts/qdeclarativecontactrelationshipmodel.cpp
+++ b/src/imports/contacts/qdeclarativecontactrelationshipmodel.cpp
@@ -43,7 +43,6 @@
#include "qcontactmanager.h"
#include "qcontactrequests.h"
-#include <QDebug>
#include <QPixmap>
QTPIM_BEGIN_NAMESPACE
@@ -100,7 +99,6 @@ QDeclarativeContactRelationshipModel::QDeclarativeContactRelationshipModel(QObje
roleNames = QAbstractItemModel::roleNames();
roleNames.insert(RelationshipRole, "relationship");
setRoleNames(roleNames);
-
connect(this, SIGNAL(managerChanged()), SLOT(fetchAgain()));
connect(this, SIGNAL(participantChanged()), SLOT(fetchAgain()));
connect(this, SIGNAL(relationshipTypeChanged()), SLOT(fetchAgain()));
@@ -287,19 +285,16 @@ void QDeclarativeContactRelationshipModel::fetchAgain()
if (d->m_manager) {
QContactRelationshipFetchRequest* req = new QContactRelationshipFetchRequest(this);
req->setManager(d->m_manager);
-
- QContact contact (d->m_participant->contact());
- if (d->m_role == QDeclarativeContactRelationship::First || d->m_role == QDeclarativeContactRelationship::Either)
- req->setFirst(contact);
-
- if (d->m_role == QDeclarativeContactRelationship::Second || d->m_role == QDeclarativeContactRelationship::Either)
- req->setSecond(contact);
-
-
- req->setRelationshipType(d->m_relationshipTypeHolder.relationship().relationshipType());
- connect(req,SIGNAL(stateChanged(QContactAbstractRequest::State)), this, SLOT(requestUpdated()));
-
- req->start();
+ if (d->m_participant) {
+ QContact contact (d->m_participant->contact());
+ if (d->m_role == QDeclarativeContactRelationship::First || d->m_role == QDeclarativeContactRelationship::Either)
+ req->setFirst(contact);
+ if (d->m_role == QDeclarativeContactRelationship::Second || d->m_role == QDeclarativeContactRelationship::Either)
+ req->setSecond(contact);
+ req->setRelationshipType(d->m_relationshipTypeHolder.relationship().relationshipType());
+ connect(req,SIGNAL(stateChanged(QContactAbstractRequest::State)), this, SLOT(requestUpdated()));
+ req->start();
+ }
}
}
@@ -338,7 +333,6 @@ void QDeclarativeContactRelationshipModel::removeRelationship(QDeclarativeContac
void QDeclarativeContactRelationshipModel::requestUpdated()
{
QContactRelationshipFetchRequest* req = qobject_cast<QContactRelationshipFetchRequest*>(sender());
-
if (req->isFinished() && req->error() == QContactManager::NoError) {
QList<QContactRelationship> relationships = req->relationships();
@@ -352,7 +346,6 @@ void QDeclarativeContactRelationshipModel::requestUpdated()
d->m_declarativeRelationships.clear();
d->m_relationships.clear();
-
foreach (const QContactRelationship& cr, relationships) {
QDeclarativeContactRelationship* dcr = new QDeclarativeContactRelationship(this);
dcr->setRelationship(cr);
@@ -360,7 +353,6 @@ void QDeclarativeContactRelationshipModel::requestUpdated()
d->m_relationships.append(cr);
}
endInsertRows();
-
req->deleteLater();
emit relationshipsChanged();
}