Hello community, here is the log from the commit of package akonadi-server for openSUSE:Factory checked in at 2020-07-14 07:45:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/akonadi-server (Old) and /work/SRC/openSUSE:Factory/.akonadi-server.new.3060 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "akonadi-server" Tue Jul 14 07:45:31 2020 rev:72 rq:820113 version:20.04.3 Changes: -------- --- /work/SRC/openSUSE:Factory/akonadi-server/akonadi-server.changes 2020-06-14 18:17:39.239220157 +0200 +++ /work/SRC/openSUSE:Factory/.akonadi-server.new.3060/akonadi-server.changes 2020-07-14 07:46:01.279214593 +0200 @@ -1,0 +2,12 @@ +Thu Jul 9 20:08:16 UTC 2020 - Luca Beltrame <lbeltr...@kde.org> + +- Update to 20.04.3 + * New bugfix release + * For more details please see: + * https://kde.org/announcements/releases/2020-07-apps-update +- Changes since 20.04.2: + * Add .gitlab-ci.yml to run builds for PRs to stable branch + * Fix build + * Server: fix fetching of attributes with empty data + +------------------------------------------------------------------- Old: ---- akonadi-20.04.2.tar.xz akonadi-20.04.2.tar.xz.sig New: ---- akonadi-20.04.3.tar.xz akonadi-20.04.3.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ akonadi-server.spec ++++++ --- /var/tmp/diff_new_pack.H5fPrw/_old 2020-07-14 07:46:02.135217357 +0200 +++ /var/tmp/diff_new_pack.H5fPrw/_new 2020-07-14 07:46:02.135217357 +0200 @@ -22,7 +22,7 @@ %{!?_kapp_version: %define _kapp_version %(echo %{version}| awk -F. '{print $1"."$2}')} %bcond_without lang Name: akonadi-server -Version: 20.04.2 +Version: 20.04.3 Release: 0 Summary: PIM Storage Service License: LGPL-2.1-or-later ++++++ akonadi-20.04.2.tar.xz -> akonadi-20.04.3.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-20.04.2/.gitlab-ci.yml new/akonadi-20.04.3/.gitlab-ci.yml --- old/akonadi-20.04.2/.gitlab-ci.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/akonadi-20.04.3/.gitlab-ci.yml 2020-06-18 08:29:20.000000000 +0200 @@ -0,0 +1,4 @@ +include: + - https://invent.kde.org/sysadmin/ci-tooling/raw/master/invent/ci-before.yml + - https://invent.kde.org/sysadmin/ci-tooling/raw/master/invent/ci-applications-linux.yml + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-20.04.2/CMakeLists.txt new/akonadi-20.04.3/CMakeLists.txt --- old/akonadi-20.04.2/CMakeLists.txt 2020-06-09 02:43:40.000000000 +0200 +++ new/akonadi-20.04.3/CMakeLists.txt 2020-07-07 03:06:02.000000000 +0200 @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.5) -set(PIM_VERSION "5.14.2") +set(PIM_VERSION "5.14.3") project(Akonadi VERSION ${PIM_VERSION}) if (MSVC) @@ -44,7 +44,7 @@ include(AkonadiMacros) set(QT_REQUIRED_VERSION "5.12.0") -set(RELEASE_SERVICE_VERSION "20.04.2") +set(RELEASE_SERVICE_VERSION "20.04.3") set(AKONADI_FULL_VERSION "${PIM_VERSION} (${RELEASE_SERVICE_VERSION})") configure_file(akonadifull-version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/akonadifull-version.h @ONLY) @@ -105,7 +105,7 @@ find_package(KAccounts ${KAccounts_MINIMUM_VERSION}) set_package_properties(KAccounts PROPERTIES DESCRIPTION "KDE library for Accounts framework integration" - URL "https://cgit.kde.org/kaccounts-integration.git" + URL "https://invent.kde.org/network/kaccounts-integration" TYPE OPTIONAL ) if (${AccountsQt5_FOUND} AND ${KAccounts_FOUND}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-20.04.2/autotests/libs/asynctest.cpp new/akonadi-20.04.3/autotests/libs/asynctest.cpp --- old/akonadi-20.04.2/autotests/libs/asynctest.cpp 1970-01-01 01:00:00.000000000 +0100 +++ new/akonadi-20.04.3/autotests/libs/asynctest.cpp 2020-06-18 08:29:20.000000000 +0200 @@ -0,0 +1,140 @@ +/* + Copyright (c) 2020 Daniel Vrátil <dvra...@kde.org> + + This library is free software; you can redistribute it and/or modify it + under the terms of the GNU Library General Public License as published by + the Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + This library is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public + License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to the + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. +*/ + +#include "async.h" + +#include <QObject> +#include <QTest> +#include <QTimer> + +using namespace Akonadi::Async; + +class AsyncTest : public QObject +{ + Q_OBJECT +private Q_SLOTS: + void testSimpleTask() + { + Task<int> task; + QVERIFY(!task.isFinished()); + task.setResult(42); + QVERIFY(task.isFinished()); + QCOMPARE(task.result(), 42); + } + + void testSimpleTaskExec() + { + Task<int> task; + QTimer::singleShot(std::chrono::milliseconds{100}, [&task]() mutable { + task.setResult(42); + }); + task.wait(); + QVERIFY(task.isFinished()); + QCOMPARE(task.result(), 42); + } + + void testSimpleThen() + { + Task<int> task; + auto res = task.then([](int val) { return QString::number(val); }); + QVERIFY(!task.isFinished()); + QVERIFY(!res.isFinished()); + task.setResult(42); + QVERIFY(task.isFinished()); + QVERIFY(res.isFinished()); + QCOMPARE(res.result(), QStringLiteral("42")); + } + + void testTemporarySyncTask() + { + const auto func = []() { + Task<int> task; + task.setResult(42); + return task; + }; + + const auto res = func().then([](int val) { return QString::number(val); }); + QVERIFY(res.isFinished()); + QCOMPARE(res.result(), QStringLiteral("42")); + } + + void testTemporaryAsyncTask() + { + const auto func = []() { + Task<int> task; + QTimer::singleShot(std::chrono::milliseconds{100}, [task]() mutable { + task.setResult(42); + }); + return task; + }; + + const auto res = func().then([](int val) { return QString::number(val);} ); + QVERIFY(!res.isFinished()); + res.wait(); + QVERIFY(res.isFinished()); + QCOMPARE(res.result(), QStringLiteral("42")); + } + + void testSyncContinuationChain() + { + const auto f1 = [](int val) { return QString::number(val); }; + const auto f2 = [](const QString &val) { return val.toInt() * 2; }; + + Task<int> t; + auto task = t.then(f1).then(f2); + QVERIFY(!t.isFinished()); + QVERIFY(!task.isFinished()); + t.setResult(42); + QVERIFY(t.isFinished()); + QVERIFY(task.isFinished()); + QCOMPARE(task.result(), 84); + } + + void testAsyncContinuationChain() + { + const auto f1 = [](int val) { + Task<QString> task; + QTimer::singleShot(std::chrono::milliseconds{100}, [val, task]() mutable { task.setResult(QString::number(val)); }); + return task; + }; + const auto f2 = [](const QString &val) { + Task<int> task; + QTimer::singleShot(std::chrono::milliseconds{100}, [val, task]() mutable { task.setResult(val.toInt() * 2); }); + return task; + }; + + Task<int> task; + Task<QString> = task.then(f1); + Task<int> result = task.then(f1).then(f2); + QTimer::singleShot(std::chrono::milliseconds{100}, [task]() mutable { task.setResult(42); }); + QVERIFY(!task.isFinished()); + QVERIFY(!result.isFinished()); + task.wait(); + QVERIFY(task.isFinished()); + QVERIFY(!result.isFinished()); + result.wait(); + QVERIFY(result.isFinished()); + QCOMPARE(result.result(), 84); + } +}; + +QTEST_GUILESS_MAIN(AsyncTest) + +#include "asynctest.moc" + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-20.04.2/autotests/libs/itemfetchtest.cpp new/akonadi-20.04.3/autotests/libs/itemfetchtest.cpp --- old/akonadi-20.04.2/autotests/libs/itemfetchtest.cpp 2020-06-02 09:09:51.000000000 +0200 +++ new/akonadi-20.04.3/autotests/libs/itemfetchtest.cpp 2020-06-18 08:29:20.000000000 +0200 @@ -18,8 +18,8 @@ */ #include "itemfetchtest.h" -#include "collectionpathresolver.h" #include "testattribute.h" +#include "test_utils.h" #include <attributefactory.h> #include <itemcreatejob.h> @@ -43,18 +43,16 @@ void ItemFetchTest::testFetch() { - CollectionPathResolver *resolver = new CollectionPathResolver(QStringLiteral("res1"), this); - AKVERIFYEXEC(resolver); - int colId = resolver->collection(); + const int colId = collectionIdFromPath(QStringLiteral("res1")); + QVERIFY(colId > -1); // listing of an empty folder ItemFetchJob *job = new ItemFetchJob(Collection(colId), this); AKVERIFYEXEC(job); QVERIFY(job->items().isEmpty()); - resolver = new CollectionPathResolver(QStringLiteral("res1/foo"), this); - AKVERIFYEXEC(resolver); - int colId2 = resolver->collection(); + const int colId2 = collectionIdFromPath(QStringLiteral("res1/foo")); + QVERIFY(colId > -1); // listing of a non-empty folder job = new ItemFetchJob(Collection(colId2), this); @@ -186,9 +184,8 @@ QFETCH(bool, fetchSinglePayload); QFETCH(bool, fetchSingleAttr); - CollectionPathResolver *resolver = new CollectionPathResolver(QStringLiteral("res1/foo"), this); - AKVERIFYEXEC(resolver); - int colId = resolver->collection(); + int colId = collectionIdFromPath(QStringLiteral("res1/foo")); + QVERIFY(colId >= 0); Item item; item.setMimeType(QStringLiteral("application/octet-stream")); @@ -275,6 +272,49 @@ QCOMPARE(c2.remoteId(), QLatin1String("6")); const Collection c3 = c2.parentCollection(); QCOMPARE(c3, Collection::root()); +} + +void ItemFetchTest::testRetrievalOfAttributeWithEmptyBody() +{ + const auto colId = collectionIdFromPath(QStringLiteral("res1/foo")); + QVERIFY(colId > -1); + + auto testFetch = new ItemFetchJob(Collection(colId), this); + AKVERIFYEXEC(testFetch); + const auto initialCount = testFetch->items().count(); + Item item; + item.setMimeType(QStringLiteral("application/octet-stream")); + item.setPayload<QByteArray>("body data"); + auto attr = AttributeFactory::createAttribute("EMPTY"); + item.addAttribute(attr); + auto *create = new ItemCreateJob(item, Collection(colId), this); + AKVERIFYEXEC(create); + item = create->item(); + + // Direct fetch + auto *job = new ItemFetchJob(Item(item.id()), this); + job->fetchScope().fetchAllAttributes(); + job->fetchScope().fetchFullPayload(); + job->fetchScope().setFetchRemoteIdentification(true); + job->fetchScope().setIgnoreRetrievalErrors(true); + AKVERIFYEXEC(job); + + QCOMPARE(job->items().count(), 1); + const auto &fetched = job->items().at(0); + QCOMPARE(fetched.id(), item.id()); + QVERIFY(fetched.hasAttribute("EMPTY")); + QVERIFY(fetched.attribute("EMPTY")->serialized().isEmpty()); + + // Folder fetch + job = new ItemFetchJob(Collection(colId), this); + job->fetchScope().fetchAllAttributes(); + job->fetchScope().fetchFullPayload(); + job->fetchScope().setFetchRemoteIdentification(true); + job->fetchScope().setIgnoreRetrievalErrors(true); + AKVERIFYEXEC(job); + + QCOMPARE(job->items().count(), initialCount + 1); } + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-20.04.2/autotests/libs/itemfetchtest.h new/akonadi-20.04.3/autotests/libs/itemfetchtest.h --- old/akonadi-20.04.2/autotests/libs/itemfetchtest.h 2020-06-02 09:09:51.000000000 +0200 +++ new/akonadi-20.04.3/autotests/libs/itemfetchtest.h 2020-06-18 08:29:20.000000000 +0200 @@ -34,6 +34,7 @@ void testMultipartFetch(); void testRidFetch(); void testAncestorRetrieval(); + void testRetrievalOfAttributeWithEmptyBody(); }; #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-20.04.2/po/cs/libakonadi5.po new/akonadi-20.04.3/po/cs/libakonadi5.po --- old/akonadi-20.04.2/po/cs/libakonadi5.po 2020-06-09 02:43:39.000000000 +0200 +++ new/akonadi-20.04.3/po/cs/libakonadi5.po 2020-07-07 03:06:01.000000000 +0200 @@ -12,7 +12,7 @@ "PO-Revision-Date: 2020-06-01 20:01+0200\n" "Last-Translator: Vit Pelcak <v...@pelcak.org>\n" "Language-Team: Czech <kde-i18n-...@kde.org>\n" -"Language: en_US\n" +"Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-20.04.2/po/es/libakonadi5.po new/akonadi-20.04.3/po/es/libakonadi5.po --- old/akonadi-20.04.2/po/es/libakonadi5.po 2020-06-09 02:43:39.000000000 +0200 +++ new/akonadi-20.04.3/po/es/libakonadi5.po 2020-07-07 03:06:02.000000000 +0200 @@ -6,7 +6,7 @@ # Enrique Matias Sanchez (aka Quique) <cronop...@gmail.com>, 2007. # Santi <sa...@kde-es.org>, 2008. # Dario Andres Rodriguez <andresbajotie...@gmail.com>, 2008, 2009. -# Eloy Cuadra <ecua...@eloihr.net>, 2009, 2011, 2019. +# Eloy Cuadra <ecua...@eloihr.net>, 2009, 2011, 2019, %Y. # Cristina Yenyxe Gonzalez Garcia <the.blue.valky...@gmail.com>, 2009. # Adrián Martínez <sfx...@gmail.com>, 2009, 2010. # Cristina Yenyxe González García <the.blue.valky...@gmail.com>, 2010, 2011. @@ -16,7 +16,7 @@ "Project-Id-Version: libakonadi\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2020-02-21 03:16+0100\n" -"PO-Revision-Date: 2019-12-26 22:28+0100\n" +"PO-Revision-Date: 2020-06-20 21:34+0100\n" "Last-Translator: Eloy Cuadra <ecua...@eloihr.net>\n" "Language-Team: Spanish <kde-l10n...@kde.org>\n" "Language: es\n" @@ -2286,7 +2286,7 @@ #, kde-format msgctxt "@title:window" msgid "Rename Favorite" -msgstr "Cambiar el nombre del favorito" +msgstr "Cambiar nombre del favorito" #: widgets/standardactionmanager.cpp:271 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-20.04.2/po/pt/libakonadi5.po new/akonadi-20.04.3/po/pt/libakonadi5.po --- old/akonadi-20.04.2/po/pt/libakonadi5.po 2020-06-09 02:43:39.000000000 +0200 +++ new/akonadi-20.04.3/po/pt/libakonadi5.po 2020-07-07 03:06:02.000000000 +0200 @@ -2398,7 +2398,7 @@ #: widgets/subscriptiondialog.cpp:211 #, kde-format msgid "Unsubscribe" -msgstr "Cancelar Subscrição" +msgstr "Cancelar a Subscrição" #: widgets/tageditwidget.cpp:120 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-20.04.2/po/sr/akonadi_knut_resource.po new/akonadi-20.04.3/po/sr/akonadi_knut_resource.po --- old/akonadi-20.04.2/po/sr/akonadi_knut_resource.po 2020-06-09 02:43:39.000000000 +0200 +++ new/akonadi-20.04.3/po/sr/akonadi_knut_resource.po 2020-07-07 03:06:02.000000000 +0200 @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: akonadi_knut_resource\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2018-10-08 03:51+0200\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2019-05-20 03:13+0200\n" "PO-Revision-Date: 2011-08-20 23:55+0200\n" "Last-Translator: Chusslove Illich <caslav.i...@gmx.net>\n" "Language-Team: Serbian <kde-i18n...@kde.org>\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-20.04.2/po/sr/libakonadi5.po new/akonadi-20.04.3/po/sr/libakonadi5.po --- old/akonadi-20.04.2/po/sr/libakonadi5.po 2020-06-09 02:43:39.000000000 +0200 +++ new/akonadi-20.04.3/po/sr/libakonadi5.po 2020-07-07 03:06:02.000000000 +0200 @@ -4,8 +4,8 @@ msgid "" msgstr "" "Project-Id-Version: libakonadi5\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2019-04-16 03:34+0200\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2020-02-21 03:16+0100\n" "PO-Revision-Date: 2017-12-17 18:01+0100\n" "Last-Translator: Chusslove Illich <caslav.i...@gmx.net>\n" "Language-Team: Serbian <kde-i18n...@kde.org>\n" @@ -29,23 +29,33 @@ msgid "Your emails" msgstr "caslav.i...@gmx.net" -#: agentbase/agentbase.cpp:385 agentbase/preprocessorbase_p.cpp:42 +#: agentbase/accountsintegration.cpp:100 +#, kde-format +msgid "There is currently no account configured." +msgstr "" + +#: agentbase/accountsintegration.cpp:118 +#, kde-format +msgid "Accounts integration is not supported" +msgstr "" + +#: agentbase/agentbase.cpp:386 agentbase/preprocessorbase_p.cpp:42 #, kde-format msgid "Unable to register object at dbus: %1" msgstr "Не могу да региструјем објекат на д‑бусу: %1" -#: agentbase/agentbase.cpp:476 +#: agentbase/agentbase.cpp:477 #, kde-format msgctxt "Name and type of Akonadi resource" msgid "%1 of type %2" msgstr "%1 типа %2" -#: agentbase/agentbase.cpp:926 +#: agentbase/agentbase.cpp:927 #, kde-format msgid "Agent identifier" msgstr "Идентификатор агента" -#: agentbase/agentbase.cpp:933 +#: agentbase/agentbase.cpp:934 #, kde-format msgid "Akonadi Agent" msgstr "Аконадијев агент" @@ -80,70 +90,70 @@ msgid "Not configured" msgstr "Није подешено" -#: agentbase/resourcebase.cpp:571 +#: agentbase/resourcebase.cpp:572 #, kde-format msgctxt "@label command line option" msgid "Resource identifier" msgstr "Идентификатор ресурса" -#: agentbase/resourcebase.cpp:578 +#: agentbase/resourcebase.cpp:579 #, kde-format msgid "Akonadi Resource" msgstr "Аконадијев ресурс" -#: agentbase/resourcebase.cpp:626 +#: agentbase/resourcebase.cpp:627 #, kde-format msgctxt "@info" msgid "Invalid item retrieved" msgstr "Добављена лоша ставка" -#: agentbase/resourcebase.cpp:650 +#: agentbase/resourcebase.cpp:651 #, kde-format msgctxt "@info" msgid "Error while creating item: %1" msgstr "Грешка при стварању ставке: %1" -#: agentbase/resourcebase.cpp:674 +#: agentbase/resourcebase.cpp:675 #, kde-format msgctxt "@info" msgid "Error while updating collection: %1" msgstr "Грешка при ажурирању збирке: %1" -#: agentbase/resourcebase.cpp:760 +#: agentbase/resourcebase.cpp:761 #, kde-format msgctxt "@info" msgid "Updating local collection failed: %1." msgstr "Пропало ажурирање локалне збирке: %1." -#: agentbase/resourcebase.cpp:765 +#: agentbase/resourcebase.cpp:766 #, kde-format msgctxt "@info" msgid "Updating local items failed: %1." msgstr "Пропало ажурирање локалних ставки: %1." -#: agentbase/resourcebase.cpp:783 +#: agentbase/resourcebase.cpp:784 #, kde-format msgctxt "@info" msgid "Cannot fetch item in offline mode." msgstr "Не могу ван везе дохватити ставку." -#: agentbase/resourcebase.cpp:971 +#: agentbase/resourcebase.cpp:972 #, kde-format msgctxt "@info:status" msgid "Syncing folder '%1'" msgstr "Синхронизујем фасциклу „%1“" -#: agentbase/resourcebase.cpp:992 agentbase/resourcebase.cpp:999 +#: agentbase/resourcebase.cpp:993 agentbase/resourcebase.cpp:1000 #, kde-format msgid "Failed to retrieve collection for sync." msgstr "Не могу да добавим збирку за синхронизовање." -#: agentbase/resourcebase.cpp:1039 +#: agentbase/resourcebase.cpp:1040 #, kde-format msgid "Failed to retrieve collection for attribute sync." msgstr "Не могу да добавим збирку за синхронизовање атрибута." -#: agentbase/resourcebase.cpp:1089 +#: agentbase/resourcebase.cpp:1090 #, kde-format msgid "The requested item no longer exists" msgstr "Захтевана ставка више не постоји." @@ -169,22 +179,22 @@ msgid "Did not find other item for conflict handling" msgstr "Није нађена друга ставка за обраду сукоба." -#: core/jobs/agentinstancecreatejob.cpp:86 +#: core/jobs/agentinstancecreatejob.cpp:85 #, kde-format msgid "Unable to access D-Bus interface of created agent." msgstr "Не могу да приступим д‑бус сучељу створеног агента." -#: core/jobs/agentinstancecreatejob.cpp:120 +#: core/jobs/agentinstancecreatejob.cpp:119 #, kde-format msgid "Agent instance creation timed out." msgstr "Истекло време за стварање примерка агента." -#: core/jobs/agentinstancecreatejob.cpp:186 +#: core/jobs/agentinstancecreatejob.cpp:185 #, kde-format msgid "Unable to obtain agent type '%1'." msgstr "Не могу да добавим тип агента „%1“." -#: core/jobs/agentinstancecreatejob.cpp:194 +#: core/jobs/agentinstancecreatejob.cpp:193 #, kde-format msgid "Unable to create agent instance." msgstr "Не могу да направим примерак агента." @@ -247,7 +257,7 @@ msgstr "Нису задати објекти за премештање" #: core/jobs/collectionmovejob.cpp:73 core/jobs/itemmovejob.cpp:111 -#: core/jobs/linkjobimpl_p.h:54 +#: core/jobs/linkjobimpl_p.h:53 #, kde-format msgid "No valid destination specified" msgstr "Није наведено добро одредиште" @@ -262,12 +272,12 @@ msgid "Invalid parent collection" msgstr "Лоша родитељска збирка" -#: core/jobs/job.cpp:343 +#: core/jobs/job.cpp:344 #, kde-format msgid "Cannot connect to the Akonadi service." msgstr "Не могу да се повежем са сервисом Аконадија." -#: core/jobs/job.cpp:346 +#: core/jobs/job.cpp:347 #, kde-format msgid "" "The protocol version of the Akonadi server is incompatible. Make sure you " @@ -276,17 +286,17 @@ "Несагласна верзија протокола на серверу Аконадија. Морате инсталирати " "сагласну." -#: core/jobs/job.cpp:349 +#: core/jobs/job.cpp:350 #, kde-format msgid "User canceled operation." msgstr "Корисник отказа поступак." -#: core/jobs/job.cpp:354 +#: core/jobs/job.cpp:355 #, kde-format msgid "Unknown error." msgstr "Непозната грешка." -#: core/jobs/job.cpp:387 +#: core/jobs/job.cpp:388 #, kde-format msgid "Unexpected response" msgstr "Неочекиван одзив." @@ -327,7 +337,7 @@ msgid "Failed to fetch the resource collection." msgstr "Не могу да добавим збирку ресурса." -#: core/jobs/specialcollectionshelperjobs.cpp:623 +#: core/jobs/specialcollectionshelperjobs.cpp:612 #, kde-format msgid "Timeout trying to get lock." msgstr "Прековреме при покушају закључавања." @@ -373,8 +383,8 @@ msgid "Loading..." msgstr "Учитавам..." -#: core/models/entitytreemodel.cpp:547 core/models/entitytreemodel_p.cpp:1419 -#: widgets/selftestdialog.cpp:634 +#: core/models/entitytreemodel.cpp:547 core/models/entitytreemodel_p.cpp:1421 +#: widgets/selftestdialog.cpp:633 #, kde-format msgid "Error" msgstr "Грешка" @@ -394,27 +404,27 @@ msgid "Name" msgstr "име" -#: core/models/entitytreemodel_p.cpp:1406 +#: core/models/entitytreemodel_p.cpp:1408 #, kde-format msgid "Could not copy item:" msgstr "Не могу да копирам ставку:" -#: core/models/entitytreemodel_p.cpp:1408 +#: core/models/entitytreemodel_p.cpp:1410 #, kde-format msgid "Could not copy collection:" msgstr "Не могу да копирам збирку:" -#: core/models/entitytreemodel_p.cpp:1410 +#: core/models/entitytreemodel_p.cpp:1412 #, kde-format msgid "Could not move item:" msgstr "Не могу да преместим ставку:" -#: core/models/entitytreemodel_p.cpp:1412 +#: core/models/entitytreemodel_p.cpp:1414 #, kde-format msgid "Could not move collection:" msgstr "Не могу да преместим збирку:" -#: core/models/entitytreemodel_p.cpp:1414 +#: core/models/entitytreemodel_p.cpp:1416 #, kde-format msgid "Could not link entity:" msgstr "Не могу да повежем ентитет:" @@ -651,17 +661,17 @@ msgid "About %1" msgstr "" -#: widgets/agentconfigurationwidget.cpp:118 +#: widgets/agentconfigurationwidget.cpp:112 #, kde-format msgid "The configuration dialog has been opened in another window" msgstr "" -#: widgets/agentconfigurationwidget.cpp:125 +#: widgets/agentconfigurationwidget.cpp:119 #, kde-format msgid "Configuration for %1 is already opened elsewhere." msgstr "" -#: widgets/agentconfigurationwidget.cpp:127 +#: widgets/agentconfigurationwidget.cpp:121 #, fuzzy, kde-format #| msgid "Failed to create relation." msgid "Failed to register %1 configuration dialog." @@ -969,7 +979,9 @@ # >> @title:window #: widgets/collectionrequester.cpp:149 -#, kde-format +#, fuzzy, kde-format +#| msgid "Select a collection" +msgctxt "@title:window" msgid "Select a collection" msgstr "Избор збирке" @@ -989,49 +1001,49 @@ msgstr "Одустани" # >> @item -#: widgets/conflictresolvedialog.cpp:142 +#: widgets/conflictresolvedialog.cpp:141 #, kde-format msgid "Modification Time" msgstr "време измене" # >> @item -#: widgets/conflictresolvedialog.cpp:160 +#: widgets/conflictresolvedialog.cpp:159 #, kde-format msgid "Flags" msgstr "заставице" # >> @item -#: widgets/conflictresolvedialog.cpp:178 widgets/conflictresolvedialog.cpp:185 -#: widgets/conflictresolvedialog.cpp:194 +#: widgets/conflictresolvedialog.cpp:177 widgets/conflictresolvedialog.cpp:184 +#: widgets/conflictresolvedialog.cpp:193 #, kde-format msgid "Attribute: %1" msgstr "атрибут: %1" -#: widgets/conflictresolvedialog.cpp:205 +#: widgets/conflictresolvedialog.cpp:204 #, kde-format msgctxt "@title:window" msgid "Conflict Resolution" msgstr "Разрешење сукоба" -#: widgets/conflictresolvedialog.cpp:211 +#: widgets/conflictresolvedialog.cpp:210 #, kde-format msgctxt "@action:button" msgid "Take my version" msgstr "Узми моју верзију" -#: widgets/conflictresolvedialog.cpp:217 +#: widgets/conflictresolvedialog.cpp:216 #, kde-format msgctxt "@action:button" msgid "Take their version" msgstr "Узми туђу верзију" -#: widgets/conflictresolvedialog.cpp:223 +#: widgets/conflictresolvedialog.cpp:222 #, kde-format msgctxt "@action:button" msgid "Keep both versions" msgstr "Задржи обе верзије" -#: widgets/conflictresolvedialog.cpp:235 +#: widgets/conflictresolvedialog.cpp:234 #, kde-format msgid "" "<qt>Your changes conflict with those made by someone else meanwhile." @@ -1048,7 +1060,7 @@ "p>" # >> @item -#: widgets/conflictresolvedialog.cpp:283 +#: widgets/conflictresolvedialog.cpp:282 #, kde-format msgid "Data" msgstr "подаци" @@ -1215,22 +1227,24 @@ msgid "Default Name" msgstr "Подразумевано име" -#: widgets/selftestdialog.cpp:74 -#, kde-format +#: widgets/selftestdialog.cpp:73 +#, fuzzy, kde-format +#| msgid "Akonadi Server Self-Test" +msgctxt "@title:window" msgid "Akonadi Server Self-Test" msgstr "Самопроба сервера Аконадија" -#: widgets/selftestdialog.cpp:85 +#: widgets/selftestdialog.cpp:84 #, kde-format msgid "Save Report..." msgstr "Сачувај извештај..." -#: widgets/selftestdialog.cpp:87 +#: widgets/selftestdialog.cpp:86 #, kde-format msgid "Copy Report to Clipboard" msgstr "Копирај извештај у клипборд" -#: widgets/selftestdialog.cpp:206 +#: widgets/selftestdialog.cpp:205 #, kde-format msgid "" "The QtSQL driver '%1' is required by your current Akonadi server " @@ -1239,7 +1253,7 @@ "Текућа постава сервера Аконадија захтева драјвер КуТ‑СКуЛ‑а „%1“; нађен је " "на систему." -#: widgets/selftestdialog.cpp:208 +#: widgets/selftestdialog.cpp:207 #, kde-format msgid "" "The QtSQL driver '%1' is required by your current Akonadi server " @@ -1251,28 +1265,28 @@ "Инсталирани су следећи драјвери: %2.\n" "Побрините се да и захтевани буде инсталиран." -#: widgets/selftestdialog.cpp:215 +#: widgets/selftestdialog.cpp:214 #, kde-format msgid "Database driver found." msgstr "Драјвер базе података нађен." -#: widgets/selftestdialog.cpp:217 +#: widgets/selftestdialog.cpp:216 #, kde-format msgid "Database driver not found." msgstr "Драјвер базе података није нађен." -#: widgets/selftestdialog.cpp:225 +#: widgets/selftestdialog.cpp:224 #, kde-format msgid "MySQL server executable not tested." msgstr "Извршни фајл сервера МајСКуЛ‑а није испробан." -#: widgets/selftestdialog.cpp:226 widgets/selftestdialog.cpp:267 -#: widgets/selftestdialog.cpp:316 +#: widgets/selftestdialog.cpp:225 widgets/selftestdialog.cpp:266 +#: widgets/selftestdialog.cpp:315 #, kde-format msgid "The current configuration does not require an internal MySQL server." msgstr "Тренутна постава не захтева унутрашњи сервер МајСКуЛ‑а." -#: widgets/selftestdialog.cpp:233 +#: widgets/selftestdialog.cpp:232 #, kde-format msgid "" "You have currently configured Akonadi to use the MySQL server '%1'.\n" @@ -1286,63 +1300,63 @@ "да ли имате неопходна права читања и извршавања за извршни фајл сервера. " "Обично се зове mysqld, а тачна локација зависи од дистрибуције." -#: widgets/selftestdialog.cpp:240 +#: widgets/selftestdialog.cpp:239 #, kde-format msgid "MySQL server not found." msgstr "Сервер МајСКуЛ‑а није нађен." -#: widgets/selftestdialog.cpp:242 +#: widgets/selftestdialog.cpp:241 #, kde-format msgid "MySQL server not readable." msgstr "Сервер МајСКуЛ‑а није читљив." -#: widgets/selftestdialog.cpp:244 +#: widgets/selftestdialog.cpp:243 #, kde-format msgid "MySQL server not executable." msgstr "Сервер МајСКуЛ‑а није извршив." -#: widgets/selftestdialog.cpp:246 +#: widgets/selftestdialog.cpp:245 #, kde-format msgid "MySQL found with unexpected name." msgstr "МајСКуЛ нађен с неочекиваним именом." -#: widgets/selftestdialog.cpp:248 +#: widgets/selftestdialog.cpp:247 #, kde-format msgid "MySQL server found." msgstr "Сервер МајСКуЛ‑а нађен." -#: widgets/selftestdialog.cpp:254 +#: widgets/selftestdialog.cpp:253 #, kde-format msgid "MySQL server found: %1" msgstr "Сервер МајСКуЛ‑а нађен: %1" -#: widgets/selftestdialog.cpp:255 +#: widgets/selftestdialog.cpp:254 #, kde-format msgid "MySQL server is executable." msgstr "Сервер МајСКуЛ‑а је извршан." -#: widgets/selftestdialog.cpp:257 +#: widgets/selftestdialog.cpp:256 #, kde-format msgid "" "Executing the MySQL server '%1' failed with the following error message: '%2'" msgstr "Извршавање сервера МајСКуЛ‑а „%1“ пропало, са следећом грешком: „%2“" -#: widgets/selftestdialog.cpp:259 +#: widgets/selftestdialog.cpp:258 #, kde-format msgid "Executing the MySQL server failed." msgstr "Извршавање сервера МајСКуЛ‑а пропало." -#: widgets/selftestdialog.cpp:266 +#: widgets/selftestdialog.cpp:265 #, kde-format msgid "MySQL server error log not tested." msgstr "Дневник грешака сервера МајСКуЛ‑а није испробан." -#: widgets/selftestdialog.cpp:275 +#: widgets/selftestdialog.cpp:274 #, kde-format msgid "No current MySQL error log found." msgstr "Нема текућег дневника грешака МајСКуЛ‑а." -#: widgets/selftestdialog.cpp:276 +#: widgets/selftestdialog.cpp:275 #, kde-format msgid "" "The MySQL server did not report any errors during this startup. The log can " @@ -1351,57 +1365,57 @@ "Сервер МајСКуЛ‑а није пријавио ниједну грешку током овог покретања. Дневник " "се налази у ‘%1’." -#: widgets/selftestdialog.cpp:281 +#: widgets/selftestdialog.cpp:280 #, kde-format msgid "MySQL error log not readable." msgstr "Дневник грешака МајСКуЛ‑а није читљив." -#: widgets/selftestdialog.cpp:282 +#: widgets/selftestdialog.cpp:281 #, kde-format msgid "A MySQL server error log file was found but is not readable: %1" msgstr "Фајл дневник грешака сервера МајСКуЛ‑а је нађен, али није читљив: %1" -#: widgets/selftestdialog.cpp:290 +#: widgets/selftestdialog.cpp:289 #, kde-format msgid "MySQL server log contains errors." msgstr "Дневник сервера МајСКуЛ‑а садржи грешке." -#: widgets/selftestdialog.cpp:291 +#: widgets/selftestdialog.cpp:290 #, kde-format msgid "The MySQL server error log file '%1' contains errors." msgstr "Фајл дневника грешака сервера МајСКуЛ‑а ‘%1’ садржи грешке." -#: widgets/selftestdialog.cpp:300 +#: widgets/selftestdialog.cpp:299 #, kde-format msgid "MySQL server log contains warnings." msgstr "Дневник сервера МајСКуЛ‑а садржи упозорења." -#: widgets/selftestdialog.cpp:301 +#: widgets/selftestdialog.cpp:300 #, kde-format msgid "The MySQL server log file '%1' contains warnings." msgstr "Фајл дневника сервера МајСКуЛ‑а ‘%1’ садржи упозорења." -#: widgets/selftestdialog.cpp:303 +#: widgets/selftestdialog.cpp:302 #, kde-format msgid "MySQL server log contains no errors." msgstr "Дневник сервера МајСКуЛ‑а не садржи грешке." -#: widgets/selftestdialog.cpp:304 +#: widgets/selftestdialog.cpp:303 #, kde-format msgid "The MySQL server log file '%1' does not contain any errors or warnings." msgstr "Фајл дневника сервера МајСКуЛ‑а ‘%1’ не садржи ни грешке ни упозорења." -#: widgets/selftestdialog.cpp:315 +#: widgets/selftestdialog.cpp:314 #, kde-format msgid "MySQL server configuration not tested." msgstr "Постава сервера МајСКуЛ‑а није испробана." -#: widgets/selftestdialog.cpp:324 +#: widgets/selftestdialog.cpp:323 #, kde-format msgid "MySQL server default configuration found." msgstr "Подразумевана постава сервера МајСКуЛ‑а нађена." -#: widgets/selftestdialog.cpp:325 +#: widgets/selftestdialog.cpp:324 #, kde-format msgid "" "The default configuration for the MySQL server was found and is readable at " @@ -1409,12 +1423,12 @@ msgstr "" "Подразумевана постава за сервер МајСКуЛ‑а нађена је и читљива код ‘%1’." -#: widgets/selftestdialog.cpp:329 +#: widgets/selftestdialog.cpp:328 #, kde-format msgid "MySQL server default configuration not found." msgstr "Подразумевана постава сервера МајСКуЛ‑а није нађена." -#: widgets/selftestdialog.cpp:330 +#: widgets/selftestdialog.cpp:329 #, kde-format msgid "" "The default configuration for the MySQL server was not found or was not " @@ -1425,34 +1439,34 @@ "Проверите да ли је инсталација Аконадија потпуна, и да ли имате неопходна " "права приступа." -#: widgets/selftestdialog.cpp:337 +#: widgets/selftestdialog.cpp:336 #, kde-format msgid "MySQL server custom configuration not available." msgstr "Посебна постава сервера МајСКуЛ‑а није доступна." -#: widgets/selftestdialog.cpp:338 +#: widgets/selftestdialog.cpp:337 #, kde-format msgid "" "The custom configuration for the MySQL server was not found but is optional." msgstr "Посебна постава за сервер МајСКуЛ‑а није нађена, али је опциона." -#: widgets/selftestdialog.cpp:340 +#: widgets/selftestdialog.cpp:339 #, kde-format msgid "MySQL server custom configuration found." msgstr "Посебна постава сервера МајСКуЛ‑а нађена." -#: widgets/selftestdialog.cpp:341 +#: widgets/selftestdialog.cpp:340 #, kde-format msgid "" "The custom configuration for the MySQL server was found and is readable at %1" msgstr "Посебна постава за сервер МајСКуЛ‑а нађена је и читљива код ‘%1’." -#: widgets/selftestdialog.cpp:345 +#: widgets/selftestdialog.cpp:344 #, kde-format msgid "MySQL server custom configuration not readable." msgstr "Посебна постава сервера МајСКуЛ‑а није читљива." -#: widgets/selftestdialog.cpp:346 +#: widgets/selftestdialog.cpp:345 #, kde-format msgid "" "The custom configuration for the MySQL server was found at %1 but is not " @@ -1461,47 +1475,47 @@ "Посебна постава за сервер МајСКуЛ‑а нађена је код ‘%1’, али није читљива. " "Проверите права приступа." -#: widgets/selftestdialog.cpp:353 +#: widgets/selftestdialog.cpp:352 #, kde-format msgid "MySQL server configuration not found or not readable." msgstr "Постава сервера МајСКуЛ‑а није нађена или није читљива." -#: widgets/selftestdialog.cpp:354 +#: widgets/selftestdialog.cpp:353 #, kde-format msgid "The MySQL server configuration was not found or is not readable." msgstr "Постава за сервер МајСКуЛ‑а или није нађена или није читљива." -#: widgets/selftestdialog.cpp:356 +#: widgets/selftestdialog.cpp:355 #, kde-format msgid "MySQL server configuration is usable." msgstr "Постава сервера МајСКуЛ‑а употребљива." -#: widgets/selftestdialog.cpp:357 +#: widgets/selftestdialog.cpp:356 #, kde-format msgid "The MySQL server configuration was found at %1 and is readable." msgstr "Постава сервера МајСКуЛ‑а нађена је код ‘%1’ и читљива је." -#: widgets/selftestdialog.cpp:386 +#: widgets/selftestdialog.cpp:385 #, kde-format msgid "Cannot connect to PostgreSQL server." msgstr "Не могу да се повежем са сервером ПостгреСКуЛ‑а." -#: widgets/selftestdialog.cpp:388 +#: widgets/selftestdialog.cpp:387 #, kde-format msgid "PostgreSQL server found." msgstr "Сервер ПостгреСКуЛ‑а нађен." -#: widgets/selftestdialog.cpp:389 +#: widgets/selftestdialog.cpp:388 #, kde-format msgid "The PostgreSQL server was found and connection is working." msgstr "Сервер ПостгреСКуЛ‑а је нађен и веза ради." -#: widgets/selftestdialog.cpp:398 +#: widgets/selftestdialog.cpp:397 #, kde-format msgid "akonadictl not found" msgstr "akonadictl није нађена" -#: widgets/selftestdialog.cpp:399 +#: widgets/selftestdialog.cpp:398 #, kde-format msgid "" "The program 'akonadictl' needs to be accessible in $PATH. Make sure you have " @@ -1510,12 +1524,12 @@ "Наредба akonadictl мора бити доступна у путањи. Проверите да ли је сервер " "Аконадија инсталиран." -#: widgets/selftestdialog.cpp:405 +#: widgets/selftestdialog.cpp:404 #, kde-format msgid "akonadictl found and usable" msgstr "akonadictl нађена и употребљива" -#: widgets/selftestdialog.cpp:406 +#: widgets/selftestdialog.cpp:405 #, kde-format msgid "" "The program '%1' to control the Akonadi server was found and could be " @@ -1527,12 +1541,12 @@ "Резултат:\n" "%2" -#: widgets/selftestdialog.cpp:409 +#: widgets/selftestdialog.cpp:408 #, kde-format msgid "akonadictl found but not usable" msgstr "akonadictl нађена али неупотребљива" -#: widgets/selftestdialog.cpp:410 +#: widgets/selftestdialog.cpp:409 #, kde-format msgid "" "The program '%1' to control the Akonadi server was found but could not be " @@ -1547,12 +1561,12 @@ "%2\n" "Проверите да ли је сервер Аконадија исправно инсталиран." -#: widgets/selftestdialog.cpp:419 +#: widgets/selftestdialog.cpp:418 #, kde-format msgid "Akonadi control process registered at D-Bus." msgstr "Управљачки процес Аконадија регистрован на д‑бусу." -#: widgets/selftestdialog.cpp:420 +#: widgets/selftestdialog.cpp:419 #, kde-format msgid "" "The Akonadi control process is registered at D-Bus which typically indicates " @@ -1561,12 +1575,12 @@ "Управљачки процес Аконадија регистрован је на д‑бусу, што обично значи да је " "оперативан." -#: widgets/selftestdialog.cpp:422 +#: widgets/selftestdialog.cpp:421 #, kde-format msgid "Akonadi control process not registered at D-Bus." msgstr "Управљачки процес Аконадија није регистрован на д‑бусу." -#: widgets/selftestdialog.cpp:423 +#: widgets/selftestdialog.cpp:422 #, kde-format msgid "" "The Akonadi control process is not registered at D-Bus which typically means " @@ -1575,12 +1589,12 @@ "Управљачки процес Аконадија није регистрован на д‑бусу, што обично значи или " "да није покренут, или да је на покретању дошло до кобне грешке." -#: widgets/selftestdialog.cpp:428 +#: widgets/selftestdialog.cpp:427 #, kde-format msgid "Akonadi server process registered at D-Bus." msgstr "Серверски процес Аконадија регистрован на д‑бусу" -#: widgets/selftestdialog.cpp:429 +#: widgets/selftestdialog.cpp:428 #, kde-format msgid "" "The Akonadi server process is registered at D-Bus which typically indicates " @@ -1589,12 +1603,12 @@ "Серверски процес Аконадија регистрован је на д‑бусу, што обично значи да је " "оперативан." -#: widgets/selftestdialog.cpp:431 +#: widgets/selftestdialog.cpp:430 #, kde-format msgid "Akonadi server process not registered at D-Bus." msgstr "Серверски процес Аконадија није регистрован на д‑бусу." -#: widgets/selftestdialog.cpp:432 +#: widgets/selftestdialog.cpp:431 #, kde-format msgid "" "The Akonadi server process is not registered at D-Bus which typically means " @@ -1603,12 +1617,12 @@ "Серверски процес Аконадија није регистрован на д‑бусу, што обично значи или " "да није покренут, или да је на покретању дошло до кобне грешке." -#: widgets/selftestdialog.cpp:440 +#: widgets/selftestdialog.cpp:439 #, kde-format msgid "Protocol version check not possible." msgstr "Није могуће проверити верзију протокола." -#: widgets/selftestdialog.cpp:441 +#: widgets/selftestdialog.cpp:440 #, kde-format msgid "" "Without a connection to the server it is not possible to check if the " @@ -1617,12 +1631,12 @@ "Без везе са сервером није могуће проверити да ли верзија протокола испуњава " "захтеве." -#: widgets/selftestdialog.cpp:445 +#: widgets/selftestdialog.cpp:444 #, kde-format msgid "Server protocol version is too old." msgstr "Верзија протокола сервера превише стара." -#: widgets/selftestdialog.cpp:446 widgets/selftestdialog.cpp:452 +#: widgets/selftestdialog.cpp:445 widgets/selftestdialog.cpp:451 #, kde-format msgid "" "The server protocol version is %1, but version %2 is required by the client. " @@ -1632,37 +1646,37 @@ "Верзија протокола сервера је %1, али клијент захтева верзију %2. Ако сте " "недавно ажурирали КДЕ ПИМ‑а, поново покрените и Аконади и ПИМ програме." -#: widgets/selftestdialog.cpp:451 +#: widgets/selftestdialog.cpp:450 #, kde-format msgid "Server protocol version is too new." msgstr "Верзија протокола сервера превише нова." -#: widgets/selftestdialog.cpp:457 +#: widgets/selftestdialog.cpp:456 #, kde-format msgid "Server protocol version matches." msgstr "Верзија протокола сервера одговара." -#: widgets/selftestdialog.cpp:458 +#: widgets/selftestdialog.cpp:457 #, kde-format msgid "The current Protocol version is %1." msgstr "Тренутна верзија протокола је %1." -#: widgets/selftestdialog.cpp:477 +#: widgets/selftestdialog.cpp:476 #, kde-format msgid "Resource agents found." msgstr "Агенти ресурса нађени." -#: widgets/selftestdialog.cpp:477 +#: widgets/selftestdialog.cpp:476 #, kde-format msgid "At least one resource agent has been found." msgstr "Нађен је бар један агент ресурса." -#: widgets/selftestdialog.cpp:479 +#: widgets/selftestdialog.cpp:478 #, kde-format msgid "No resource agents found." msgstr "Агенти ресурса нису нађени." -#: widgets/selftestdialog.cpp:480 +#: widgets/selftestdialog.cpp:479 #, kde-format msgid "" "No resource agents have been found, Akonadi is not usable without at least " @@ -1677,23 +1691,23 @@ "окружења $XDG_DATA_DIRS постављена је на „%2“, проверите укључује ли ово све " "путање где су инсталирани агенти Аконадија." -#: widgets/selftestdialog.cpp:497 +#: widgets/selftestdialog.cpp:496 #, kde-format msgid "No current Akonadi server error log found." msgstr "Текући дневник грешака сервера Аконадија није нађен." -#: widgets/selftestdialog.cpp:498 +#: widgets/selftestdialog.cpp:497 #, kde-format msgid "" "The Akonadi server did not report any errors during its current startup." msgstr "Сервер Аконадија није пријавио ниједну грешку током текућег покретања." -#: widgets/selftestdialog.cpp:500 +#: widgets/selftestdialog.cpp:499 #, kde-format msgid "Current Akonadi server error log found." msgstr "Текући дневник грешака сервера Аконадија нађен." -#: widgets/selftestdialog.cpp:501 +#: widgets/selftestdialog.cpp:500 #, kde-format msgid "" "The Akonadi server reported errors during its current startup. The log can " @@ -1702,24 +1716,24 @@ "Сервер Аконадија пријавио је грешке током текућег покретања. Дневник се " "налази у ‘%1’." -#: widgets/selftestdialog.cpp:508 +#: widgets/selftestdialog.cpp:507 #, kde-format msgid "No previous Akonadi server error log found." msgstr "Претходни дневник грешака сервера Аконадија нађен." -#: widgets/selftestdialog.cpp:509 +#: widgets/selftestdialog.cpp:508 #, kde-format msgid "" "The Akonadi server did not report any errors during its previous startup." msgstr "" "Сервер Аконадија није пријавио ниједну грешку током претходног покретања." -#: widgets/selftestdialog.cpp:511 +#: widgets/selftestdialog.cpp:510 #, kde-format msgid "Previous Akonadi server error log found." msgstr "Претходни дневник грешака сервера Аконадија нађен." -#: widgets/selftestdialog.cpp:512 +#: widgets/selftestdialog.cpp:511 #, kde-format msgid "" "The Akonadi server reported errors during its previous startup. The log can " @@ -1728,12 +1742,12 @@ "Сервер Аконадија пријавио је грешке при претходном покретању. Дневник се " "налази у ‘%1’." -#: widgets/selftestdialog.cpp:522 +#: widgets/selftestdialog.cpp:521 #, kde-format msgid "No current Akonadi control error log found." msgstr "Текући дневник грешака управљања Аконадија није нађен." -#: widgets/selftestdialog.cpp:523 +#: widgets/selftestdialog.cpp:522 #, kde-format msgid "" "The Akonadi control process did not report any errors during its current " @@ -1742,12 +1756,12 @@ "Управљачки процес Аконадија није пријавио ниједну грешку при текућем " "покретању." -#: widgets/selftestdialog.cpp:525 +#: widgets/selftestdialog.cpp:524 #, kde-format msgid "Current Akonadi control error log found." msgstr "Текући дневник грешака управљања Аконадија нађен." -#: widgets/selftestdialog.cpp:526 +#: widgets/selftestdialog.cpp:525 #, kde-format msgid "" "The Akonadi control process reported errors during its current startup. The " @@ -1756,12 +1770,12 @@ "Управљачки процес Аконадија пријавио је грешке током текућег покретања. " "Дневник се налази у ‘%1’." -#: widgets/selftestdialog.cpp:533 +#: widgets/selftestdialog.cpp:532 #, kde-format msgid "No previous Akonadi control error log found." msgstr "Претходни дневник грешака управљања Аконадија нађен." -#: widgets/selftestdialog.cpp:534 +#: widgets/selftestdialog.cpp:533 #, kde-format msgid "" "The Akonadi control process did not report any errors during its previous " @@ -1770,12 +1784,12 @@ "Управљачки процес Аконадија није пријавио ниједну грешку током претходног " "покретања." -#: widgets/selftestdialog.cpp:536 +#: widgets/selftestdialog.cpp:535 #, kde-format msgid "Previous Akonadi control error log found." msgstr "Претходни дневник грешака управљања Аконадија нађен." -#: widgets/selftestdialog.cpp:537 +#: widgets/selftestdialog.cpp:536 #, kde-format msgid "" "The Akonadi control process reported errors during its previous startup. The " @@ -1784,12 +1798,12 @@ "Управљачки процес Аконадија пријавио је грешке током претходног покретања. " "Дневник се налази у ‘%1’." -#: widgets/selftestdialog.cpp:546 +#: widgets/selftestdialog.cpp:545 #, kde-format msgid "Akonadi was started as root" msgstr "Аконади покренут под кореном" -#: widgets/selftestdialog.cpp:546 +#: widgets/selftestdialog.cpp:545 #, kde-format msgid "" "Running Internet-facing applications as root/administrator exposes you to " @@ -1801,12 +1815,12 @@ "инсталација Аконадија, неће допустити извршавање под кореном да би вас " "заштитио од ових ризика." -#: widgets/selftestdialog.cpp:548 +#: widgets/selftestdialog.cpp:547 #, kde-format msgid "Akonadi is not running as root" msgstr "Аконади не ради под кореном" -#: widgets/selftestdialog.cpp:548 +#: widgets/selftestdialog.cpp:547 #, kde-format msgid "" "Akonadi is not running as a root/administrator user, which is the " @@ -1816,12 +1830,12 @@ "препоручена постава за безбедност система." # >> @title:window -#: widgets/selftestdialog.cpp:627 +#: widgets/selftestdialog.cpp:626 #, kde-format msgid "Save Test Report" msgstr "Уписивање извештаја о пробама" -#: widgets/selftestdialog.cpp:634 +#: widgets/selftestdialog.cpp:633 #, kde-format msgid "Could not open file '%1'" msgstr "Не могу да отворим фајл ‘%1’" @@ -2394,37 +2408,39 @@ msgid "Go Online" msgstr "На везу" -#: widgets/standardactionmanager.cpp:1443 +#: widgets/standardactionmanager.cpp:1448 #, kde-format msgid "Move to This Folder" msgstr "Премести у ову фасциклу" -#: widgets/standardactionmanager.cpp:1443 +#: widgets/standardactionmanager.cpp:1448 #, kde-format msgid "Copy to This Folder" msgstr "Копирај у ову фасциклу" -#: widgets/subscriptiondialog.cpp:161 -#, kde-format +#: widgets/subscriptiondialog.cpp:160 +#, fuzzy, kde-format +#| msgid "Local Subscriptions" +msgctxt "@title:window" msgid "Local Subscriptions" msgstr "Локалне претплате" -#: widgets/subscriptiondialog.cpp:191 +#: widgets/subscriptiondialog.cpp:190 #, kde-format msgid "Search:" msgstr "Тражи:" -#: widgets/subscriptiondialog.cpp:199 +#: widgets/subscriptiondialog.cpp:198 #, kde-format msgid "Subscribed only" msgstr "Само у претплаћеним" -#: widgets/subscriptiondialog.cpp:208 +#: widgets/subscriptiondialog.cpp:207 #, kde-format msgid "Subscribe" msgstr "Претплати се" -#: widgets/subscriptiondialog.cpp:212 +#: widgets/subscriptiondialog.cpp:211 #, kde-format msgid "Unsubscribe" msgstr "Откажи претплату" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-20.04.2/po/zh_CN/akonadi_knut_resource.po new/akonadi-20.04.3/po/zh_CN/akonadi_knut_resource.po --- old/akonadi-20.04.2/po/zh_CN/akonadi_knut_resource.po 2020-06-09 02:43:40.000000000 +0200 +++ new/akonadi-20.04.3/po/zh_CN/akonadi_knut_resource.po 2020-07-07 03:06:02.000000000 +0200 @@ -8,8 +8,8 @@ "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-05-20 03:13+0200\n" -"PO-Revision-Date: 2020-05-09 13:51\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2020-06-24 08:02\n" +"Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" @@ -17,8 +17,10 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Crowdin-Project: kdeorg\n" +"X-Crowdin-Project-ID: 269464\n" "X-Crowdin-Language: zh-CN\n" -"X-Crowdin-File: /kf5-stable/messages/pim/akonadi_knut_resource.pot\n" +"X-Crowdin-File: /kf5-stable/messages/akonadi/akonadi_knut_resource.pot\n" +"X-Crowdin-File-ID: 3104\n" #: knutresource.cpp:78 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-20.04.2/po/zh_CN/libakonadi5.po new/akonadi-20.04.3/po/zh_CN/libakonadi5.po --- old/akonadi-20.04.2/po/zh_CN/libakonadi5.po 2020-06-09 02:43:40.000000000 +0200 +++ new/akonadi-20.04.3/po/zh_CN/libakonadi5.po 2020-07-07 03:06:02.000000000 +0200 @@ -8,8 +8,8 @@ "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2020-02-21 03:16+0100\n" -"PO-Revision-Date: 2020-05-09 13:51\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2020-06-24 08:02\n" +"Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" @@ -17,8 +17,10 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Crowdin-Project: kdeorg\n" +"X-Crowdin-Project-ID: 269464\n" "X-Crowdin-Language: zh-CN\n" -"X-Crowdin-File: /kf5-stable/messages/pim/libakonadi5.pot\n" +"X-Crowdin-File: /kf5-stable/messages/akonadi/libakonadi5.pot\n" +"X-Crowdin-File-ID: 3177\n" #, kde-format msgctxt "NAME OF TRANSLATORS" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-20.04.2/src/server/handler/itemfetchhelper.cpp new/akonadi-20.04.3/src/server/handler/itemfetchhelper.cpp --- old/akonadi-20.04.2/src/server/handler/itemfetchhelper.cpp 2020-06-02 09:09:51.000000000 +0200 +++ new/akonadi-20.04.3/src/server/handler/itemfetchhelper.cpp 2020-06-18 08:29:20.000000000 +0200 @@ -602,13 +602,14 @@ const QByteArray data = Utils::variantToByteArray(partQuery.value(PartQueryDataColumn)); if (mItemFetchScope.checkCachedPayloadPartsOnly()) { if (!data.isEmpty()) { - cachedParts << ptIter.value(); + cachedParts.push_back(ptIter.value()); } - partQuery.next(); - } else { - if (mItemFetchScope.ignoreErrors() && data.isEmpty()) { + } else if (mItemFetchScope.fullPayload() || mItemFetchScope.allAttributes() || mItemFetchScope.requestedParts().contains(ptIter.value())) { + // FIXME: Should this fail the entire retrieval, if IgnoreErrors is not set? + if (ptIter->startsWith("PLD") && mItemFetchScope.ignoreErrors() && data.isEmpty()) { //We wanted the payload, couldn't get it, and are ignoring errors. Skip the item. - //This is not an error though, it's fine to have empty payload parts (to denote existing but not cached parts) + //This is not an error though, it's fine to have empty payload parts (to denote existing but not cached parts). + //Empty attributes are never an error, since they never expire. qCDebug(AKONADISERVER_LOG) << "item" << id << "has an empty payload part in parttable for part" << metaPart.name(); skipItem = true; break; @@ -621,13 +622,9 @@ partData.setData(data); } partData.setMetaData(metaPart); - - if (mItemFetchScope.requestedParts().contains(ptIter.value()) || mItemFetchScope.fullPayload() || mItemFetchScope.allAttributes()) { - parts.append(partData); - } - - partQuery.next(); + parts.append(partData); } + partQuery.next(); } response.setParts(parts);