File indexing completed on 2024-05-12 05:37:17
0001 /* 0002 SPDX-FileCopyrightText: 2007 Marco Martin <notmart@gmail.com> 0003 SPDX-FileCopyrightText: 2013 Andrea Scarpino <scarpino@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #include "favicons.h" 0009 0010 #include <QImage> 0011 #include <QPixmap> 0012 0013 #include "faviconprovider.h" 0014 0015 FaviconsEngine::FaviconsEngine(QObject *parent) 0016 : Plasma5Support::DataEngine(parent) 0017 { 0018 } 0019 0020 FaviconsEngine::~FaviconsEngine() 0021 { 0022 } 0023 0024 bool FaviconsEngine::updateSourceEvent(const QString &identifier) 0025 { 0026 FaviconProvider *provider = new FaviconProvider(this, identifier); 0027 0028 connect(provider, &FaviconProvider::finished, this, &FaviconsEngine::finished); 0029 connect(provider, &FaviconProvider::error, this, &FaviconsEngine::error); 0030 0031 if (!provider->image().isNull()) { 0032 setData(provider->identifier(), QStringLiteral("Icon"), provider->image()); 0033 } 0034 0035 return true; 0036 } 0037 0038 bool FaviconsEngine::sourceRequestEvent(const QString &identifier) 0039 { 0040 setData(identifier, QPixmap()); 0041 return updateSourceEvent(identifier); 0042 } 0043 0044 void FaviconsEngine::finished(FaviconProvider *provider) 0045 { 0046 setData(provider->identifier(), QStringLiteral("Icon"), provider->image()); 0047 provider->deleteLater(); 0048 } 0049 0050 void FaviconsEngine::error(FaviconProvider *provider) 0051 { 0052 setData(provider->identifier(), QImage()); 0053 provider->deleteLater(); 0054 } 0055 0056 K_PLUGIN_CLASS_WITH_JSON(FaviconsEngine, "plasma-dataengine-favicons.json") 0057 0058 #include "favicons.moc"