1 /*
2     SPDX-FileCopyrightText: 2007 Glenn Ergeerts <glenn.ergeerts@telenet.be>
3     SPDX-FileCopyrightText: 2012 Marco Gulino <marco.gulino@xpeppers.com>
4 
5     SPDX-License-Identifier: LGPL-2.0-or-later
6 */
7 
8 #pragma once
9 
10 #include "favicon.h"
11 #include "fetchsqlite.h"
12 #include <QIcon>
13 
14 class FaviconFromBlob : public Favicon
15 {
16     Q_OBJECT
17 public:
18     static FaviconFromBlob *chrome(const QString &profileDirectory, QObject *parent = nullptr);
19     static FaviconFromBlob *firefox(FetchSqlite *fetchSqlite, QObject *parent = nullptr);
20     static FaviconFromBlob *falkon(const QString &profileDirectory, QObject *parent = nullptr);
21     ~FaviconFromBlob() override;
22     QIcon iconFor(const QString &url) override;
23 
24 public Q_SLOTS:
25     void prepare() override;
26     void teardown() override;
27 
28 private:
29     FaviconFromBlob(const QString &profileName, const QString &query, const QString &blobColumn, FetchSqlite *fetchSqlite, QObject *parent = nullptr);
30     QString m_profileCacheDirectory;
31     QString m_query;
32     QString const m_blobcolumn;
33     FetchSqlite *m_fetchsqlite;
34     void cleanCacheDirectory();
35 };
36