[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kpeople] /: Set the contact uri as person uri in PersonData when no person exists
From:       Martin Klapetek <mklapetek () kde ! org>
Date:       2016-03-14 13:19:43
Message-ID: E1afSPP-0006SJ-R7 () scm ! kde ! org
[Download RAW message or body]

Git commit a72809761419457b803e13ab91c1a1950b5f9ac8 by Martin Klapetek.
Committed on 14/03/2016 at 13:19.
Pushed by mklapetek into branch 'master'.

Set the contact uri as person uri in PersonData when no person exists

For single contact without any person, PersonData does not work. This
uses the contact uri as a person uri in that case, making things work.
It also mirrors what PersonsModel does.

REVIEW: 127348

M  +4    -1    autotests/persondatatests.cpp
M  +5    -1    src/persondata.cpp

http://commits.kde.org/kpeople/a72809761419457b803e13ab91c1a1950b5f9ac8

diff --git a/autotests/persondatatests.cpp b/autotests/persondatatests.cpp
index 5f7cabd..677ee1b 100644
--- a/autotests/persondatatests.cpp
+++ b/autotests/persondatatests.cpp
@@ -73,12 +73,14 @@ void PersonDataTests::cleanup()
 
 void PersonDataTests::loadContact()
 {
-    PersonData person(QStringLiteral("fakesource://contact1"));
+    QString personUri = QStringLiteral("fakesource://contact1");
+    PersonData person(personUri);
     //in this case we know the datasource is synchronous, but we should extend the \
test to cope with it not being async.  
     QCOMPARE(person.contactUris().size(), 1);
     QCOMPARE(person.name(), QStringLiteral("Contact 1"));
     QCOMPARE(person.allEmails(), \
QStringList(QStringLiteral("contact1@example.com"))); +    \
QCOMPARE(person.personUri(), personUri);  }
 
 void PersonDataTests::loadPerson()
@@ -90,6 +92,7 @@ void PersonDataTests::loadPerson()
     QCOMPARE(person.contactUris().size(), 2);
     QCOMPARE(person.name(), QStringLiteral("Contact 2"));
     QCOMPARE(person.allEmails().size(), 2);
+    QCOMPARE(person.personUri(), QStringLiteral("kpeople://1"));
 
     //convert to set as order is not important
     QCOMPARE(person.allEmails().toSet(), QSet<QString>() << \
                QStringLiteral("contact2@example.com") << \
                QStringLiteral("contact3@example.com"));
diff --git a/src/persondata.cpp b/src/persondata.cpp
index 4586bac..e4a0c54 100644
--- a/src/persondata.cpp
+++ b/src/persondata.cpp
@@ -85,7 +85,11 @@ KPeople::PersonData::PersonData(const QString &id, QObject \
                *parent):
             qWarning() << "error: creating PersonData for unknown contact" << \
contactUri << id;  }
 
-    d->metaContact = MetaContact(personUri, contacts);
+    if (personUri.isEmpty() && contacts.size() == 1) {
+        d->metaContact = MetaContact(id, contacts.first());
+    } else {
+        d->metaContact = MetaContact(personUri, contacts);
+    }
 }
 
 PersonData::~PersonData()


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic