File indexing completed on 2024-04-28 03:56:24
0001 /* 0002 SPDX-FileCopyrightText: 2016 Dan Leinir Turthra Jensen <admin@leinir.dk> 0003 0004 SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #include "downloadjob.h" 0008 0009 #include "httpworker.h" 0010 0011 #include "knewstuffcore_debug.h" 0012 0013 using namespace KNSCore; 0014 0015 class KNSCore::DownloadJobPrivate 0016 { 0017 public: 0018 DownloadJobPrivate() = default; 0019 QUrl source; 0020 QUrl destination; 0021 }; 0022 0023 DownloadJob::DownloadJob(const QUrl &source, const QUrl &destination, int permissions, JobFlags flags, QObject *parent) 0024 : FileCopyJob(source, destination, permissions, flags, parent) 0025 , d(new DownloadJobPrivate) 0026 { 0027 d->source = source; 0028 d->destination = destination; 0029 } 0030 0031 DownloadJob::DownloadJob(QObject *parent) 0032 : FileCopyJob(parent) 0033 , d(new DownloadJobPrivate) 0034 { 0035 } 0036 0037 DownloadJob::~DownloadJob() = default; 0038 0039 void DownloadJob::start() 0040 { 0041 qCDebug(KNEWSTUFFCORE) << Q_FUNC_INFO; 0042 HTTPWorker *worker = new HTTPWorker(d->source, d->destination, HTTPWorker::DownloadJob, this); 0043 connect(worker, &HTTPWorker::completed, this, &DownloadJob::handleWorkerCompleted); 0044 connect(worker, &HTTPWorker::error, this, &DownloadJob::handleWorkerError); 0045 worker->startRequest(); 0046 } 0047 0048 void DownloadJob::handleWorkerCompleted() 0049 { 0050 emitResult(); 0051 } 0052 0053 void KNSCore::DownloadJob::handleWorkerError(const QString &error) 0054 { 0055 setError(KJob::UserDefinedError); 0056 setErrorText(error); 0057 } 0058 0059 #include "moc_downloadjob.cpp"