File indexing completed on 2024-04-28 03:53:54
0001 /* 0002 SPDX-FileCopyrightText: 2010 Grégory Oestreicher <greg@kamago.net> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "davcollectiondeletejob.h" 0008 #include "davjobbase_p.h" 0009 0010 #include "daverror.h" 0011 0012 #include <KIO/DeleteJob> 0013 #include <KIO/Job> 0014 0015 using namespace KDAV; 0016 0017 namespace KDAV 0018 { 0019 class DavCollectionDeleteJobPrivate : public DavJobBasePrivate 0020 { 0021 public: 0022 void davJobFinished(KJob *job); 0023 0024 DavUrl mUrl; 0025 }; 0026 } 0027 0028 DavCollectionDeleteJob::DavCollectionDeleteJob(const DavUrl &url, QObject *parent) 0029 : DavJobBase(new DavCollectionDeleteJobPrivate, parent) 0030 { 0031 Q_D(DavCollectionDeleteJob); 0032 d->mUrl = url; 0033 } 0034 0035 void DavCollectionDeleteJob::start() 0036 { 0037 Q_D(DavCollectionDeleteJob); 0038 KIO::DeleteJob *job = KIO::del(d->mUrl.url(), KIO::HideProgressInfo | KIO::DefaultFlags); 0039 job->addMetaData(QStringLiteral("PropagateHttpHeader"), QStringLiteral("true")); 0040 job->addMetaData(QStringLiteral("cookies"), QStringLiteral("none")); 0041 job->addMetaData(QStringLiteral("no-auth-prompt"), QStringLiteral("true")); 0042 0043 connect(job, &KIO::DeleteJob::result, this, [d](KJob *job) { 0044 d->davJobFinished(job); 0045 }); 0046 } 0047 0048 void DavCollectionDeleteJobPrivate::davJobFinished(KJob *job) 0049 { 0050 KIO::DeleteJob *deleteJob = qobject_cast<KIO::DeleteJob *>(job); 0051 0052 if (deleteJob->error() && deleteJob->error() != KIO::ERR_NO_CONTENT) { 0053 const int responseCode = deleteJob->queryMetaData(QStringLiteral("responsecode")).isEmpty() // 0054 ? 0 0055 : deleteJob->queryMetaData(QStringLiteral("responsecode")).toInt(); 0056 0057 setLatestResponseCode(responseCode); 0058 setError(ERR_COLLECTIONDELETE); 0059 setJobErrorText(deleteJob->errorText()); 0060 setJobError(deleteJob->error()); 0061 setErrorTextFromDavError(); 0062 } 0063 0064 emitResult(); 0065 } 0066 0067 #include "moc_davcollectiondeletejob.cpp"