QtWebIconDatabaseClient.h [plain text]
#ifndef QtWebIconDatabaseClient_h
#define QtWebIconDatabaseClient_h
#include "WKIconDatabase.h"
#include "qwebkitglobal.h"
#include <QtCore/QObject>
#include <QtCore/QSize>
#include <wtf/RefPtr.h>
#include <wtf/Threading.h>
QT_BEGIN_NAMESPACE
class QImage;
class QUrl;
QT_END_NAMESPACE
namespace WTF {
class String;
}
namespace WebKit {
class QtWebContext;
class WebIconDatabase;
class QtWebIconDatabaseClient : public QObject {
Q_OBJECT
public:
QtWebIconDatabaseClient(QtWebContext*);
~QtWebIconDatabaseClient();
QImage iconImageForPageURL(const WTF::String& pageURL, const QSize& iconSize = QSize(32, 32));
void retainIconForPageURL(const WTF::String&);
void releaseIconForPageURL(const WTF::String&);
public Q_SLOTS:
void requestIconForPageURL(const QUrl&);
public:
Q_SIGNAL void iconChangedForPageURL(const QUrl& pageURL, const QUrl& iconURL);
private:
unsigned iconURLHashForPageURL(const WTF::String&);
static void didChangeIconForPageURL(WKIconDatabaseRef, WKURLRef pageURL, const void* clientInfo);
uint64_t m_contextId;
RefPtr<WebKit::WebIconDatabase> m_iconDatabase;
Mutex m_imageLock;
};
}
#endif