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"