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 <QIcon> 0011 #include <QObject> 0012 0013 class Favicon : public QObject 0014 { 0015 Q_OBJECT 0016 public: 0017 explicit Favicon(QObject *parent = nullptr); 0018 virtual QIcon iconFor(const QString &url) = 0; 0019 0020 protected: 0021 inline QIcon defaultIcon() const 0022 { 0023 return m_default_icon; 0024 } 0025 0026 private: 0027 QIcon const m_default_icon; 0028 0029 public Q_SLOTS: 0030 virtual void prepare() 0031 { 0032 } 0033 virtual void teardown() 0034 { 0035 } 0036 }; 0037 0038 class FallbackFavicon : public Favicon 0039 { 0040 Q_OBJECT 0041 public: 0042 FallbackFavicon(QObject *parent = nullptr) 0043 : Favicon(parent) 0044 { 0045 } 0046 QIcon iconFor(const QString &) override 0047 { 0048 return defaultIcon(); 0049 } 0050 };