File indexing completed on 2024-05-12 05:12:55

0001 /*
0002    SPDX-FileCopyrightText: 2019-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "downloadfeediconjob.h"
0008 
0009 #include <KIO/FavIconRequestJob>
0010 
0011 using namespace Akregator;
0012 DownloadFeedIconJob::DownloadFeedIconJob(QObject *parent)
0013     : QObject(parent)
0014 {
0015 }
0016 
0017 DownloadFeedIconJob::~DownloadFeedIconJob() = default;
0018 
0019 bool DownloadFeedIconJob::start()
0020 {
0021     if (!canStart()) {
0022         deleteLater();
0023         return false;
0024     }
0025 
0026     auto job = new KIO::FavIconRequestJob(mFeedIconUrl);
0027     if (!mDownloadFavicon) {
0028         job->setIconUrl(mFeedIconUrl);
0029     }
0030     connect(job, &KIO::FavIconRequestJob::result, this, [job, this](KJob *) {
0031         if (!job->error()) {
0032             Q_EMIT result(job->iconFile());
0033         }
0034         deleteLater();
0035     });
0036     return true;
0037 }
0038 
0039 bool DownloadFeedIconJob::canStart() const
0040 {
0041     return !mFeedIconUrl.isEmpty();
0042 }
0043 
0044 QUrl DownloadFeedIconJob::feedIconUrl() const
0045 {
0046     return mFeedIconUrl;
0047 }
0048 
0049 void DownloadFeedIconJob::setFeedIconUrl(const QUrl &feedIconUrl)
0050 {
0051     mFeedIconUrl = feedIconUrl;
0052 }
0053 
0054 bool DownloadFeedIconJob::downloadFavicon() const
0055 {
0056     return mDownloadFavicon;
0057 }
0058 
0059 void DownloadFeedIconJob::setDownloadFavicon(bool downloadFavicon)
0060 {
0061     mDownloadFavicon = downloadFavicon;
0062 }
0063 
0064 #include "moc_downloadfeediconjob.cpp"