File indexing completed on 2024-05-05 17:45:00

0001 /*
0002     SPDX-FileCopyrightText: 2007 Glenn Ergeerts <glenn.ergeerts@telenet.be>
0003     SPDX-FileCopyrightText: 2012 Marco Gulino <marco.gulino@xpeppers.com>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #pragma once
0009 
0010 #include "favicon.h"
0011 #include "fetchsqlite.h"
0012 #include <QIcon>
0013 
0014 class FaviconFromBlob : public Favicon
0015 {
0016     Q_OBJECT
0017 public:
0018     static FaviconFromBlob *chrome(const QString &profileDirectory, QObject *parent = nullptr);
0019     static FaviconFromBlob *firefox(FetchSqlite *fetchSqlite, QObject *parent = nullptr);
0020     static FaviconFromBlob *falkon(const QString &profileDirectory, QObject *parent = nullptr);
0021     ~FaviconFromBlob() override;
0022     QIcon iconFor(const QString &url) override;
0023 
0024 public Q_SLOTS:
0025     void prepare() override;
0026     void teardown() override;
0027 
0028 private:
0029     FaviconFromBlob(const QString &profileName, const QString &query, const QString &blobColumn, FetchSqlite *fetchSqlite, QObject *parent = nullptr);
0030     QString m_profileCacheDirectory;
0031     QString m_query;
0032     QString const m_blobcolumn;
0033     FetchSqlite *m_fetchsqlite;
0034     void cleanCacheDirectory();
0035 };