/* * This file Copyright (C) 2010-2014 Mnemosyne LLC * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 * as published by the Free Software Foundation. * * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html * * $Id$ */ #ifndef FAVICON_CACHE_H #define FAVICON_CACHE_H class QNetworkAccessManager; class QNetworkReply; class QUrl; #include #include #include #include class Favicons: public QObject { Q_OBJECT; public: static QString getHost( const QUrl& url ); public: Favicons(); virtual ~Favicons(); // returns a cached pixmap, or a NULL pixmap if there's no match in the cache QPixmap find (const QUrl& url); // returns a cached pixmap, or a NULL pixmap if there's no match in the cache QPixmap findFromHost (const QString& host); // this will emit a signal when (if) the icon becomes ready void add (const QUrl& url); signals: void pixmapReady (const QString& host); private: QNetworkAccessManager * myNAM; QMap myPixmaps; QString getCacheDir (); void ensureCacheDirHasBeenScanned (); private slots: void onRequestFinished (QNetworkReply * reply); }; #endif