diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -57,7 +57,6 @@ DavItemModifyJob DavItemsFetchJob DavItemsListJob - DavManager DavPrincipalHomesetsFetchJob DavPrincipalSearchJob DavUrl diff --git a/src/common/davcollectionmodifyjob.cpp b/src/common/davcollectionmodifyjob.cpp --- a/src/common/davcollectionmodifyjob.cpp +++ b/src/common/davcollectionmodifyjob.cpp @@ -18,7 +18,7 @@ #include "davcollectionmodifyjob.h" #include "davjobbase_p.h" -#include "davmanager.h" +#include "davmanager_p.h" #include "daverror.h" #include "utils.h" diff --git a/src/common/davcollectionsfetchjob.cpp b/src/common/davcollectionsfetchjob.cpp --- a/src/common/davcollectionsfetchjob.cpp +++ b/src/common/davcollectionsfetchjob.cpp @@ -19,7 +19,6 @@ #include "davcollectionsfetchjob.h" #include "davjobbase_p.h" -#include "davmanager.h" #include "davmanager_p.h" #include "davprincipalhomesetsfetchjob.h" #include "davprotocolbase_p.h" @@ -56,7 +55,7 @@ void DavCollectionsFetchJob::start() { Q_D(DavCollectionsFetchJob); - if (DavManagerPrivate::davProtocol(d->mUrl.protocol())->supportsPrincipals()) { + if (DavManager::davProtocol(d->mUrl.protocol())->supportsPrincipals()) { DavPrincipalHomeSetsFetchJob *job = new DavPrincipalHomeSetsFetchJob(d->mUrl); connect(job, &DavPrincipalHomeSetsFetchJob::result, this, &DavCollectionsFetchJob::principalFetchFinished); job->start(); @@ -82,7 +81,7 @@ Q_D(DavCollectionsFetchJob); ++d->mSubJobCount; - const QDomDocument collectionQuery = DavManagerPrivate::davProtocol(d->mUrl.protocol())->collectionsQuery()->buildQuery(); + const QDomDocument collectionQuery = DavManager::davProtocol(d->mUrl.protocol())->collectionsQuery()->buildQuery(); KIO::DavJob *job = DavManager::self()->createPropFindJob(url, collectionQuery); connect(job, &KIO::DavJob::result, this, &DavCollectionsFetchJob::collectionsFetchFinished); @@ -190,7 +189,7 @@ return; } - xquery.setQuery(DavManagerPrivate::davProtocol(d->mUrl.protocol())->collectionsXQuery()); + xquery.setQuery(DavManager::davProtocol(d->mUrl.protocol())->collectionsXQuery()); if (!xquery.isValid()) { setError(ERR_COLLECTIONFETCH_XQUERY_INVALID); setErrorTextFromDavError(); @@ -333,7 +332,7 @@ } // extract allowed content types - const DavCollection::ContentTypes contentTypes = DavManagerPrivate::davProtocol(d->mUrl.protocol())->collectionContentTypes(propstatElement); + const DavCollection::ContentTypes contentTypes = DavManager::davProtocol(d->mUrl.protocol())->collectionContentTypes(propstatElement); auto _url = url; _url.setUserInfo(d->mUrl.url().userInfo()); diff --git a/src/common/davitemcreatejob.cpp b/src/common/davitemcreatejob.cpp --- a/src/common/davitemcreatejob.cpp +++ b/src/common/davitemcreatejob.cpp @@ -20,7 +20,7 @@ #include "davjobbase_p.h" #include "davitemfetchjob.h" -#include "davmanager.h" +#include "davmanager_p.h" #include "daverror.h" #include diff --git a/src/common/davitemdeletejob.cpp b/src/common/davitemdeletejob.cpp --- a/src/common/davitemdeletejob.cpp +++ b/src/common/davitemdeletejob.cpp @@ -20,7 +20,7 @@ #include "davjobbase_p.h" #include "davitemfetchjob.h" -#include "davmanager.h" +#include "davmanager_p.h" #include "daverror.h" #include diff --git a/src/common/davitemfetchjob.cpp b/src/common/davitemfetchjob.cpp --- a/src/common/davitemfetchjob.cpp +++ b/src/common/davitemfetchjob.cpp @@ -19,7 +19,7 @@ #include "davitemfetchjob.h" #include "davjobbase_p.h" -#include "davmanager.h" +#include "davmanager_p.h" #include "daverror.h" #include diff --git a/src/common/davitemmodifyjob.cpp b/src/common/davitemmodifyjob.cpp --- a/src/common/davitemmodifyjob.cpp +++ b/src/common/davitemmodifyjob.cpp @@ -20,7 +20,7 @@ #include "davjobbase_p.h" #include "davitemfetchjob.h" -#include "davmanager.h" +#include "davmanager_p.h" #include "daverror.h" #include diff --git a/src/common/davitemsfetchjob.cpp b/src/common/davitemsfetchjob.cpp --- a/src/common/davitemsfetchjob.cpp +++ b/src/common/davitemsfetchjob.cpp @@ -20,7 +20,6 @@ #include "davitemsfetchjob.h" #include "davjobbase_p.h" -#include "davmanager.h" #include "davmanager_p.h" #include "davmultigetprotocol_p.h" #include "utils.h" @@ -53,7 +52,7 @@ { Q_D(DavItemsFetchJob); const DavMultigetProtocol *protocol - = dynamic_cast(DavManagerPrivate::davProtocol(d->mCollectionUrl.protocol())); + = dynamic_cast(DavManager::davProtocol(d->mCollectionUrl.protocol())); if (!protocol) { setError(ERR_NO_MULTIGET); setErrorTextFromDavError(); @@ -106,7 +105,7 @@ } const DavMultigetProtocol *protocol - = static_cast(DavManagerPrivate::davProtocol(d->mCollectionUrl.protocol())); + = static_cast(DavManager::davProtocol(d->mCollectionUrl.protocol())); const QDomDocument document = davJob->response(); const QDomElement documentElement = document.documentElement(); diff --git a/src/common/davitemslistjob.cpp b/src/common/davitemslistjob.cpp --- a/src/common/davitemslistjob.cpp +++ b/src/common/davitemslistjob.cpp @@ -20,7 +20,6 @@ #include "davjobbase_p.h" #include "daverror.h" -#include "davmanager.h" #include "davmanager_p.h" #include "davprotocolbase_p.h" #include "davurl.h" @@ -77,7 +76,7 @@ void DavItemsListJob::start() { Q_D(DavItemsListJob); - const DavProtocolBase *protocol = DavManagerPrivate::davProtocol(d->mUrl.protocol()); + const DavProtocolBase *protocol = DavManager::davProtocol(d->mUrl.protocol()); Q_ASSERT(protocol); QVectorIterator it(protocol->itemsQueries()); diff --git a/src/common/davmanager.h b/src/common/davmanager.h deleted file mode 100644 --- a/src/common/davmanager.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - Copyright (c) 2010 Tobias Koenig - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -*/ - -#ifndef KDAV_DAVMANAGER_H -#define KDAV_DAVMANAGER_H - -#include "kpimkdav_export.h" - -#include "enums.h" - -#include -#include - -#include - -namespace KIO { -class DavJob; -} - -class QUrl; - -class QDomDocument; - -/** CalDav/CardDav protocol implementation. */ -namespace KDAV { -class DavProtocolBase; -class DavManagerPrivate; - -/** - * @short A factory class for handling DAV jobs. - * - * This class provides factory methods to create preconfigured - * low-level DAV jobs and has access to the global DAV protocol dialect - * objects which abstract the access to the various DAV protocol dialects. - */ -class KPIMKDAV_EXPORT DavManager -{ -public: - /** - * Destroys the DAV manager. - */ - ~DavManager(); - - /** - * Returns the global instance of the DAV manager. - */ - static DavManager *self(); - - /** - * Returns a preconfigured DAV PROPFIND job. - * - * @param url The target url of the job. - * @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; - - /** - * Returns a preconfigured DAV REPORT job. - * - * @param url The target url of the job. - * @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; - - /** - * Returns a preconfigured DAV PROPPATCH job. - * - * @param url The target url of the job. - * @param document The query XML document. - */ - KIO::DavJob *createPropPatchJob(const QUrl &url, const QDomDocument &document) const; - -private: - /** - * Creates a new DAV manager. - */ - DavManager(); - - friend class DavManagerPrivate; - const std::unique_ptr d; -}; -} - -#endif diff --git a/src/common/davmanager.cpp b/src/common/davmanager.cpp --- a/src/common/davmanager.cpp +++ b/src/common/davmanager.cpp @@ -16,7 +16,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#include "davmanager.h" #include "davmanager_p.h" #include "protocols/caldavprotocol_p.h" @@ -32,11 +31,7 @@ using namespace KDAV; -DavManager::DavManager() : - d(new DavManagerPrivate) -{ -} - +DavManager::DavManager() = default; DavManager::~DavManager() = default; DavManager *DavManager::self() @@ -83,9 +78,9 @@ return job; } -const DavProtocolBase *DavManagerPrivate::davProtocol(Protocol protocol) +const DavProtocolBase *DavManager::davProtocol(Protocol protocol) { - const auto d = DavManagerPrivate::get(DavManager::self()); + const auto d = DavManager::self(); if (!d->mProtocols[protocol]) { switch (protocol) { case KDAV::CalDav: diff --git a/src/common/davmanager_p.h b/src/common/davmanager_p.h --- a/src/common/davmanager_p.h +++ b/src/common/davmanager_p.h @@ -1,48 +1,102 @@ /* - Copyright (c) 2019 Volker Krause + Copyright (c) 2010 Tobias Koenig - This program 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 program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. - This program 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. + This program 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 General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef KDAV_DAVMANAGER_P_H #define KDAV_DAVMANAGER_P_H -#include "davmanager.h" #include "enums.h" +#include +#include + #include +namespace KIO { +class DavJob; +} + +class QUrl; + +class QDomDocument; + +/** CalDav/CardDav protocol implementation. */ namespace KDAV { class DavProtocolBase; -class DavManagerPrivate +/** + * @short A factory class for handling DAV jobs. + * + * This class provides factory methods to create preconfigured + * low-level DAV jobs and has access to the global DAV protocol dialect + * objects which abstract the access to the various DAV protocol dialects. + */ +class DavManager { public: + /** + * Destroys the DAV manager. + */ + ~DavManager(); + + /** + * Returns the global instance of the DAV manager. + */ + static DavManager *self(); + + /** + * Returns a preconfigured DAV PROPFIND job. + * + * @param url The target url of the job. + * @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; + + /** + * Returns a preconfigured DAV REPORT job. + * + * @param url The target url of the job. + * @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; + + /** + * Returns a preconfigured DAV PROPPATCH job. + * + * @param url The target url of the job. + * @param document The query XML document. + */ + KIO::DavJob *createPropPatchJob(const QUrl &url, const QDomDocument &document) const; + /** * Returns the DAV protocol dialect object for the given DAV @p protocol. */ static const DavProtocolBase *davProtocol(Protocol protocol); - static inline DavManagerPrivate* get(DavManager *mgr) - { - return mgr->d.get(); - } +private: + /** + * Creates a new DAV manager. + */ + DavManager(); std::unique_ptr mProtocols[PROTOCOL_COUNT]; }; - } #endif - diff --git a/src/common/davprincipalhomesetsfetchjob.cpp b/src/common/davprincipalhomesetsfetchjob.cpp --- a/src/common/davprincipalhomesetsfetchjob.cpp +++ b/src/common/davprincipalhomesetsfetchjob.cpp @@ -19,7 +19,7 @@ #include "davprincipalhomesetsfetchjob.h" #include "davjobbase_p.h" -#include "davmanager.h" +#include "davmanager_p.h" #include "davprotocolbase_p.h" #include "daverror.h" #include "protocolinfo.h" diff --git a/src/common/davprincipalsearchjob.cpp b/src/common/davprincipalsearchjob.cpp --- a/src/common/davprincipalsearchjob.cpp +++ b/src/common/davprincipalsearchjob.cpp @@ -19,7 +19,7 @@ #include "davprincipalsearchjob.h" #include "davjobbase_p.h" -#include "davmanager.h" +#include "davmanager_p.h" #include "utils.h" #include "daverror.h" diff --git a/src/common/protocolinfo.cpp b/src/common/protocolinfo.cpp --- a/src/common/protocolinfo.cpp +++ b/src/common/protocolinfo.cpp @@ -23,15 +23,15 @@ bool ProtocolInfo::useMultiget(KDAV::Protocol protocol) { - return DavManagerPrivate::davProtocol(protocol)->useMultiget(); + return DavManager::davProtocol(protocol)->useMultiget(); } QString ProtocolInfo::principalHomeSet(KDAV::Protocol protocol) { - return DavManagerPrivate::davProtocol(protocol)->principalHomeSet(); + return DavManager::davProtocol(protocol)->principalHomeSet(); } QString ProtocolInfo::principalHomeSetNS(KDAV::Protocol protocol) { - return DavManagerPrivate::davProtocol(protocol)->principalHomeSetNS(); + return DavManager::davProtocol(protocol)->principalHomeSetNS(); } diff --git a/src/common/utils.cpp b/src/common/utils.cpp --- a/src/common/utils.cpp +++ b/src/common/utils.cpp @@ -21,7 +21,7 @@ #include "enums.h" #include "davitem.h" -#include "davmanager.h" +#include "davmanager_p.h" #include "davprotocolbase_p.h" #include