Hello community, here is the log from the commit of package kpeople5 for openSUSE:Factory checked in at 2015-04-13 20:28:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kpeople5 (Old) and /work/SRC/openSUSE:Factory/.kpeople5.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kpeople5" Changes: -------- --- /work/SRC/openSUSE:Factory/kpeople5/kpeople5.changes 2015-03-18 13:05:14.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.kpeople5.new/kpeople5.changes 2015-04-13 20:28:45.000000000 +0200 @@ -1,0 +2,10 @@ +Sat Apr 4 14:41:07 UTC 2015 - hrvoje.sen...@gmail.com + +- Update to 5.9.0 + * Allow extending action metadata by using predefined types + * Fix model not being properly updated after removing a contact + from Person + * For more details please see: + https://www.kde.org/announcements/kde-frameworks-5.9.0.php + +------------------------------------------------------------------- Old: ---- kpeople-5.8.0.tar.xz New: ---- kpeople-5.9.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kpeople5.spec ++++++ --- /var/tmp/diff_new_pack.teFTo2/_old 2015-04-13 20:28:45.000000000 +0200 +++ /var/tmp/diff_new_pack.teFTo2/_new 2015-04-13 20:28:45.000000000 +0200 @@ -16,26 +16,29 @@ # +%bcond_without lang %define rname kpeople -%define _tar_path 5.8 +%define _tar_path 5.9 Name: kpeople5 -Version: %{_tar_path}.0 +Version: 5.9.0 Release: 0 %define kf5_version %{version} -BuildRequires: extra-cmake-modules >= 1.8.0 -BuildRequires: kcoreaddons-devel >= %{kf5_version} +BuildRequires: extra-cmake-modules >= %{_tar_path} +BuildRequires: kcoreaddons-devel >= %{_tar_path} BuildRequires: kf5-filesystem -BuildRequires: ki18n-devel >= %{kf5_version} -BuildRequires: kitemviews-devel >= %{kf5_version} -BuildRequires: kservice-devel >= %{kf5_version} -BuildRequires: kwidgetsaddons-devel >= %{kf5_version} +BuildRequires: ki18n-devel >= %{_tar_path} +BuildRequires: kitemviews-devel >= %{_tar_path} +BuildRequires: kservice-devel >= %{_tar_path} +BuildRequires: kwidgetsaddons-devel >= %{_tar_path} BuildRequires: pkgconfig(Qt5DBus) >= 5.2.0 BuildRequires: pkgconfig(Qt5Gui) >= 5.2.0 BuildRequires: pkgconfig(Qt5Qml) >= 5.2.0 BuildRequires: pkgconfig(Qt5Sql) >= 5.2.0 BuildRequires: pkgconfig(Qt5Test) >= 5.2.0 BuildRequires: pkgconfig(Qt5Widgets) >= 5.2.0 +%if %{with lang} Recommends: %{name}-lang +%endif Summary: Provides access to all contacts and the people who hold them License: LGPL-2.1+ Group: Development/Libraries/KDE @@ -76,13 +79,17 @@ %install %kf5_makeinstall -C build - %find_lang libkpeople %{name}.lang +%if %{with lang} +%find_lang libkpeople %{name}.lang +%endif %post -p /sbin/ldconfig %postun -p /sbin/ldconfig +%if %{with lang} %files lang -f %{name}.lang +%endif %files %defattr(-,root,root) ++++++ kpeople-5.8.0.tar.xz -> kpeople-5.9.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpeople-5.8.0/CMakeLists.txt new/kpeople-5.9.0/CMakeLists.txt --- old/kpeople-5.8.0/CMakeLists.txt 2015-03-13 09:07:30.000000000 +0100 +++ new/kpeople-5.9.0/CMakeLists.txt 2015-04-04 14:11:09.000000000 +0200 @@ -2,11 +2,11 @@ project (KPeople) -find_package(ECM 1.8.0 REQUIRED NO_MODULE) +find_package(ECM 5.9.0 REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) -set(KF5_VERSION "5.8.0") # handled by release scripts -set(KF5_DEP_VERSION "5.8.0") # handled by release scripts +set(KF5_VERSION "5.9.0") # handled by release scripts +set(KF5_DEP_VERSION "5.9.0") # handled by release scripts set(REQUIRED_QT_VERSION 5.2.0) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpeople-5.8.0/autotests/fakecontactsource.cpp new/kpeople-5.9.0/autotests/fakecontactsource.cpp --- old/kpeople-5.8.0/autotests/fakecontactsource.cpp 2015-03-13 09:07:30.000000000 +0100 +++ new/kpeople-5.9.0/autotests/fakecontactsource.cpp 2015-04-04 14:11:09.000000000 +0200 @@ -62,6 +62,7 @@ FakeAllContactsMonitor::FakeAllContactsMonitor() { + emitInitialFetchComplete(true); } QMap<QString, KPeople::AbstractContact::Ptr> FakeAllContactsMonitor::contacts() @@ -79,7 +80,7 @@ { KPeople::AbstractContact::Ptr contact2(new FakeContact(QVariantMap { - { KPeople::AbstractContact::NameProperty, QStringLiteral("Person A") }, + { KPeople::AbstractContact::NameProperty, QStringLiteral("Contact 2") }, { KPeople::AbstractContact::EmailProperty, QStringLiteral("conta...@example.com") } })); contacts[QStringLiteral("fakesource://contact2")] = contact2; @@ -87,11 +88,19 @@ { KPeople::AbstractContact::Ptr contact3(new FakeContact(QVariantMap { - { KPeople::AbstractContact::NameProperty, QStringLiteral("Person A") }, + { KPeople::AbstractContact::NameProperty, QStringLiteral("Contact 3") }, { KPeople::AbstractContact::EmailProperty, QStringLiteral("conta...@example.com") } })); contacts[QStringLiteral("fakesource://contact3")] = contact3; } + + { + KPeople::AbstractContact::Ptr contact4(new FakeContact(QVariantMap { + { KPeople::AbstractContact::NameProperty, QStringLiteral("Contact 4") }, + { KPeople::AbstractContact::EmailProperty, QStringLiteral("conta...@example.com") } + })); + contacts[QStringLiteral("fakesource://contact4")] = contact4; + } } return contacts; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpeople-5.8.0/autotests/persondatatests.cpp new/kpeople-5.9.0/autotests/persondatatests.cpp --- old/kpeople-5.8.0/autotests/persondatatests.cpp 2015-03-13 09:07:30.000000000 +0100 +++ new/kpeople-5.9.0/autotests/persondatatests.cpp 2015-04-04 14:11:09.000000000 +0200 @@ -92,7 +92,7 @@ PersonData person(QStringLiteral("fakesource://contact2")); QCOMPARE(person.contactUris().size(), 2); - QCOMPARE(person.name(), QStringLiteral("Person A")); + QCOMPARE(person.name(), QStringLiteral("Contact 2")); QCOMPARE(person.allEmails().size(), 2); //convert to set as order is not important diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpeople-5.8.0/autotests/personsmodeltest.cpp new/kpeople-5.9.0/autotests/personsmodeltest.cpp --- old/kpeople-5.8.0/autotests/personsmodeltest.cpp 2015-03-13 09:07:30.000000000 +0100 +++ new/kpeople-5.9.0/autotests/personsmodeltest.cpp 2015-04-04 14:11:09.000000000 +0200 @@ -21,6 +21,7 @@ #include <QtTest> #include <QFile> +#include <QVariant> //private includes #include "personmanager_p.h" @@ -46,7 +47,6 @@ { // Called before the first testfunction is executed PersonManager::instance(QStringLiteral("/tmp/kpeople_test_db")); - PersonManager::instance()->mergeContacts(QStringList() << QStringLiteral("fakesource://contact2") << QStringLiteral("fakesource://contact3")); m_source = new FakeContactSource(0); //don't own. PersonPluginManager removes it on destruction QHash<QString, BasePersonsDataSource *> sources; @@ -54,6 +54,10 @@ PersonPluginManager::setDataSourcePlugins(sources); m_model = new KPeople::PersonsModel(this); + QSignalSpy modelInit(m_model, SIGNAL(modelInitialized(bool))); + + QTRY_COMPARE(modelInit.count(), 1); + QCOMPARE(modelInit.first().at(0).toBool(), true); } void PersonsModelTest::cleanupTestCase() @@ -64,13 +68,127 @@ void PersonsModelTest::loadModel() { + QCOMPARE(m_model->rowCount(), 4); + QCOMPARE(m_model->data(m_model->index(0)).toString(), QStringLiteral("Contact 1")); + QCOMPARE(m_model->data(m_model->index(1)).toString(), QStringLiteral("Contact 2")); + QCOMPARE(m_model->data(m_model->index(2)).toString(), QStringLiteral("Contact 3")); + QCOMPARE(m_model->data(m_model->index(3)).toString(), QStringLiteral("Contact 4")); + + m_source->changeProperty(AbstractContact::NameProperty, QStringLiteral("Contact A")); + + QCOMPARE(m_model->rowCount(), 4); + QCOMPARE(m_model->data(m_model->index(0)).toString(), QStringLiteral("Contact A")); + QCOMPARE(m_model->data(m_model->index(1)).toString(), QStringLiteral("Contact 2")); + QCOMPARE(m_model->data(m_model->index(2)).toString(), QStringLiteral("Contact 3")); + QCOMPARE(m_model->data(m_model->index(3)).toString(), QStringLiteral("Contact 4")); +} + +void PersonsModelTest::mergeContacts() +{ + QStringList uris{QStringLiteral("fakesource://contact1"), QStringLiteral("fakesource://contact2")}; + QSignalSpy modelRowsInsert(m_model, SIGNAL(rowsInserted(QModelIndex,int,int))); + + QCOMPARE(m_model->rowCount(), 4); + QString newUri = KPeople::mergeContacts(uris); + QCOMPARE(newUri, QStringLiteral("kpeople://1")); + + // TODO: replace with actual model signals spying + QTest::qWait(2000); //give it a bit of time to update the model + QCOMPARE(m_model->rowCount(), 3); + QCOMPARE(m_model->rowCount(m_model->indexForPersonUri(newUri)), 2); + + // There needs to be 2 rows inserted - one for the new Person + // and one for the new contact added to it (the other contact + // is already a child of the person; merging just takes all + // contacts from one person and adds them to the other) + QCOMPARE(modelRowsInsert.count(), 2); + // The first inserted Person must have invalid parent index + QCOMPARE(modelRowsInsert.first().at(0).value<QModelIndex>(), QModelIndex()); + // Second inserted row, the Contact, must have the Person index as parent + QCOMPARE(modelRowsInsert.at(1).at(0).value<QModelIndex>(), m_model->indexForPersonUri(newUri)); + + modelRowsInsert.clear(); + + QStringList uris2{QStringLiteral("fakesource://contact3"), newUri}; + QString newUri2 = KPeople::mergeContacts(uris2); + QCOMPARE(newUri2, QStringLiteral("kpeople://1")); + + QTest::qWait(2000); + QCOMPARE(m_model->rowCount(), 2); - QCOMPARE(m_model->data(m_model->index(0)).toString(), QStringLiteral("Person A")); - QCOMPARE(m_model->data(m_model->index(1)).toString(), QStringLiteral("Contact 1")); + QCOMPARE(m_model->rowCount(m_model->indexForPersonUri(newUri2)), 3); + QCOMPARE(modelRowsInsert.count(), 1); + QCOMPARE(modelRowsInsert.first().at(0).value<QModelIndex>(), m_model->indexForPersonUri(newUri)); +} - m_source->changeProperty(AbstractContact::NameProperty, QStringLiteral("Contact 2")); +void PersonsModelTest::gettersTests() +{ + // Find the index for "kpeople://1" using the QAIModel method + QModelIndexList indexList = m_model->match(m_model->index(0,0,QModelIndex()), KPeople::PersonsModel::PersonUriRole, QVariant(QStringLiteral("kpeople://1")), 1); + QModelIndex personIndex = indexList.first(); + + // Now get the index using our method + QModelIndex indexForPerson = m_model->indexForPersonUri(QStringLiteral("kpeople://1")); + + // Now compare + QCOMPARE(personIndex, indexForPerson); + + // TODO: also test the get() method? +} + +void PersonsModelTest::unmergeContacts() +{ + QModelIndex personIndex = m_model->indexForPersonUri(QStringLiteral("kpeople://1")); + QSignalSpy modelRowsInsert(m_model, SIGNAL(rowsInserted(QModelIndex,int,int))); + QSignalSpy modelRowsRemove(m_model, SIGNAL(rowsRemoved(QModelIndex,int,int))); QCOMPARE(m_model->rowCount(), 2); - QCOMPARE(m_model->data(m_model->index(0)).toString(), QStringLiteral("Person A")); - QCOMPARE(m_model->data(m_model->index(1)).toString(), QStringLiteral("Contact 2")); + QCOMPARE(m_model->rowCount(personIndex), 3); + + KPeople::unmergeContact(QStringLiteral("fakesource://contact3")); + QTest::qWait(2000); + + QCOMPARE(m_model->rowCount(), 3); + QCOMPARE(m_model->rowCount(personIndex), 2); + + // The unmerged Contact is turned into new Person (the fake Person where Person == Contact) + // There must be 1 insertion and the parent must be invalid index + QCOMPARE(modelRowsInsert.count(), 1); + QCOMPARE(modelRowsInsert.first().at(0).value<QModelIndex>(), QModelIndex()); + + // Similarily, there must be one row removed and the parent must be + // the old Person index + QCOMPARE(modelRowsRemove.count(), 1); + QCOMPARE(modelRowsRemove.first().at(0).value<QModelIndex>(), personIndex); + + modelRowsInsert.clear(); + modelRowsRemove.clear(); + + KPeople::unmergeContact(QStringLiteral("kpeople://1")); + QTest::qWait(2000); + QCOMPARE(m_model->rowCount(), 4); + // Check that the person is gone from the model + QCOMPARE(m_model->indexForPersonUri(QStringLiteral("kpeople://1")), QModelIndex()); + + QCOMPARE(modelRowsInsert.count(), 2); + QCOMPARE(modelRowsInsert.first().at(0).value<QModelIndex>(), QModelIndex()); + QCOMPARE(modelRowsInsert.at(1).at(0).value<QModelIndex>(), QModelIndex()); + + // There must be exactly 3 rows removed when unmerging a Person + // with 2 contacts - first the subcontacts are removed and then + // the parent Person itself + QCOMPARE(modelRowsRemove.count(), 3); + // The first two Contacts must have parent the Person index + // and both should have 0 0 as the "first last" args of removeRows + QCOMPARE(modelRowsRemove.first().at(0).value<QModelIndex>(), personIndex); + QCOMPARE(modelRowsRemove.first().at(1).toInt(), 0); + QCOMPARE(modelRowsRemove.first().at(2).toInt(), 0); + + QCOMPARE(modelRowsRemove.at(1).at(0).value<QModelIndex>(), personIndex); + QCOMPARE(modelRowsRemove.at(1).at(1).toInt(), 0); + QCOMPARE(modelRowsRemove.at(1).at(2).toInt(), 0); + + // The parent Person should have just invalid index as parent + // (and we don't care about the position) + QCOMPARE(modelRowsRemove.at(2).at(0).value<QModelIndex>(), QModelIndex()); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpeople-5.8.0/autotests/personsmodeltest.h new/kpeople-5.9.0/autotests/personsmodeltest.h --- old/kpeople-5.8.0/autotests/personsmodeltest.h 2015-03-13 09:07:30.000000000 +0100 +++ new/kpeople-5.9.0/autotests/personsmodeltest.h 2015-04-04 14:11:09.000000000 +0200 @@ -33,6 +33,9 @@ void cleanupTestCase(); void loadModel(); + void mergeContacts(); + void gettersTests(); + void unmergeContacts(); private: FakeContactSource *m_source; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpeople-5.8.0/po/de/libkpeople.po new/kpeople-5.9.0/po/de/libkpeople.po --- old/kpeople-5.8.0/po/de/libkpeople.po 2015-03-13 09:07:30.000000000 +0100 +++ new/kpeople-5.9.0/po/de/libkpeople.po 2015-04-04 14:11:09.000000000 +0200 @@ -7,7 +7,7 @@ "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2015-02-27 09:45+0000\n" -"PO-Revision-Date: 2015-01-13 19:31+0100\n" +"PO-Revision-Date: 2015-03-09 21:35+0100\n" "Last-Translator: Burkhard Lück <lu...@hube-lueck.de>\n" "Language-Team: German <kde-i18n...@kde.org>\n" "Language: de\n" @@ -18,15 +18,11 @@ "X-Generator: Lokalize 1.5\n" #: match.cpp:52 -#, fuzzy -#| msgid "Name" msgctxt "@title:column" msgid "Name" msgstr "Name" #: match.cpp:55 -#, fuzzy -#| msgid "E-mail" msgctxt "@title:column" msgid "E-mail" msgstr "E-Mail" @@ -56,8 +52,6 @@ msgstr "Avatar" #: widgets/plugins/emaildetailswidget.cpp:50 -#, fuzzy -#| msgid "E-mail" msgctxt "E-mail field label" msgid "E-mail" msgstr "E-Mail" @@ -71,8 +65,6 @@ msgstr "Mit ausgewählte Kontakten zusammenführen" #: widgets/plugins/phonedetailswidget.cpp:38 -#, fuzzy -#| msgid "Phone" msgctxt "Phone details title" msgid "Phone" msgstr "Telefon" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpeople-5.8.0/po/el/libkpeople.po new/kpeople-5.9.0/po/el/libkpeople.po --- old/kpeople-5.8.0/po/el/libkpeople.po 2015-03-13 09:07:30.000000000 +0100 +++ new/kpeople-5.9.0/po/el/libkpeople.po 2015-04-04 14:11:09.000000000 +0200 @@ -24,7 +24,6 @@ msgstr "Όνομα" #: match.cpp:55 -#| msgid "Email" msgctxt "@title:column" msgid "E-mail" msgstr "E-mail" @@ -54,7 +53,6 @@ msgstr "Εικόνα" #: widgets/plugins/emaildetailswidget.cpp:50 -#| msgid "Email" msgctxt "E-mail field label" msgid "E-mail" msgstr "E-mail" @@ -68,7 +66,6 @@ msgstr "Συγχώνευση με επιλεγμένες επαφές" #: widgets/plugins/phonedetailswidget.cpp:38 -#| msgid "Phone" msgctxt "Phone details title" msgid "Phone" msgstr "Τηλέφωνο" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpeople-5.8.0/po/en_GB/libkpeople.po new/kpeople-5.9.0/po/en_GB/libkpeople.po --- old/kpeople-5.8.0/po/en_GB/libkpeople.po 1970-01-01 01:00:00.000000000 +0100 +++ new/kpeople-5.9.0/po/en_GB/libkpeople.po 2015-04-04 14:11:09.000000000 +0200 @@ -0,0 +1,70 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# , 2015. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2015-02-27 09:45+0000\n" +"PO-Revision-Date: 2015-03-14 14:49+0000\n" +"Last-Translator: \n" +"Language-Team: British English <kde-l10n-en...@kde.org>\n" +"Language: en_GB\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 1.5\n" + +#: match.cpp:52 +msgctxt "@title:column" +msgid "Name" +msgstr "Name" + +#: match.cpp:55 +msgctxt "@title:column" +msgid "E-mail" +msgstr "E-mail" + +#: widgets/mergedelegate.cpp:99 +msgctxt "reasons join" +msgid ", " +msgstr ", " + +#: widgets/mergedelegate.cpp:99 +#, kde-format +msgctxt "name: merge reasons" +msgid "%1: %2" +msgstr "%1: %2" + +#: widgets/mergedialog.cpp:64 +msgid "Duplicates Manager" +msgstr "Duplicates Manager" + +#: widgets/mergedialog.cpp:73 +msgid "Select contacts to be merged" +msgstr "Select contacts to be merged" + +#. i18n: ectx: property (text), widget (QLabel, avatarPixmapLabel) +#: widgets/person-details-presentation.ui:43 +msgid "Avatar" +msgstr "Avatar" + +#: widgets/plugins/emaildetailswidget.cpp:50 +msgctxt "E-mail field label" +msgid "E-mail" +msgstr "E-mail" + +#: widgets/plugins/mergecontactswidget.cpp:50 +msgid "Show Merge Suggestions..." +msgstr "Show Merge Suggestions..." + +#: widgets/plugins/mergecontactswidget.cpp:88 +msgid "Merge with Selected Contacts" +msgstr "Merge with Selected Contacts" + +#: widgets/plugins/phonedetailswidget.cpp:38 +msgctxt "Phone details title" +msgid "Phone" +msgstr "Phone" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpeople-5.8.0/po/gl/libkpeople.po new/kpeople-5.9.0/po/gl/libkpeople.po --- old/kpeople-5.8.0/po/gl/libkpeople.po 1970-01-01 01:00:00.000000000 +0100 +++ new/kpeople-5.9.0/po/gl/libkpeople.po 2015-04-04 14:11:09.000000000 +0200 @@ -0,0 +1,70 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Adrián Chaves Fernández <adriyeticha...@gmail.com>, 2015. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2015-02-27 09:45+0000\n" +"PO-Revision-Date: 2015-03-14 07:28+0100\n" +"Last-Translator: Adrián Chaves Fernández <adriyeticha...@gmail.com>\n" +"Language-Team: Galician <kde-i18n-...@kde.org>\n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 1.5\n" + +#: match.cpp:52 +msgctxt "@title:column" +msgid "Name" +msgstr "Nome" + +#: match.cpp:55 +msgctxt "@title:column" +msgid "E-mail" +msgstr "Correo electrónico" + +#: widgets/mergedelegate.cpp:99 +msgctxt "reasons join" +msgid ", " +msgstr ", " + +#: widgets/mergedelegate.cpp:99 +#, kde-format +msgctxt "name: merge reasons" +msgid "%1: %2" +msgstr "%1: %2" + +#: widgets/mergedialog.cpp:64 +msgid "Duplicates Manager" +msgstr "Xestor de duplicados" + +#: widgets/mergedialog.cpp:73 +msgid "Select contacts to be merged" +msgstr "Seleccione contactos para fusionar" + +#. i18n: ectx: property (text), widget (QLabel, avatarPixmapLabel) +#: widgets/person-details-presentation.ui:43 +msgid "Avatar" +msgstr "Avatar" + +#: widgets/plugins/emaildetailswidget.cpp:50 +msgctxt "E-mail field label" +msgid "E-mail" +msgstr "Correo electrónico" + +#: widgets/plugins/mergecontactswidget.cpp:50 +msgid "Show Merge Suggestions..." +msgstr "Mostras as suxestións de fusión…" + +#: widgets/plugins/mergecontactswidget.cpp:88 +msgid "Merge with Selected Contacts" +msgstr "Fusionar cos contactos seleccionados" + +#: widgets/plugins/phonedetailswidget.cpp:38 +msgctxt "Phone details title" +msgid "Phone" +msgstr "Teléfono" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpeople-5.8.0/po/it/libkpeople.po new/kpeople-5.9.0/po/it/libkpeople.po --- old/kpeople-5.8.0/po/it/libkpeople.po 1970-01-01 01:00:00.000000000 +0100 +++ new/kpeople-5.9.0/po/it/libkpeople.po 2015-04-04 14:11:09.000000000 +0200 @@ -0,0 +1,69 @@ +# translation of libkpeople.po to Italian +# Vincenzo Reale <smart2...@baslug.org>, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: libkpeople\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2015-02-27 09:45+0000\n" +"PO-Revision-Date: 2015-03-15 13:53+0100\n" +"Last-Translator: Vincenzo Reale <smart2...@baslug.org>\n" +"Language-Team: Italian <kde-i18n...@kde.org>\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 1.5\n" + +#: match.cpp:52 +msgctxt "@title:column" +msgid "Name" +msgstr "Nome" + +#: match.cpp:55 +msgctxt "@title:column" +msgid "E-mail" +msgstr "Posta elettronica" + +#: widgets/mergedelegate.cpp:99 +msgctxt "reasons join" +msgid ", " +msgstr ", " + +#: widgets/mergedelegate.cpp:99 +#, kde-format +msgctxt "name: merge reasons" +msgid "%1: %2" +msgstr "%1: %2" + +#: widgets/mergedialog.cpp:64 +msgid "Duplicates Manager" +msgstr "Gestore dei duplicati" + +#: widgets/mergedialog.cpp:73 +msgid "Select contacts to be merged" +msgstr "Seleziona i contatti da unire" + +#. i18n: ectx: property (text), widget (QLabel, avatarPixmapLabel) +#: widgets/person-details-presentation.ui:43 +msgid "Avatar" +msgstr "Immagine" + +#: widgets/plugins/emaildetailswidget.cpp:50 +msgctxt "E-mail field label" +msgid "E-mail" +msgstr "Posta elettronica" + +#: widgets/plugins/mergecontactswidget.cpp:50 +msgid "Show Merge Suggestions..." +msgstr "Mostra suggerimenti di unione..." + +#: widgets/plugins/mergecontactswidget.cpp:88 +msgid "Merge with Selected Contacts" +msgstr "Unisci con i contatti selezionati" + +#: widgets/plugins/phonedetailswidget.cpp:38 +msgctxt "Phone details title" +msgid "Phone" +msgstr "Telefono" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpeople-5.8.0/po/sl/libkpeople.po new/kpeople-5.9.0/po/sl/libkpeople.po --- old/kpeople-5.8.0/po/sl/libkpeople.po 2015-03-13 09:07:30.000000000 +0100 +++ new/kpeople-5.9.0/po/sl/libkpeople.po 2015-04-04 14:11:09.000000000 +0200 @@ -8,7 +8,7 @@ "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2015-02-27 09:45+0000\n" -"PO-Revision-Date: 2015-01-17 11:48+0100\n" +"PO-Revision-Date: 2015-04-03 10:06+0200\n" "Last-Translator: Andrej Mernik <andr...@ubuntu.si>\n" "Language-Team: Slovenian <lugos-...@lugos.si>\n" "Language: sl\n" @@ -20,15 +20,11 @@ "X-Generator: Lokalize 1.5\n" #: match.cpp:52 -#, fuzzy -#| msgid "Name" msgctxt "@title:column" msgid "Name" msgstr "Ime" #: match.cpp:55 -#, fuzzy -#| msgid "E-mail" msgctxt "@title:column" msgid "E-mail" msgstr "E-pošta" @@ -58,8 +54,6 @@ msgstr "Podoba" #: widgets/plugins/emaildetailswidget.cpp:50 -#, fuzzy -#| msgid "E-mail" msgctxt "E-mail field label" msgid "E-mail" msgstr "E-pošta" @@ -73,8 +67,6 @@ msgstr "Združi z izbranimi stiki" #: widgets/plugins/phonedetailswidget.cpp:38 -#, fuzzy -#| msgid "Phone" msgctxt "Phone details title" msgid "Phone" msgstr "Telefon" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpeople-5.8.0/po/sr/libkpeople.po new/kpeople-5.9.0/po/sr/libkpeople.po --- old/kpeople-5.8.0/po/sr/libkpeople.po 1970-01-01 01:00:00.000000000 +0100 +++ new/kpeople-5.9.0/po/sr/libkpeople.po 2015-04-04 14:11:09.000000000 +0200 @@ -0,0 +1,72 @@ +# Translation of libkpeople.po into Serbian. +# Chusslove Illich <caslav.i...@gmx.net>, 2015. +msgid "" +msgstr "" +"Project-Id-Version: libkpeople\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2015-02-27 09:45+0000\n" +"PO-Revision-Date: 2015-03-07 13:10+0100\n" +"Last-Translator: Chusslove Illich <caslav.i...@gmx.net>\n" +"Language-Team: Serbian <kde-i18n...@kde.org>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: match.cpp:52 +msgctxt "@title:column" +msgid "Name" +msgstr "име" + +#: match.cpp:55 +msgctxt "@title:column" +msgid "E-mail" +msgstr "е‑пошта" + +#: widgets/mergedelegate.cpp:99 +msgctxt "reasons join" +msgid ", " +msgstr ", " + +#: widgets/mergedelegate.cpp:99 +#, kde-format +msgctxt "name: merge reasons" +msgid "%1: %2" +msgstr "%1: %2" + +# >> @title:window +#: widgets/mergedialog.cpp:64 +msgid "Duplicates Manager" +msgstr "Менаџер дупликата" + +#: widgets/mergedialog.cpp:73 +msgid "Select contacts to be merged" +msgstr "Изаберите контакте за стапање" + +#. i18n: ectx: property (text), widget (QLabel, avatarPixmapLabel) +#: widgets/person-details-presentation.ui:43 +msgid "Avatar" +msgstr "Аватар" + +#: widgets/plugins/emaildetailswidget.cpp:50 +msgctxt "E-mail field label" +msgid "E-mail" +msgstr "Е‑пошта" + +#: widgets/plugins/mergecontactswidget.cpp:50 +msgid "Show Merge Suggestions..." +msgstr "Предлози стапања..." + +#: widgets/plugins/mergecontactswidget.cpp:88 +msgid "Merge with Selected Contacts" +msgstr "Стопи са изабраним контактима" + +#: widgets/plugins/phonedetailswidget.cpp:38 +msgctxt "Phone details title" +msgid "Phone" +msgstr "Телефон" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpeople-5.8.0/po/sr@ijekavian/libkpeople.po new/kpeople-5.9.0/po/sr@ijekavian/libkpeople.po --- old/kpeople-5.8.0/po/sr@ijekavian/libkpeople.po 1970-01-01 01:00:00.000000000 +0100 +++ new/kpeople-5.9.0/po/sr@ijekavian/libkpeople.po 2015-04-04 14:11:09.000000000 +0200 @@ -0,0 +1,72 @@ +# Translation of libkpeople.po into Serbian. +# Chusslove Illich <caslav.i...@gmx.net>, 2015. +msgid "" +msgstr "" +"Project-Id-Version: libkpeople\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2015-02-27 09:45+0000\n" +"PO-Revision-Date: 2015-03-07 13:10+0100\n" +"Last-Translator: Chusslove Illich <caslav.i...@gmx.net>\n" +"Language-Team: Serbian <kde-i18n...@kde.org>\n" +"Language: sr@ijekavian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: match.cpp:52 +msgctxt "@title:column" +msgid "Name" +msgstr "име" + +#: match.cpp:55 +msgctxt "@title:column" +msgid "E-mail" +msgstr "е‑пошта" + +#: widgets/mergedelegate.cpp:99 +msgctxt "reasons join" +msgid ", " +msgstr ", " + +#: widgets/mergedelegate.cpp:99 +#, kde-format +msgctxt "name: merge reasons" +msgid "%1: %2" +msgstr "%1: %2" + +# >> @title:window +#: widgets/mergedialog.cpp:64 +msgid "Duplicates Manager" +msgstr "Менаџер дупликата" + +#: widgets/mergedialog.cpp:73 +msgid "Select contacts to be merged" +msgstr "Изаберите контакте за стапање" + +#. i18n: ectx: property (text), widget (QLabel, avatarPixmapLabel) +#: widgets/person-details-presentation.ui:43 +msgid "Avatar" +msgstr "Аватар" + +#: widgets/plugins/emaildetailswidget.cpp:50 +msgctxt "E-mail field label" +msgid "E-mail" +msgstr "Е‑пошта" + +#: widgets/plugins/mergecontactswidget.cpp:50 +msgid "Show Merge Suggestions..." +msgstr "Предлози стапања..." + +#: widgets/plugins/mergecontactswidget.cpp:88 +msgid "Merge with Selected Contacts" +msgstr "Стопи са изабраним контактима" + +#: widgets/plugins/phonedetailswidget.cpp:38 +msgctxt "Phone details title" +msgid "Phone" +msgstr "Телефон" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpeople-5.8.0/po/sr@ijekavianlatin/libkpeople.po new/kpeople-5.9.0/po/sr@ijekavianlatin/libkpeople.po --- old/kpeople-5.8.0/po/sr@ijekavianlatin/libkpeople.po 1970-01-01 01:00:00.000000000 +0100 +++ new/kpeople-5.9.0/po/sr@ijekavianlatin/libkpeople.po 2015-04-04 14:11:09.000000000 +0200 @@ -0,0 +1,72 @@ +# Translation of libkpeople.po into Serbian. +# Chusslove Illich <caslav.i...@gmx.net>, 2015. +msgid "" +msgstr "" +"Project-Id-Version: libkpeople\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2015-02-27 09:45+0000\n" +"PO-Revision-Date: 2015-03-07 13:10+0100\n" +"Last-Translator: Chusslove Illich <caslav.i...@gmx.net>\n" +"Language-Team: Serbian <kde-i18n...@kde.org>\n" +"Language: sr@ijekavianlatin\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: match.cpp:52 +msgctxt "@title:column" +msgid "Name" +msgstr "ime" + +#: match.cpp:55 +msgctxt "@title:column" +msgid "E-mail" +msgstr "e‑pošta" + +#: widgets/mergedelegate.cpp:99 +msgctxt "reasons join" +msgid ", " +msgstr ", " + +#: widgets/mergedelegate.cpp:99 +#, kde-format +msgctxt "name: merge reasons" +msgid "%1: %2" +msgstr "%1: %2" + +# >> @title:window +#: widgets/mergedialog.cpp:64 +msgid "Duplicates Manager" +msgstr "Menadžer duplikata" + +#: widgets/mergedialog.cpp:73 +msgid "Select contacts to be merged" +msgstr "Izaberite kontakte za stapanje" + +#. i18n: ectx: property (text), widget (QLabel, avatarPixmapLabel) +#: widgets/person-details-presentation.ui:43 +msgid "Avatar" +msgstr "Avatar" + +#: widgets/plugins/emaildetailswidget.cpp:50 +msgctxt "E-mail field label" +msgid "E-mail" +msgstr "E‑pošta" + +#: widgets/plugins/mergecontactswidget.cpp:50 +msgid "Show Merge Suggestions..." +msgstr "Predlozi stapanja..." + +#: widgets/plugins/mergecontactswidget.cpp:88 +msgid "Merge with Selected Contacts" +msgstr "Stopi sa izabranim kontaktima" + +#: widgets/plugins/phonedetailswidget.cpp:38 +msgctxt "Phone details title" +msgid "Phone" +msgstr "Telefon" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpeople-5.8.0/po/sr@latin/libkpeople.po new/kpeople-5.9.0/po/sr@latin/libkpeople.po --- old/kpeople-5.8.0/po/sr@latin/libkpeople.po 1970-01-01 01:00:00.000000000 +0100 +++ new/kpeople-5.9.0/po/sr@latin/libkpeople.po 2015-04-04 14:11:09.000000000 +0200 @@ -0,0 +1,72 @@ +# Translation of libkpeople.po into Serbian. +# Chusslove Illich <caslav.i...@gmx.net>, 2015. +msgid "" +msgstr "" +"Project-Id-Version: libkpeople\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2015-02-27 09:45+0000\n" +"PO-Revision-Date: 2015-03-07 13:10+0100\n" +"Last-Translator: Chusslove Illich <caslav.i...@gmx.net>\n" +"Language-Team: Serbian <kde-i18n...@kde.org>\n" +"Language: sr@latin\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" +"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: match.cpp:52 +msgctxt "@title:column" +msgid "Name" +msgstr "ime" + +#: match.cpp:55 +msgctxt "@title:column" +msgid "E-mail" +msgstr "e‑pošta" + +#: widgets/mergedelegate.cpp:99 +msgctxt "reasons join" +msgid ", " +msgstr ", " + +#: widgets/mergedelegate.cpp:99 +#, kde-format +msgctxt "name: merge reasons" +msgid "%1: %2" +msgstr "%1: %2" + +# >> @title:window +#: widgets/mergedialog.cpp:64 +msgid "Duplicates Manager" +msgstr "Menadžer duplikata" + +#: widgets/mergedialog.cpp:73 +msgid "Select contacts to be merged" +msgstr "Izaberite kontakte za stapanje" + +#. i18n: ectx: property (text), widget (QLabel, avatarPixmapLabel) +#: widgets/person-details-presentation.ui:43 +msgid "Avatar" +msgstr "Avatar" + +#: widgets/plugins/emaildetailswidget.cpp:50 +msgctxt "E-mail field label" +msgid "E-mail" +msgstr "E‑pošta" + +#: widgets/plugins/mergecontactswidget.cpp:50 +msgid "Show Merge Suggestions..." +msgstr "Predlozi stapanja..." + +#: widgets/plugins/mergecontactswidget.cpp:88 +msgid "Merge with Selected Contacts" +msgstr "Stopi sa izabranim kontaktima" + +#: widgets/plugins/phonedetailswidget.cpp:38 +msgctxt "Phone details title" +msgid "Phone" +msgstr "Telefon" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpeople-5.8.0/src/personsmodel.cpp new/kpeople-5.9.0/src/personsmodel.cpp --- old/kpeople-5.8.0/src/personsmodel.cpp 2015-03-13 09:07:30.000000000 +0100 +++ new/kpeople-5.9.0/src/personsmodel.cpp 2015-04-04 14:11:09.000000000 +0200 @@ -408,7 +408,11 @@ MetaContact &mc = metacontacts[personRow]; const AbstractContact::Ptr &contact = mc.contact(contactUri); + const int index = mc.contactUris().indexOf(contactUri); + + q->beginRemoveRows(personIndex[personUri], index, index); mc.removeContact(contactUri); + q->endRemoveRows(); contactToPersons.remove(contactUri); //if we don't want the person object anymore diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpeople-5.8.0/src/widgets/actions.h new/kpeople-5.9.0/src/widgets/actions.h --- old/kpeople-5.8.0/src/widgets/actions.h 2015-03-13 09:07:30.000000000 +0100 +++ new/kpeople-5.9.0/src/widgets/actions.h 2015-04-04 14:11:09.000000000 +0200 @@ -30,7 +30,23 @@ class PersonData; /** - * Returns a list of actions relevant to the specified @p contactUri + * Each action returned in the list can be one of these + * types, however the Type is not mandatory with the action + * + * The type should be set as QObject property "actionType" + */ +enum ActionType { + TextChatAction, + AudioCallAction, + VideoCallAction, + SendEmailAction, + SendFileAction, + OtherAction = 100 +}; + +/** + * Returns a list of actions relevant to the specified @p contactUri where + * each QAction will have @p parent passed as its parent QObject */ KPEOPLE_EXPORT QList<QAction *> actionsForPerson(const QString &contactUri, QObject *parent); };