Hello community,

here is the log from the commit of package kcontacts for openSUSE:Factory 
checked in at 2016-05-31 12:13:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kcontacts (Old)
 and      /work/SRC/openSUSE:Factory/.kcontacts.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kcontacts"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kcontacts/kcontacts.changes      2016-03-26 
15:14:29.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kcontacts.new/kcontacts.changes 2016-05-31 
12:13:15.000000000 +0200
@@ -1,0 +2,24 @@
+Sat May  7 10:20:17 UTC 2016 - [email protected]
+
+- Update to KDE Applications 16.04.1
+   * KDE Applications 16.04.1
+   * https://www.kde.org/announcements/announce-applications-16.04.1.php
+
+
+-------------------------------------------------------------------
+Sun Apr 17 05:58:50 UTC 2016 - [email protected]
+
+- Update to KDE Applications 16.04.0
+   * KDE Applications 16.04.0
+   * https://www.kde.org/announcements/announce-applications-16.04.0.php
+
+
+-------------------------------------------------------------------
+Mon Apr 11 06:36:04 UTC 2016 - [email protected]
+
+- Update to KDE Applications 16.03.90
+   * KDE Applications 16.04.0 RC
+   * https://www.kde.org/announcements/announce-applications-16.04-rc.php
+
+
+-------------------------------------------------------------------

Old:
----
  kcontacts-15.12.3.tar.xz

New:
----
  kcontacts-16.04.1.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kcontacts.spec ++++++
--- /var/tmp/diff_new_pack.Uwkyaq/_old  2016-05-31 12:13:16.000000000 +0200
+++ /var/tmp/diff_new_pack.Uwkyaq/_new  2016-05-31 12:13:16.000000000 +0200
@@ -18,7 +18,7 @@
 
 %define kf5_version 5.5.0
 Name:           kcontacts
-Version:        15.12.3
+Version:        16.04.1
 Release:        0
 Summary:        New address book API for KDE
 License:        LGPL-2.1+

++++++ kcontacts-15.12.3.tar.xz -> kcontacts-16.04.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/CMakeLists.txt 
new/kcontacts-16.04.1/CMakeLists.txt
--- old/kcontacts-15.12.3/CMakeLists.txt        2015-12-24 16:30:34.000000000 
+0100
+++ new/kcontacts-16.04.1/CMakeLists.txt        2016-04-26 22:16:55.000000000 
+0200
@@ -3,7 +3,7 @@
 project(KContacts)
 
 # ECM setup
-find_package(ECM 5.14.0 CONFIG REQUIRED)
+find_package(ECM 5.19.0 CONFIG REQUIRED)
 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${KContacts_SOURCE_DIR}/cmake)
 
 include(GenerateExportHeader)
@@ -14,11 +14,11 @@
 include(FeatureSummary)
 include(KDEInstallDirs)
 include(KDECMakeSettings)
-include(KDEFrameworkCompilerSettings)
+include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
 include(ECMQtDeclareLoggingCategory)
 
-set(KF5_VERSION "5.14.0")
-set(KCONTACTS_LIB_VERSION "4.92.0")
+set(KF5_VERSION "5.19.0")
+set(KCONTACTS_LIB_VERSION "5.2.1")
 
 ecm_setup_version(${KCONTACTS_LIB_VERSION} VARIABLE_PREFIX KContacts
                         VERSION_HEADER 
"${CMAKE_CURRENT_BINARY_DIR}/kcontacts_version.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/autotests/addresstest.cpp 
new/kcontacts-16.04.1/autotests/addresstest.cpp
--- old/kcontacts-15.12.3/autotests/addresstest.cpp     2015-12-24 
16:30:34.000000000 +0100
+++ new/kcontacts-16.04.1/autotests/addresstest.cpp     2016-04-26 
22:16:55.000000000 +0200
@@ -28,6 +28,11 @@
 
 QTEST_MAIN(AddressTest)
 
+void AddressTest::initTestCase()
+{
+     setenv("LANG", "C", 1);
+}
+
 void AddressTest::emptyTest()
 {
     KContacts::Address address;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/autotests/addresstest.h 
new/kcontacts-16.04.1/autotests/addresstest.h
--- old/kcontacts-15.12.3/autotests/addresstest.h       2015-12-24 
16:30:34.000000000 +0100
+++ new/kcontacts-16.04.1/autotests/addresstest.h       2016-04-26 
22:16:55.000000000 +0200
@@ -28,6 +28,7 @@
     Q_OBJECT
 
 private Q_SLOTS:
+    void initTestCase();
     void emptyTest();
     void storeTest();
     void equalsTest();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/autotests/data/vcard1.vcf.ref 
new/kcontacts-16.04.1/autotests/data/vcard1.vcf.ref
--- old/kcontacts-15.12.3/autotests/data/vcard1.vcf.ref 2015-12-24 
16:30:34.000000000 +0100
+++ new/kcontacts-16.04.1/autotests/data/vcard1.vcf.ref 2016-04-26 
22:16:55.000000000 +0200
@@ -1,14 +1,14 @@
 BEGIN:VCARD
 VERSION:3.0
-ADR;TYPE=parcel;TYPE=postal;TYPE=work:;;6544 Battleford Drive;Raleigh;NC;27
- 613-3502;U.S.A.
+ADR;TYPE=parcel,postal,work:;;6544 Battleford Drive;Raleigh;NC;27613-3502;U
+ .S.A.
 EMAIL;TYPE=INTERNET,PREF:[email protected]
 EMAIL;TYPE=INTERNET:[email protected]
 FN:Frank Dawson
 N:;;;;
 ORG:Lotus Development Corporation
-TEL;TYPE=MSG;TYPE=VOICE;TYPE=WORK:+1-919-676-9515
-TEL;TYPE=FAX;TYPE=WORK:+1-919-676-9564
+TEL;TYPE=MSG,VOICE,WORK:+1-919-676-9515
+TEL;TYPE=FAX,WORK:+1-919-676-9564
 UID:gDVbA6LY3t
 URL:http://home.earthlink.net/~fdawson
 END:VCARD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/autotests/data/vcard11.vcf.ref 
new/kcontacts-16.04.1/autotests/data/vcard11.vcf.ref
--- old/kcontacts-15.12.3/autotests/data/vcard11.vcf.ref        2015-12-24 
16:30:34.000000000 +0100
+++ new/kcontacts-16.04.1/autotests/data/vcard11.vcf.ref        2016-04-26 
22:16:55.000000000 +0200
@@ -1,7 +1,7 @@
 BEGIN:VCARD
 VERSION:3.0
 CLASS:PUBLIC
-EMAIL;TYPE=HOME,PREF;X-EVOLUTION-UI-SLOT=2:[email protected]
+EMAIL;TYPE=HOME;X-EVOLUTION-UI-SLOT=2:[email protected]
 EMAIL;TYPE=WORK;X-EVOLUTION-UI-SLOT=1:[email protected]
 FN:Test User
 N:User;Test;;;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/autotests/data/vcard13.vcf.ref 
new/kcontacts-16.04.1/autotests/data/vcard13.vcf.ref
--- old/kcontacts-15.12.3/autotests/data/vcard13.vcf.ref        2015-12-24 
16:30:34.000000000 +0100
+++ new/kcontacts-16.04.1/autotests/data/vcard13.vcf.ref        2016-04-26 
22:16:55.000000000 +0200
@@ -1,7 +1,7 @@
 BEGIN:VCARD
 VERSION:3.0
 CLASS:PUBLIC
-EMAIL;TYPE=HOME,PREF;X-EVOLUTION-UI-SLOT=2:[email protected]
+EMAIL;TYPE=HOME;X-EVOLUTION-UI-SLOT=2:[email protected]
 EMAIL;TYPE=WORK;X-EVOLUTION-UI-SLOT=1:[email protected]
 FN:Test User
 N:User;Test;;;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/autotests/data/vcard2.vcf.ref 
new/kcontacts-16.04.1/autotests/data/vcard2.vcf.ref
--- old/kcontacts-15.12.3/autotests/data/vcard2.vcf.ref 2015-12-24 
16:30:34.000000000 +0100
+++ new/kcontacts-16.04.1/autotests/data/vcard2.vcf.ref 2016-04-26 
22:16:55.000000000 +0200
@@ -5,8 +5,8 @@
 FN:Tim Howes
 N:;;;;
 ORG:Netscape Communications Corp.
-TEL;TYPE=MSG;TYPE=VOICE;TYPE=WORK:+1-415-937-3419
-TEL;TYPE=FAX;TYPE=WORK:+1-415-528-4164
+TEL;TYPE=MSG,VOICE,WORK:+1-415-937-3419
+TEL;TYPE=FAX,WORK:+1-415-528-4164
 UID:1UgvYejJMs
 END:VCARD
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/autotests/data/vcard4.vcf.ref 
new/kcontacts-16.04.1/autotests/data/vcard4.vcf.ref
--- old/kcontacts-15.12.3/autotests/data/vcard4.vcf.ref 2015-12-24 
16:30:34.000000000 +0100
+++ new/kcontacts-16.04.1/autotests/data/vcard4.vcf.ref 2016-04-26 
22:16:55.000000000 +0200
@@ -5,8 +5,8 @@
 N:;;;;
 NOTE:Welcome to the Ximian Addressbook.
 ORG:Ximian\, Inc.
-TEL;TYPE=VOICE;TYPE=WORK:(617) 236-0442
-TEL;TYPE=FAX;TYPE=WORK:(617) 236-8630
+TEL;TYPE=VOICE,WORK:(617) 236-0442
+TEL;TYPE=FAX,WORK:(617) 236-8630
 UID:pas-id-3E136F9B00000000
 URL:www.ximian.com/
 X-EVOLUTION-FILE-AS:Ximian\, Inc.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/autotests/data/vcard5.vcf.ref 
new/kcontacts-16.04.1/autotests/data/vcard5.vcf.ref
--- old/kcontacts-15.12.3/autotests/data/vcard5.vcf.ref 2015-12-24 
16:30:34.000000000 +0100
+++ new/kcontacts-16.04.1/autotests/data/vcard5.vcf.ref 2016-04-26 
22:16:55.000000000 +0200
@@ -1,7 +1,6 @@
 BEGIN:VCARD
 VERSION:3.0
-ADR;TYPE=home;TYPE=pref:;;Buehlauer Strasse 45;Dresden;Sachsen;01327;German
- y
+ADR;TYPE=home,pref:;;Buehlauer Strasse 45;Dresden;Sachsen;01327;Germany
 ADR;TYPE=work:;;Prager Strasse 55;Dresden;Sachsen;01066;Germany
 BDAY:1955-07-19T00:00:00Z
 CATEGORIES:Friend
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/autotests/emailtest.cpp 
new/kcontacts-16.04.1/autotests/emailtest.cpp
--- old/kcontacts-15.12.3/autotests/emailtest.cpp       2015-12-24 
16:30:34.000000000 +0100
+++ new/kcontacts-16.04.1/autotests/emailtest.cpp       2016-04-26 
22:16:55.000000000 +0200
@@ -175,7 +175,7 @@
     const QByteArray ba = vcard.exportVCards(lst, KContacts::VCard::v4_0);
     QByteArray expected("BEGIN:VCARD\r\n"
                         "VERSION:4.0\r\n"
-                        "EMAIL;TYPE=PREF:[email protected]\r\n"
+                        "EMAIL:[email protected]\r\n"
                         "EMAIL:[email protected]\r\n"
                         "N:;;;;\r\n"
                         "UID:testuid\r\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kcontacts-15.12.3/autotests/resourcelocatorurltest.cpp 
new/kcontacts-16.04.1/autotests/resourcelocatorurltest.cpp
--- old/kcontacts-15.12.3/autotests/resourcelocatorurltest.cpp  2015-12-24 
16:30:34.000000000 +0100
+++ new/kcontacts-16.04.1/autotests/resourcelocatorurltest.cpp  2016-04-26 
22:16:55.000000000 +0200
@@ -115,9 +115,9 @@
     KContacts::VCardTool vcard;
     const KContacts::AddresseeList lst = vcard.parseVCards(vcarddata);
     QCOMPARE(lst.count(), 1);
-    QCOMPARE(lst.at(0).extraUrlList().count(), 1);
+    QCOMPARE(lst.at(0).extraUrlList().count(), 2);
     const ResourceLocatorUrl calurl = lst.at(0).extraUrlList().at(0);
-    QCOMPARE(calurl.url(), 
QUrl(QStringLiteral("https://sherlockholmes.com/calendar/sherlockholmes";)));
+    QCOMPARE(calurl.url(), QUrl(QStringLiteral("https://firsturl";)));
     QVERIFY(!calurl.parameters().isEmpty());
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/src/address.cpp 
new/kcontacts-16.04.1/src/address.cpp
--- old/kcontacts-15.12.3/src/address.cpp       2015-12-24 16:30:34.000000000 
+0100
+++ new/kcontacts-16.04.1/src/address.cpp       2016-04-26 22:16:55.000000000 
+0200
@@ -332,6 +332,32 @@
     return d->mType;
 }
 
+QString Address::typeLabel(Type type)
+{
+    QString label;
+    bool first = true;
+    const TypeList list = typeList();
+
+    TypeList::ConstIterator it;
+    TypeList::ConstIterator end(list.end());
+    for (it = list.begin(); it != end; ++it) {
+        // these are actually flags
+        const TypeFlag flag = static_cast<TypeFlag>(static_cast<int>(*it));
+        if (type & flag) {
+            if (!first) {
+                label.append(QLatin1Char('/'));
+            }
+
+            label.append(typeFlagLabel(flag));
+
+            if (first) {
+                first = false;
+            }
+        }
+    }
+    return label;
+}
+
 QString Address::typeLabel() const
 {
     QString label;
@@ -494,37 +520,25 @@
     return list;
 }
 
-QString Address::typeLabel(Type type)
+QString Address::typeFlagLabel(TypeFlag type)
 {
-    if (type & Pref) {
-        return i18nc("Preferred address", "Preferred");
-    }
-
     switch (type) {
     case Dom:
         return i18nc("Address is in home country", "Domestic");
-        break;
     case Intl:
         return i18nc("Address is not in home country", "International");
-        break;
     case Postal:
         return i18nc("Address for delivering letters", "Postal");
-        break;
     case Parcel:
         return i18nc("Address for delivering packages", "Parcel");
-        break;
     case Home:
         return i18nc("Home Address", "Home");
-        break;
     case Work:
         return i18nc("Work Address", "Work");
-        break;
     case Pref:
         return i18n("Preferred Address");
-        break;
     default:
         return i18nc("another type of address", "Other");
-        break;
     }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/src/address.h 
new/kcontacts-16.04.1/src/address.h
--- old/kcontacts-15.12.3/src/address.h 2015-12-24 16:30:34.000000000 +0100
+++ new/kcontacts-16.04.1/src/address.h 2016-04-26 22:16:55.000000000 +0200
@@ -320,6 +320,7 @@
     */
     static QString ISOtoCountry(const QString &ISOname);
 
+    static QString typeFlagLabel(TypeFlag type);
 private:
     class Private;
     QSharedDataPointer<Private> d;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/src/addressee.cpp 
new/kcontacts-16.04.1/src/addressee.cpp
--- old/kcontacts-15.12.3/src/addressee.cpp     2015-12-24 16:30:34.000000000 
+0100
+++ new/kcontacts-16.04.1/src/addressee.cpp     2016-04-26 22:16:55.000000000 
+0200
@@ -77,7 +77,6 @@
         mProductId = other.mProductId;
         mRevision = other.mRevision;
         mSortString = other.mSortString;
-        mUrl = other.mUrl;
         mSecrecy = other.mSecrecy;
         mLogo = other.mLogo;
         mPhoto = other.mPhoto;
@@ -129,7 +128,6 @@
     QString mProductId;
     QDateTime mRevision;
     QString mSortString;
-    ResourceLocatorUrl mUrl;
     Secrecy mSecrecy;
     Picture mLogo;
     Picture mPhoto;
@@ -322,12 +320,6 @@
         return false;
     }
 
-    if ((d->mUrl.isValid() || addressee.d->mUrl.isValid()) &&
-            (d->mUrl != addressee.d->mUrl)) {
-        qCDebug(KCONTACTS_LOG) << "url differs";
-        return false;
-    }
-
     if (!listEquals(d->mPhoneNumbers, addressee.d->mPhoneNumbers)) {
         qCDebug(KCONTACTS_LOG) << "phoneNumbers differs";
         return false;
@@ -475,6 +467,7 @@
 
 void Addressee::insertExtraSound(const Sound &sound)
 {
+    d->mEmpty = false;
     d->mSoundListExtra.append(sound);
 }
 
@@ -485,6 +478,7 @@
 
 void Addressee::insertExtraPhoto(const Picture &picture)
 {
+    d->mEmpty = false;
     d->mPhotoExtraList.append(picture);
 }
 
@@ -495,6 +489,7 @@
 
 void Addressee::insertExtraLogo(const Picture &logo)
 {
+    d->mEmpty = false;
     d->mLogoExtraList.append(logo);
 }
 
@@ -505,26 +500,33 @@
 
 void Addressee::setExtraSoundList(const Sound::List &soundList)
 {
+    d->mEmpty = false;
     d->mSoundListExtra = soundList;
 }
 
 void Addressee::setExtraPhotoList(const Picture::List &pictureList)
 {
+    d->mEmpty = false;
     d->mPhotoExtraList = pictureList;
 }
 
 void Addressee::setExtraLogoList(const Picture::List &logoList)
 {
+    d->mEmpty = false;
     d->mLogoExtraList = logoList;
 }
 
 void Addressee::insertExtraUrl(const ResourceLocatorUrl &url)
 {
-    d->mUrlExtraList.append(url);
+    if (url.isValid()) {
+        d->mEmpty = false;
+        d->mUrlExtraList.append(url);
+    }
 }
 
 void Addressee::setExtraUrlList(const ResourceLocatorUrl::List &urlList)
 {
+    d->mEmpty = false;
     d->mUrlExtraList = urlList;
 }
 
@@ -535,11 +537,13 @@
 
 void Addressee::insertSourceUrl(const QUrl &url)
 {
+    d->mEmpty = false;
     d->mSources.append(url);
 }
 
 void Addressee::setSourcesUrlList(const QVector<QUrl> &urlList)
 {
+    d->mEmpty = false;
     d->mSources = urlList;
 }
 
@@ -1081,27 +1085,21 @@
 {
     KContacts::ResourceLocatorUrl resourceLocator;
     resourceLocator.setUrl(url);
-    if (resourceLocator == d->mUrl) {
-        return;
-    }
-
-    d->mEmpty = false;
-    d->mUrl = resourceLocator;
+    insertExtraUrl(resourceLocator);
 }
 
 void Addressee::setUrl(const ResourceLocatorUrl &url)
 {
-    if (url == d->mUrl) {
-        return;
-    }
-
-    d->mEmpty = false;
-    d->mUrl = url;
+    insertExtraUrl(url);
 }
 
 ResourceLocatorUrl Addressee::url() const
 {
-    return d->mUrl;
+    if (d->mUrlExtraList.isEmpty()) {
+        return ResourceLocatorUrl();
+    } else {
+        return d->mUrlExtraList.at(0);
+    }
 }
 
 QString Addressee::urlLabel()
@@ -1591,6 +1589,13 @@
     return d->mPhoneNumbers;
 }
 
+void Addressee::setPhoneNumbers(const PhoneNumber::List &phoneNumbers)
+{
+    d->mEmpty = false;
+    d->mPhoneNumbers.clear();
+    d->mPhoneNumbers = phoneNumbers;
+}
+
 PhoneNumber::List Addressee::phoneNumbers(PhoneNumber::Type type) const
 {
     PhoneNumber::List list;
@@ -1631,23 +1636,10 @@
     d->mKeys.append(key);
 }
 
-#if (QT_VERSION >= QT_VERSION_CHECK(5, 4, 0))
 void vectorRemoveAll(Key::List &t, const Key &key)
 {
     t.removeAll(key);
 }
-#else
-void vectorRemoveAll(Key::List &vector, const Key &t)
-{
-    for (Key::List::iterator it = vector.begin(), itEnd = vector.end(); it != 
itEnd;) {
-        if (*it == t) {
-            it = vector.erase(it);
-        } else {
-            ++it;
-        }
-    }
-}
-#endif
 
 void Addressee::removeKey(const Key &key)
 {
@@ -2262,7 +2254,6 @@
     s << a.d->mProductId;
     s << a.d->mRevision;
     s << a.d->mSortString;
-    s << a.d->mUrl;
     s << a.d->mSecrecy;
     s << a.d->mLogo;
     s << a.d->mPhoto;
@@ -2313,7 +2304,6 @@
     s >> a.d->mProductId;
     s >> a.d->mRevision;
     s >> a.d->mSortString;
-    s >> a.d->mUrl;
     s >> a.d->mSecrecy;
     s >> a.d->mLogo;
     s >> a.d->mPhoto;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/src/addressee.h 
new/kcontacts-16.04.1/src/addressee.h
--- old/kcontacts-15.12.3/src/addressee.h       2015-12-24 16:30:34.000000000 
+0100
+++ new/kcontacts-16.04.1/src/addressee.h       2016-04-26 22:16:55.000000000 
+0200
@@ -733,6 +733,8 @@
      */
     PhoneNumber::List phoneNumbers() const;
 
+    void setPhoneNumbers(const PhoneNumber::List &phoneNumbers);
+
     /**
       Return list of phone numbers with a special type.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/src/addresseehelper.cpp 
new/kcontacts-16.04.1/src/addresseehelper.cpp
--- old/kcontacts-15.12.3/src/addresseehelper.cpp       2015-12-24 
16:30:34.000000000 +0100
+++ new/kcontacts-16.04.1/src/addresseehelper.cpp       2016-04-26 
22:16:55.000000000 +0200
@@ -24,7 +24,6 @@
 #include <kconfiggroup.h>
 
 #include <QCoreApplication>
-#include <QtDBus/QtDBus>
 
 using namespace KContacts;
 
@@ -50,11 +49,6 @@
     , d(new AddresseeHelperPrivate)
 {
     initSettings();
-
-    QDBusConnection::sessionBus().connect(QString(), QStringLiteral("/KABC"),
-                                          
QStringLiteral("org.kde.kabc.AddressBookConfig"),
-                                          QStringLiteral("changed"),
-                                          this, SLOT(initSettings()));
 }
 
 AddresseeHelper::~AddresseeHelper()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/src/converter/ldifconverter.h 
new/kcontacts-16.04.1/src/converter/ldifconverter.h
--- old/kcontacts-15.12.3/src/converter/ldifconverter.h 2015-12-24 
16:30:34.000000000 +0100
+++ new/kcontacts-16.04.1/src/converter/ldifconverter.h 2016-04-26 
22:16:55.000000000 +0200
@@ -21,7 +21,6 @@
 #define KCONTACTS_LDIFCONVERTER_H
 
 #include "addressee.h"
-#include "addresseelist.h"
 #include "contactgroup.h"
 
 #include <QtCore/QDateTime>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/src/vcardparser/vcard.h 
new/kcontacts-16.04.1/src/vcardparser/vcard.h
--- old/kcontacts-15.12.3/src/vcardparser/vcard.h       2015-12-24 
16:30:34.000000000 +0100
+++ new/kcontacts-16.04.1/src/vcardparser/vcard.h       2016-04-26 
22:16:55.000000000 +0200
@@ -85,9 +85,6 @@
 
 private:
     LineMap mLineMap;
-
-    class VCardPrivate;
-    VCardPrivate *d;
 };
 
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/src/vcardparser/vcardline.cpp 
new/kcontacts-16.04.1/src/vcardparser/vcardline.cpp
--- old/kcontacts-15.12.3/src/vcardparser/vcardline.cpp 2015-12-24 
16:30:34.000000000 +0100
+++ new/kcontacts-16.04.1/src/vcardparser/vcardline.cpp 2016-04-26 
22:16:55.000000000 +0200
@@ -23,25 +23,21 @@
 using namespace KContacts;
 
 VCardLine::VCardLine()
-    : d(Q_NULLPTR)
 {
 }
 
 VCardLine::VCardLine(const QString &identifier)
-    : d(Q_NULLPTR)
 {
     mIdentifier = identifier;
 }
 
 VCardLine::VCardLine(const QString &identifier, const QVariant &value)
-    : d(Q_NULLPTR)
 {
     mIdentifier = identifier;
     mValue = value;
 }
 
 VCardLine::VCardLine(const VCardLine &line)
-    : d(Q_NULLPTR)
 {
     mParamMap = line.mParamMap;
     mValue = line.mValue;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/src/vcardparser/vcardline.h 
new/kcontacts-16.04.1/src/vcardparser/vcardline.h
--- old/kcontacts-15.12.3/src/vcardparser/vcardline.h   2015-12-24 
16:30:34.000000000 +0100
+++ new/kcontacts-16.04.1/src/vcardparser/vcardline.h   2016-04-26 
22:16:55.000000000 +0200
@@ -121,9 +121,6 @@
     QString mIdentifier;
     QString mGroup;
     QVariant mValue;
-
-    class VCardLinePrivate;
-    VCardLinePrivate *d;
 };
 
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/src/vcardtool.cpp 
new/kcontacts-16.04.1/src/vcardtool.cpp
--- old/kcontacts-15.12.3/src/vcardtool.cpp     2015-12-24 16:30:34.000000000 
+0100
+++ new/kcontacts-16.04.1/src/vcardtool.cpp     2016-04-26 22:16:55.000000000 
+0200
@@ -164,26 +164,30 @@
 
             const bool hasLabel = !(*it).label().isEmpty();
             QMap<QString, Address::TypeFlag>::ConstIterator typeIt;
+            QStringList addreLineType;
+            QStringList labelLineType;
             for (typeIt = mAddressTypeMap.constBegin();
                     typeIt != mAddressTypeMap.constEnd(); ++typeIt) {
                 if (typeIt.value() & (*it).type()) {
-                    addParameter(adrLine, version, QStringLiteral("TYPE"), 
QStringList() << typeIt.key());
+                    addreLineType << typeIt.key();
                     if (hasLabel) {
-                        addParameter(labelLine, version, 
QStringLiteral("TYPE"), QStringList() << typeIt.key());
+                        labelLineType << typeIt.key();
                     }
                 }
             }
 
             if (!isEmpty) {
+                addParameter(adrLine, version, QStringLiteral("TYPE"), 
addreLineType);
                 card.addLine(adrLine);
             }
             if (hasLabel) {
+                addParameter(labelLine, version, QStringLiteral("TYPE"), 
labelLineType);
                 card.addLine(labelLine);
             }
         }
 
         // BDAY
-        card.addLine(VCardLine(QStringLiteral("BDAY"), 
createDateTime((*addrIt).birthday())));
+        card.addLine(VCardLine(QStringLiteral("BDAY"), 
createDateTime((*addrIt).birthday(), version)));
 
         //Laurent: 31 Jan 2015. Not necessary to export it. When Categories 
were changes as AkonadiTag nobody thought that it was break categorie support...
         //=> not necessary to export just tag...
@@ -254,46 +258,30 @@
         const Email::List emailList = (*addrIt).emailList();
         Email::List::ConstIterator emailIt;
         Email::List::ConstIterator emailEnd(emailList.end());
-        bool pref = true;
         for (emailIt = emailList.begin(); emailIt != emailEnd; ++emailIt) {
-            bool needToAddPref = false;
             VCardLine line(QStringLiteral("EMAIL"), (*emailIt).mail());
-            if (pref == true && emailList.count() > 1) {
-                needToAddPref = true;
-                pref = false;
-            }
             QMapIterator<QString, QStringList> i((*emailIt).parameters());
-            bool foundType = false;
             while (i.hasNext()) {
                 i.next();
-                QStringList valueStringList = i.value();
-                if (i.key().toLower() == QLatin1String("type")) {
-                    if (!valueStringList.contains(QStringLiteral("PREF"))) {
-                        if (needToAddPref) {
-                            valueStringList.append(QStringLiteral("PREF"));
-                        } else {
-                            needToAddPref = false;
-                        }
-                    } else {
-                        if (!needToAddPref) {
+                if (version == VCard::v2_1) {
+                    if (i.key().toLower() == QLatin1String("type")) {
+                        QStringList valueStringList = i.value();
+                        bool hasPreferred = false;
+                        if (valueStringList.contains(QStringLiteral("PREF"))) {
                             valueStringList.removeAll(QStringLiteral("PREF"));
+                            hasPreferred = true;
+                        }
+                        if (!valueStringList.isEmpty()) {
+                            addParameter(line, version, i.key(), 
valueStringList);
+                        }
+                        if (hasPreferred) {
+                            line.addParameter(QStringLiteral("PREF"), 
QString());
                         }
-                    }
-                    foundType = true;
-                }
-                if (!valueStringList.isEmpty()) {
-                    if (i.key().toLower() == QLatin1String("type")) {
-                        addParameter(line, version, i.key(), valueStringList);
                     } else {
-                        line.addParameter(i.key(), 
valueStringList.join(QStringLiteral(",")));
+                        line.addParameter(i.key(), 
i.value().join(QStringLiteral(",")));
                     }
-                }
-            }
-            if (!foundType && needToAddPref) {
-                if (version == VCard::v2_1) {
-                    line.addParameter(QStringLiteral("PREF"), QString());
                 } else {
-                    line.addParameter(QStringLiteral("TYPE"), 
QStringLiteral("PREF"));
+                    line.addParameter(i.key(), 
i.value().join(QStringLiteral(",")));
                 }
             }
             card.addLine(line);
@@ -421,7 +409,7 @@
         }
 
         // REV
-        card.addLine(VCardLine(QStringLiteral("REV"), 
createDateTime((*addrIt).revision())));
+        card.addLine(VCardLine(QStringLiteral("REV"), 
createDateTime((*addrIt).revision(), version)));
 
         // ROLE
         VCardLine roleLine(QStringLiteral("ROLE"), (*addrIt).role());
@@ -451,12 +439,16 @@
 
             QMap<QString, PhoneNumber::TypeFlag>::ConstIterator typeIt;
             QMap<QString, PhoneNumber::TypeFlag>::ConstIterator 
typeEnd(mPhoneTypeMap.constEnd());
+            QStringList lst;
             for (typeIt = mPhoneTypeMap.constBegin(); typeIt != typeEnd; 
++typeIt) {
                 if (typeIt.value() & (*phoneIt).type()) {
-                    addParameter(line, version, QStringLiteral("TYPE"), 
QStringList() << typeIt.key());
+                    lst << typeIt.key();
+
                 }
             }
-
+            if (!lst.isEmpty()) {
+                addParameter(line, version, QStringLiteral("TYPE"), lst);
+            }
             card.addLine(line);
         }
 
@@ -490,7 +482,6 @@
         card.addLine(VCardLine(QStringLiteral("UID"), (*addrIt).uid()));
 
         // URL
-        card.addLine(VCardLine(QStringLiteral("URL"), (*addrIt).url().url()));
         Q_FOREACH (const ResourceLocatorUrl &url, (*addrIt).extraUrlList()) {
             VCardLine line(QStringLiteral("URL"), url.url());
             QMapIterator<QString, QStringList> i(url.parameters());
@@ -612,7 +603,7 @@
                     const QDate date = QDate::fromString(value, Qt::ISODate);
                     QDateTime dt = QDateTime(date);
                     dt.setTime(QTime());
-                    card.addLine(VCardLine(QStringLiteral("ANNIVERSARY"), 
createDateTime(dt)));
+                    card.addLine(VCardLine(QStringLiteral("ANNIVERSARY"), 
createDateTime(dt, version)));
                 }
             } else {
                 VCardLine line(identifier, value);
@@ -1000,7 +991,7 @@
                         type |= mPhoneTypeMap[(*it).toUpper()];
                         foundType = true;
                     }
-                    phone.setType( foundType ? type : PhoneNumber::Undefined);
+                    phone.setType(foundType ? type : PhoneNumber::Undefined);
 
                     addr.insertPhoneNumber(phone);
                 }
@@ -1037,12 +1028,7 @@
                     ResourceLocatorUrl resourceLocatorUrl;
                     resourceLocatorUrl.setUrl(url);
                     resourceLocatorUrl.setParameters((*lineIt).parameterMap());
-
-                    if (addr.url().url().isEmpty()) {
-                        addr.setUrl(resourceLocatorUrl);
-                    } else {
-                        addr.insertExtraUrl(resourceLocatorUrl);
-                    }
+                    addr.insertExtraUrl(resourceLocatorUrl);
                 }
                 // SOURCE
                 else if (identifier == QLatin1String("source")) {
@@ -1061,6 +1047,7 @@
                     addr.insertRelationShip(related);
                 }
                 // X-
+                //TODO import X-GENDER
                 else if (identifier.startsWith(QLatin1String("x-"))) {
                     QString ident = (*lineIt).identifier();
                     //X-Evolution
@@ -1173,25 +1160,41 @@
     return dateTime;
 }
 
-QString VCardTool::createDateTime(const QDateTime &dateTime) const
+QString VCardTool::createDateTime(const QDateTime &dateTime, VCard::Version 
version) const
 {
     QString str;
+    if (version == VCard::v4_0) {
+        if (dateTime.date().isValid()) {
+            str.sprintf("%4d%02d%02d", dateTime.date().year(), 
dateTime.date().month(),
+                        dateTime.date().day());
+            if (dateTime.time().isValid()) {
+                QString tmp;
+                tmp.sprintf("T%02d%02d%02d", dateTime.time().hour(), 
dateTime.time().minute(),
+                            dateTime.time().second());
+                str += tmp;
+
+                if (dateTime.timeSpec() == Qt::UTC) {
+                    str += QLatin1Char('Z');
+                }
+            }
+        }
 
-    if (dateTime.date().isValid()) {
-        str.sprintf("%4d-%02d-%02d", dateTime.date().year(), 
dateTime.date().month(),
-                    dateTime.date().day());
-        if (dateTime.time().isValid()) {
-            QString tmp;
-            tmp.sprintf("T%02d:%02d:%02d", dateTime.time().hour(), 
dateTime.time().minute(),
-                        dateTime.time().second());
-            str += tmp;
+    } else {
+        if (dateTime.date().isValid()) {
+            str.sprintf("%4d-%02d-%02d", dateTime.date().year(), 
dateTime.date().month(),
+                        dateTime.date().day());
+            if (dateTime.time().isValid()) {
+                QString tmp;
+                tmp.sprintf("T%02d:%02d:%02d", dateTime.time().hour(), 
dateTime.time().minute(),
+                            dateTime.time().second());
+                str += tmp;
 
-            if (dateTime.timeSpec() == Qt::UTC) {
-                str += QLatin1Char('Z');
+                if (dateTime.timeSpec() == Qt::UTC) {
+                    str += QLatin1Char('Z');
+                }
             }
         }
     }
-
     return str;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kcontacts-15.12.3/src/vcardtool.h 
new/kcontacts-16.04.1/src/vcardtool.h
--- old/kcontacts-15.12.3/src/vcardtool.h       2015-12-24 16:30:34.000000000 
+0100
+++ new/kcontacts-16.04.1/src/vcardtool.h       2016-04-26 22:16:55.000000000 
+0200
@@ -58,7 +58,6 @@
      */
     Addressee::List parseVCards(const QByteArray &vcard) const;
 
-
 private:
 
     QByteArray createVCards(const Addressee::List &list,
@@ -71,7 +70,7 @@
     QStringList splitString(QChar sep, const QString &value) const;
 
     QDateTime parseDateTime(const QString &str) const;
-    QString createDateTime(const QDateTime &dateTime) const;
+    QString createDateTime(const QDateTime &dateTime, VCard::Version version) 
const;
 
     Picture parsePicture(const VCardLine &line) const;
     VCardLine createPicture(const QString &identifier, const Picture &pic, 
VCard::Version version) const;


Reply via email to