Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kdav for openSUSE:Factory checked in at 2021-09-16 23:13:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kdav (Old) and /work/SRC/openSUSE:Factory/.kdav.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdav" Thu Sep 16 23:13:33 2021 rev:56 rq:918557 version:5.86.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kdav/kdav.changes 2021-08-16 10:11:37.235096071 +0200 +++ /work/SRC/openSUSE:Factory/.kdav.new.1899/kdav.changes 2021-09-16 23:14:56.211814792 +0200 @@ -1,0 +2,12 @@ +Mon Sep 6 06:21:59 UTC 2021 - Christophe Giboudeaux <[email protected]> + +- Update to 5.86.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/frameworks/5/5.86.0 +- Changes since 5.85.0: + * Port away from recently deprecated KIO::DavJob API + * Minor optimisation + * Adapt to KIO DavJob factory methods removing QDomDocument from their API + +------------------------------------------------------------------- Old: ---- kdav-5.85.0.tar.xz kdav-5.85.0.tar.xz.sig New: ---- kdav-5.86.0.tar.xz kdav-5.86.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kdav.spec ++++++ --- /var/tmp/diff_new_pack.AKSSyj/_old 2021-09-16 23:14:56.683815281 +0200 +++ /var/tmp/diff_new_pack.AKSSyj/_new 2021-09-16 23:14:56.683815281 +0200 @@ -16,14 +16,14 @@ # -%define _tar_path 5.85 +%define _tar_path 5.86 # Full KF5 version (e.g. 5.33.0) %{!?_kf5_version: %global _kf5_version %{version}} # Last major and minor KF5 version (e.g. 5.33) %{!?_kf5_bugfix_version: %define _kf5_bugfix_version %(echo %{_kf5_version} | awk -F. '{print $1"."$2}')} %bcond_without lang Name: kdav -Version: 5.85.0 +Version: 5.86.0 Release: 0 Summary: DAV protocol implementation License: LGPL-2.0-or-later ++++++ kdav-5.85.0.tar.xz -> kdav-5.86.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdav-5.85.0/CMakeLists.txt new/kdav-5.86.0/CMakeLists.txt --- old/kdav-5.85.0/CMakeLists.txt 2021-08-06 11:01:57.000000000 +0200 +++ new/kdav-5.86.0/CMakeLists.txt 2021-09-04 18:58:02.000000000 +0200 @@ -1,11 +1,11 @@ cmake_minimum_required(VERSION 3.16) -set(KF_VERSION "5.85.0") # handled by release scripts -set(KF_DEP_VERSION "5.85.0") # handled by release scripts +set(KF_VERSION "5.86.0") # handled by release scripts +set(KF_DEP_VERSION "5.86.0") # handled by release scripts project(libkdav VERSION ${KF_VERSION}) -find_package(ECM 5.85.0 CONFIG REQUIRED) +find_package(ECM 5.86.0 CONFIG REQUIRED) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) include(KDEInstallDirs) @@ -25,15 +25,15 @@ include(ECMQtDeclareLoggingCategory) -set(REQUIRED_QT_VERSION 5.15.0) +set(REQUIRED_QT_VERSION 5.15.2) find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core Gui XmlPatterns Test) find_package(KF5 ${KF_DEP_VERSION} REQUIRED CoreAddons KIO I18n) # setup lib -add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050f00) -add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055100) +add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050f02) +add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055400) option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF) add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdav-5.85.0/autotests/davitemtest.cpp new/kdav-5.86.0/autotests/davitemtest.cpp --- old/kdav-5.85.0/autotests/davitemtest.cpp 2021-08-06 11:01:57.000000000 +0200 +++ new/kdav-5.86.0/autotests/davitemtest.cpp 2021-09-04 18:58:02.000000000 +0200 @@ -75,7 +75,8 @@ void DavItemTest::serializeTest() { - KDAV::DavItem davItem1, davItem2; + KDAV::DavItem davItem1; + KDAV::DavItem davItem2; QUrl url(QStringLiteral("test://me:pw@test")); KDAV::DavUrl davUrl(url, KDAV::CardDav); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdav-5.85.0/autotests/davurltest.cpp new/kdav-5.86.0/autotests/davurltest.cpp --- old/kdav-5.85.0/autotests/davurltest.cpp 2021-08-06 11:01:57.000000000 +0200 +++ new/kdav-5.86.0/autotests/davurltest.cpp 2021-09-04 18:58:02.000000000 +0200 @@ -44,7 +44,8 @@ void DavUrlTest::serializeTest() { - KDAV::DavUrl davUrl1, davUrl2; + KDAV::DavUrl davUrl1; + KDAV::DavUrl davUrl2; QUrl url(QStringLiteral("test://me:pw@test")); davUrl1.setProtocol(KDAV::CardDav); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdav-5.85.0/autotests/fakeserver.cpp new/kdav-5.86.0/autotests/fakeserver.cpp --- old/kdav-5.85.0/autotests/fakeserver.cpp 2021-08-06 11:01:57.000000000 +0200 +++ new/kdav-5.86.0/autotests/fakeserver.cpp 2021-09-04 18:58:02.000000000 +0200 @@ -124,7 +124,7 @@ { QMutexLocker locker(&m_mutex); - for (const QList<QByteArray> &scenario : qAsConst(m_scenarios)) { + for (const QList<QByteArray> &scenario : std::as_const(m_scenarios)) { if (!scenario.isEmpty()) { return false; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdav-5.85.0/po/zh_CN/libkdav.po new/kdav-5.86.0/po/zh_CN/libkdav.po --- old/kdav-5.85.0/po/zh_CN/libkdav.po 2021-08-06 11:01:57.000000000 +0200 +++ new/kdav-5.86.0/po/zh_CN/libkdav.po 2021-09-04 18:58:02.000000000 +0200 @@ -8,7 +8,7 @@ "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2021-03-09 02:40+0100\n" -"PO-Revision-Date: 2021-07-26 13:47\n" +"PO-Revision-Date: 2021-08-30 11:43\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdav-5.85.0/src/common/davcollectionmodifyjob.cpp new/kdav-5.86.0/src/common/davcollectionmodifyjob.cpp --- old/kdav-5.85.0/src/common/davcollectionmodifyjob.cpp 2021-08-06 11:01:57.000000000 +0200 +++ new/kdav-5.86.0/src/common/davcollectionmodifyjob.cpp 2021-09-04 18:58:02.000000000 +0200 @@ -90,7 +90,7 @@ QDomElement propElement = mQuery.createElementNS(QStringLiteral("DAV:"), QStringLiteral("prop")); setElement.appendChild(propElement); - for (const QDomElement &element : qAsConst(d->mSetProperties)) { + for (const QDomElement &element : std::as_const(d->mSetProperties)) { propElement.appendChild(element); } } @@ -102,12 +102,12 @@ QDomElement propElement = mQuery.createElementNS(QStringLiteral("DAV:"), QStringLiteral("prop")); removeElement.appendChild(propElement); - for (const QDomElement &element : qAsConst(d->mSetProperties)) { + for (const QDomElement &element : std::as_const(d->mSetProperties)) { propElement.appendChild(element); } } - KIO::DavJob *job = DavManager::self()->createPropPatchJob(d->mUrl.url(), mQuery); + KIO::DavJob *job = DavManager::self()->createPropPatchJob(d->mUrl.url(), mQuery.toString()); job->addMetaData(QStringLiteral("PropagateHttpHeader"), QStringLiteral("true")); connect(job, &KIO::DavJob::result, this, [d](KJob *job) { d->davJobFinished(job); @@ -131,7 +131,8 @@ return; } - const QDomDocument response = davJob->response(); + QDomDocument response; + response.setContent(davJob->responseData(), true); QDomElement responseElement = Utils::firstChildElementNS(response.documentElement(), QStringLiteral("DAV:"), QStringLiteral("response")); bool hasError = false; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdav-5.85.0/src/common/davcollectionsfetchjob.cpp new/kdav-5.86.0/src/common/davcollectionsfetchjob.cpp --- old/kdav-5.85.0/src/common/davcollectionsfetchjob.cpp 2021-08-06 11:01:57.000000000 +0200 +++ new/kdav-5.86.0/src/common/davcollectionsfetchjob.cpp 2021-09-04 18:58:02.000000000 +0200 @@ -80,7 +80,7 @@ const QDomDocument collectionQuery = DavManager::davProtocol(mUrl.protocol())->collectionsQuery()->buildQuery(); - KIO::DavJob *job = DavManager::self()->createPropFindJob(url, collectionQuery); + KIO::DavJob *job = DavManager::self()->createPropFindJob(url, collectionQuery.toString()); QObject::connect(job, &KIO::DavJob::result, q_ptr, [this](KJob *job) { collectionsFetchFinished(job); }); @@ -165,7 +165,9 @@ const QString jobUrl = _jobUrl.toDisplayString(); // Validate that we got a valid PROPFIND response - QDomElement rootElement = davJob->response().documentElement(); + QDomDocument response; + response.setContent(davJob->responseData(), true); + QDomElement rootElement = response.documentElement(); if (rootElement.tagName().compare(QLatin1String("multistatus"), Qt::CaseInsensitive) != 0) { setError(ERR_COLLECTIONFETCH); setErrorTextFromDavError(); @@ -173,7 +175,7 @@ return; } - QByteArray resp(davJob->response().toByteArray()); + QByteArray resp = davJob->responseData(); QBuffer buffer(&resp); buffer.open(QIODevice::ReadOnly); @@ -288,7 +290,7 @@ // don't add this resource if it has already been detected bool alreadySeen = false; - for (const DavCollection &seen : qAsConst(mCollections)) { + for (const DavCollection &seen : std::as_const(mCollections)) { if (seen.url().toDisplayString() == url.toDisplayString()) { alreadySeen = true; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdav-5.85.0/src/common/davcollectionsmultifetchjob.cpp new/kdav-5.86.0/src/common/davcollectionsmultifetchjob.cpp --- old/kdav-5.85.0/src/common/davcollectionsmultifetchjob.cpp 2021-08-06 11:01:57.000000000 +0200 +++ new/kdav-5.86.0/src/common/davcollectionsmultifetchjob.cpp 2021-09-04 18:58:02.000000000 +0200 @@ -23,7 +23,7 @@ : KCompositeJob(parent) , d(new DavCollectionsMultiFetchJobPrivate) { - for (const DavUrl &url : qAsConst(urls)) { + for (const DavUrl &url : std::as_const(urls)) { DavCollectionsFetchJob *job = new DavCollectionsFetchJob(url, this); connect(job, &DavCollectionsFetchJob::collectionDiscovered, this, &DavCollectionsMultiFetchJob::collectionDiscovered); addSubjob(job); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdav-5.85.0/src/common/davitem.cpp new/kdav-5.86.0/src/common/davitem.cpp --- old/kdav-5.85.0/src/common/davitem.cpp 2021-08-06 11:01:57.000000000 +0200 +++ new/kdav-5.86.0/src/common/davitem.cpp 2021-09-04 18:58:02.000000000 +0200 @@ -91,7 +91,8 @@ QDataStream &KDAV::operator>>(QDataStream &stream, DavItem &item) { - QString contentType, etag; + QString contentType; + QString etag; DavUrl url; QByteArray data; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdav-5.85.0/src/common/davitemsfetchjob.cpp new/kdav-5.86.0/src/common/davitemsfetchjob.cpp --- old/kdav-5.85.0/src/common/davitemsfetchjob.cpp 2021-08-06 11:01:57.000000000 +0200 +++ new/kdav-5.86.0/src/common/davitemsfetchjob.cpp 2021-09-04 18:58:02.000000000 +0200 @@ -53,7 +53,7 @@ } const QDomDocument report = protocol->itemsReportQuery(d->mUrls)->buildQuery(); - KIO::DavJob *job = DavManager::self()->createReportJob(d->mCollectionUrl.url(), report, QStringLiteral("0")); + KIO::DavJob *job = DavManager::self()->createReportJob(d->mCollectionUrl.url(), report.toString(), QStringLiteral("0")); job->addMetaData(QStringLiteral("PropagateHttpHeader"), QStringLiteral("true")); connect(job, &KIO::DavJob::result, this, [d](KJob *job) { d->davJobFinished(job); @@ -65,7 +65,7 @@ Q_D(const DavItemsFetchJob); DavItem::List values; values.reserve(d->mItems.size()); - for (const auto &value : qAsConst(d->mItems)) { + for (const auto &value : std::as_const(d->mItems)) { values << value; } return values; @@ -97,7 +97,8 @@ const DavMultigetProtocol *protocol = static_cast<const DavMultigetProtocol *>(DavManager::davProtocol(mCollectionUrl.protocol())); - const QDomDocument document = davJob->response(); + QDomDocument document; + document.setContent(davJob->responseData(), true); const QDomElement documentElement = document.documentElement(); QDomElement responseElement = Utils::firstChildElementNS(documentElement, QStringLiteral("DAV:"), QStringLiteral("response")); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdav-5.85.0/src/common/davitemslistjob.cpp new/kdav-5.86.0/src/common/davitemslistjob.cpp --- old/kdav-5.85.0/src/common/davitemslistjob.cpp 2021-08-06 11:01:57.000000000 +0200 +++ new/kdav-5.86.0/src/common/davitemslistjob.cpp 2021-09-04 18:58:02.000000000 +0200 @@ -17,7 +17,7 @@ #include <KIO/DavJob> #include <KIO/Job> -#include <QSet> +#include <set> using namespace KDAV; @@ -34,7 +34,7 @@ QString mRangeStart; QString mRangeEnd; DavItem::List mItems; - QSet<QString> mSeenUrls; // to prevent events duplication with some servers + std::set<QString> mSeenUrls; // to prevent events duplication with some servers DavItem::List mChangedItems; QStringList mDeletedItems; uint mSubJobCount = 0; @@ -86,7 +86,7 @@ if (d->mMimeTypes.isEmpty() || d->mMimeTypes.contains(mimeType)) { ++d->mSubJobCount; if (protocol->useReport()) { - KIO::DavJob *job = DavManager::self()->createReportJob(d->mUrl.url(), props); + KIO::DavJob *job = DavManager::self()->createReportJob(d->mUrl.url(), props.toString()); job->addMetaData(QStringLiteral("PropagateHttpHeader"), QStringLiteral("true")); job->setProperty("davType", QStringLiteral("report")); job->setProperty("itemsMimeType", mimeType); @@ -94,7 +94,7 @@ d->davJobFinished(job); }); } else { - KIO::DavJob *job = DavManager::self()->createPropFindJob(d->mUrl.url(), props); + KIO::DavJob *job = DavManager::self()->createPropFindJob(d->mUrl.url(), props.toString()); job->addMetaData(QStringLiteral("PropagateHttpHeader"), QStringLiteral("true")); job->setProperty("davType", QStringLiteral("propFind")); job->setProperty("itemsMimeType", mimeType); @@ -171,7 +171,8 @@ */ const QString itemsMimeType = job->property("itemsMimeType").toString(); - const QDomDocument document = davJob->response(); + QDomDocument document; + document.setContent(davJob->responseData(), true); const QDomElement documentElement = document.documentElement(); QDomElement responseElement = Utils::firstChildElementNS(documentElement, QStringLiteral("DAV:"), QStringLiteral("response")); @@ -225,13 +226,13 @@ url = QUrl::fromUserInput(href); } - QString itemUrl = url.toDisplayString(); - if (mSeenUrls.contains(itemUrl)) { + const QString itemUrl = url.toDisplayString(); + const auto [it, isInserted] = mSeenUrls.insert(itemUrl); + if (!isInserted) { responseElement = Utils::nextSiblingElementNS(responseElement, QStringLiteral("DAV:"), QStringLiteral("response")); continue; } - mSeenUrls << itemUrl; auto _url = url; _url.setUserInfo(mUrl.url().userInfo()); item.setUrl(DavUrl(_url, mUrl.protocol())); @@ -251,10 +252,15 @@ } } - const auto etagCacheUrls = mEtagCache->urls(); - QSet<QString> removed(etagCacheUrls.begin(), etagCacheUrls.end()); - removed.subtract(mSeenUrls); - mDeletedItems = removed.values(); + mDeletedItems.clear(); + + const auto map = mEtagCache->etagCacheMap(); + for (auto it = map.cbegin(); it != map.cend(); ++it) { + const QString remoteId = it.key(); + if (mSeenUrls.find(remoteId) == mSeenUrls.cend()) { + mDeletedItems.append(remoteId); + } + } if (--mSubJobCount == 0) { emitResult(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdav-5.85.0/src/common/davmanager.cpp new/kdav-5.86.0/src/common/davmanager.cpp --- old/kdav-5.85.0/src/common/davmanager.cpp 2021-08-06 11:01:57.000000000 +0200 +++ new/kdav-5.86.0/src/common/davmanager.cpp 2021-09-04 18:58:02.000000000 +0200 @@ -14,7 +14,6 @@ #include "libkdav_debug.h" -#include <QDomDocument> #include <QUrl> using namespace KDAV; @@ -28,7 +27,7 @@ return &sSelf; } -KIO::DavJob *DavManager::createPropFindJob(const QUrl &url, const QDomDocument &document, const QString &depth) const +KIO::DavJob *DavManager::createPropFindJob(const QUrl &url, const QString &document, const QString &depth) const { KIO::DavJob *job = KIO::davPropFind(url, document, depth, KIO::HideProgressInfo | KIO::DefaultFlags); @@ -39,9 +38,9 @@ return job; } -KIO::DavJob *DavManager::createReportJob(const QUrl &url, const QDomDocument &document, const QString &depth) const +KIO::DavJob *DavManager::createReportJob(const QUrl &url, const QString &document, const QString &depth) const { - KIO::DavJob *job = KIO::davReport(url, document.toString(), depth, KIO::HideProgressInfo | KIO::DefaultFlags); + KIO::DavJob *job = KIO::davReport(url, document, depth, KIO::HideProgressInfo | KIO::DefaultFlags); job->addMetaData(QStringLiteral("cookies"), QStringLiteral("none")); job->addMetaData(QStringLiteral("no-auth-prompt"), QStringLiteral("true")); @@ -50,7 +49,7 @@ return job; } -KIO::DavJob *DavManager::createPropPatchJob(const QUrl &url, const QDomDocument &document) const +KIO::DavJob *DavManager::createPropPatchJob(const QUrl &url, const QString &document) const { KIO::DavJob *job = KIO::davPropPatch(url, document, KIO::HideProgressInfo | KIO::DefaultFlags); const QString header = QStringLiteral("Content-Type: text/xml"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdav-5.85.0/src/common/davmanager_p.h new/kdav-5.86.0/src/common/davmanager_p.h --- old/kdav-5.85.0/src/common/davmanager_p.h 2021-08-06 11:01:57.000000000 +0200 +++ new/kdav-5.86.0/src/common/davmanager_p.h 2021-09-04 18:58:02.000000000 +0200 @@ -20,8 +20,6 @@ class QUrl; -class QDomDocument; - /** CalDav/CardDav protocol implementation. */ namespace KDAV { @@ -54,7 +52,7 @@ * @param document The query XML document. * @param depth The Depth: value to send in the HTTP request */ - KIO::DavJob *createPropFindJob(const QUrl &url, const QDomDocument &document, const QString &depth = QStringLiteral("1")) const; + KIO::DavJob *createPropFindJob(const QUrl &url, const QString &document, const QString &depth = QStringLiteral("1")) const; /** * Returns a preconfigured DAV REPORT job. @@ -63,7 +61,7 @@ * @param document The query XML document. * @param depth The Depth: value to send in the HTTP request */ - KIO::DavJob *createReportJob(const QUrl &url, const QDomDocument &document, const QString &depth = QStringLiteral("1")) const; + KIO::DavJob *createReportJob(const QUrl &url, const QString &document, const QString &depth = QStringLiteral("1")) const; /** * Returns a preconfigured DAV PROPPATCH job. @@ -71,7 +69,7 @@ * @param url The target URL of the job. * @param document The query XML document. */ - KIO::DavJob *createPropPatchJob(const QUrl &url, const QDomDocument &document) const; + KIO::DavJob *createPropPatchJob(const QUrl &url, const QString &document) const; /** * Returns the DAV protocol dialect object for the given DAV @p protocol. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdav-5.85.0/src/common/davprincipalhomesetsfetchjob.cpp new/kdav-5.86.0/src/common/davprincipalhomesetsfetchjob.cpp --- old/kdav-5.85.0/src/common/davprincipalhomesetsfetchjob.cpp 2021-08-06 11:01:57.000000000 +0200 +++ new/kdav-5.86.0/src/common/davprincipalhomesetsfetchjob.cpp 2021-09-04 18:58:02.000000000 +0200 @@ -75,7 +75,7 @@ propElement.appendChild(document.createElementNS(QStringLiteral("DAV:"), QStringLiteral("principal-URL"))); } - KIO::DavJob *job = DavManager::self()->createPropFindJob(mUrl.url(), document, QStringLiteral("0")); + KIO::DavJob *job = DavManager::self()->createPropFindJob(mUrl.url(), document.toString(), QStringLiteral("0")); job->addMetaData(QStringLiteral("PropagateHttpHeader"), QStringLiteral("true")); QObject::connect(job, &KIO::DavJob::result, q_ptr, [this](KJob *job) { davJobFinished(job); @@ -160,7 +160,8 @@ QString nextRoundHref; // The content of the href element that will be used if no homeset was found. // This is either given by current-user-principal or by principal-URL. - const QDomDocument document = davJob->response(); + QDomDocument document; + document.setContent(davJob->responseData(), true); const QDomElement multistatusElement = document.documentElement(); QDomElement responseElement = Utils::firstChildElementNS(multistatusElement, QStringLiteral("DAV:"), QStringLiteral("response")); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdav-5.85.0/src/common/davprincipalsearchjob.cpp new/kdav-5.86.0/src/common/davprincipalsearchjob.cpp --- old/kdav-5.85.0/src/common/davprincipalsearchjob.cpp 2021-08-06 11:01:57.000000000 +0200 +++ new/kdav-5.86.0/src/common/davprincipalsearchjob.cpp 2021-09-04 18:58:02.000000000 +0200 @@ -87,7 +87,7 @@ QDomElement principalCollectionSet = query.createElementNS(QStringLiteral("DAV:"), QStringLiteral("principal-collection-set")); prop.appendChild(principalCollectionSet); - KIO::DavJob *job = DavManager::self()->createPropFindJob(d->mUrl.url(), query); + KIO::DavJob *job = DavManager::self()->createPropFindJob(d->mUrl.url(), query.toString()); job->addMetaData(QStringLiteral("PropagateHttpHeader"), QStringLiteral("true")); connect(job, &KIO::DavJob::result, this, [d](KJob *job) { d->principalCollectionSetSearchFinished(job); @@ -139,7 +139,8 @@ * </D:multistatus> */ - QDomDocument document = davJob->response(); + QDomDocument document; + document.setContent(davJob->responseData(), true); QDomElement documentElement = document.documentElement(); QDomElement responseElement = Utils::firstChildElementNS(documentElement, QStringLiteral("DAV:"), QStringLiteral("response")); @@ -197,7 +198,7 @@ QDomDocument principalPropertySearchQuery; buildReportQuery(principalPropertySearchQuery); - KIO::DavJob *reportJob = DavManager::self()->createReportJob(url, principalPropertySearchQuery); + KIO::DavJob *reportJob = DavManager::self()->createReportJob(url, principalPropertySearchQuery.toString()); reportJob->addMetaData(QStringLiteral("PropagateHttpHeader"), QStringLiteral("true")); QObject::connect(reportJob, &KIO::DavJob::result, q_ptr, [this](KJob *job) { principalPropertySearchFinished(job); @@ -268,7 +269,8 @@ * </D:multistatus> */ - const QDomDocument document = davJob->response(); + QDomDocument document; + document.setContent(davJob->responseData(), true); const QDomElement documentElement = document.documentElement(); QDomElement responseElement = Utils::firstChildElementNS(documentElement, QStringLiteral("DAV:"), QStringLiteral("response")); @@ -310,7 +312,7 @@ // All requested properties are now under propElement, so let's find them typedef QPair<QString, QString> PropertyPair; - for (const PropertyPair &fetchProperty : qAsConst(mFetchProperties)) { + for (const PropertyPair &fetchProperty : std::as_const(mFetchProperties)) { QDomNodeList fetchNodes = propElement.elementsByTagNameNS(fetchProperty.first, fetchProperty.second); for (int i = 0; i < fetchNodes.size(); ++i) { QDomElement fetchElement = fetchNodes.at(i).toElement(); @@ -383,7 +385,7 @@ principalPropertySearch.appendChild(prop); typedef QPair<QString, QString> PropertyPair; - for (const PropertyPair &fetchProperty : qAsConst(mFetchProperties)) { + for (const PropertyPair &fetchProperty : std::as_const(mFetchProperties)) { QDomElement elem = query.createElementNS(fetchProperty.first, fetchProperty.second); prop.appendChild(elem); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdav-5.85.0/src/common/etagcache.cpp new/kdav-5.86.0/src/common/etagcache.cpp --- old/kdav-5.85.0/src/common/etagcache.cpp 2021-08-06 11:01:57.000000000 +0200 +++ new/kdav-5.86.0/src/common/etagcache.cpp 2021-09-04 18:58:02.000000000 +0200 @@ -33,9 +33,7 @@ { setEtagInternal(remoteId, etag); - if (d->mChangedRemoteIds.contains(remoteId)) { - d->mChangedRemoteIds.remove(remoteId); - } + d->mChangedRemoteIds.remove(remoteId); } void EtagCache::setEtagInternal(const QString &remoteId, const QString &etag) @@ -72,6 +70,11 @@ d->mCache.remove(remoteId); } +QMap<QString, QString> EtagCache::etagCacheMap() const +{ + return d->mCache; +} + QStringList EtagCache::urls() const { return d->mCache.keys(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdav-5.85.0/src/common/etagcache.h new/kdav-5.86.0/src/common/etagcache.h --- old/kdav-5.85.0/src/common/etagcache.h 2021-08-06 11:01:57.000000000 +0200 +++ new/kdav-5.86.0/src/common/etagcache.h 2021-09-04 18:58:02.000000000 +0200 @@ -92,6 +92,12 @@ private: const std::unique_ptr<EtagCachePrivate> d; + + friend class DavItemsListJobPrivate; + // @internal + // Returns a map of remote Id and corresponding etag string key/value pairs. + // Only used by DavItemsListJobPrivate + Q_DECL_HIDDEN QMap<QString, QString> etagCacheMap() const; }; }
