/usr/include/KF5/KIOGui/kio/faviconrequestjob.h is in libkf5kio-dev 5.28.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | /*
* This file is part of the KDE libraries
* Copyright (c) 2016 David Faure <faure@kde.org>
* Copyright (C) 2001 Malte Starostik <malte@kde.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef KIO_FAVICONREQUESTJOB_H
#define KIO_FAVICONREQUESTJOB_H
#include "kiogui_export.h"
#include <kio/job_base.h> // for LoadType
class QUrl;
namespace KIO
{
class FavIconRequestJobPrivate;
/**
* FavIconRequestJob handles the retrieval of a favicon (either from the local cache or from the internet)
*
* For instance, the icon for http://www.google.com exists at http://www.google.com/favicon.ico
* This job will (the first time) download the favicon, and make it available as a local PNG
* for fast lookups afterwards.
*
* Usage:
* Create a FavIconRequestJob, connect to result(KJob *), and from there use iconFile().
*
* @code
* // Let's say we want to show the icon for QUrl m_url
* KIO::FavIconRequestJob *job = new KIO::FavIconRequestJob(m_url);
* connect(job, &KIO::FavIconRequestJob::result, this, [job, this](KJob *){
* if (!job->error()) {
* // show the icon using QIcon(job->iconFile())
* }
* });
* @endcode
*
* For a given HTTP URL, you can find out if a favicon is available by calling KIO::favIconForUrl() in KIOCore.
* It is however not necessary to check this first, FavIconRequestJob will do this
* first and emit result right away if a cached icon is available and not too old.
*
* In Web Browsers, additional information exists: the HTML for a given page can
* specify something like
* <link rel="shortcut icon" href="another_favicon.ico" />
* To handle this, call job->setIconUrl(iconUrl).
* (KParts-based web engines use the signal BrowserExtension::setIconUrl to call back
* into the web browser application, which should then call this).
* The signal urlIconChanged will be emitted once the icon has been downloaded.
*
* The on-disk cache is shared between processes.
*
* @since 5.19
*/
class KIOGUI_EXPORT FavIconRequestJob : public KCompositeJob
{
Q_OBJECT
public:
/**
* @brief FavIconRequestJob constructor
* @param hostUrl The web page URL. We only use the scheme and host.
* @param reload set this to reload to skip the cache and force a refresh of the favicon.
* @param parent parent object
*/
explicit FavIconRequestJob(const QUrl &hostUrl, KIO::LoadType reload = KIO::NoReload, QObject *parent = Q_NULLPTR);
/**
* Destructor. You do not need to delete the job, it will delete automatically,
* unless you call setAutoDelete(false).
*/
~FavIconRequestJob();
/**
* @brief setIconUrl allows to set, for a specific URL, a different icon URL
* than the default one for the host (http://host/favicon.ico)
*
* This information is stored in the on-disk cache, so that
* other FavIconRequestJobs for this url and KIO::favIconForUrl
* will return the icon specified here.
*
* @param iconUrl the URL to the icon, usually parsed from the HTML
*/
void setIconUrl(const QUrl &iconUrl);
/**
* Returns the full local path to the icon from the cache.
* Only call this in the slot connected to the result(KJob*) signal.
* @return the path to the icon file
*/
QString iconFile() const;
/**
* Returns the URL passed to the constructor
* @since 5.20
*/
QUrl hostUrl() const;
/**
* @internal
* Do not call start(), KIO jobs are autostarted
*/
void start() Q_DECL_OVERRIDE {}
private Q_SLOTS:
void doStart(); // not called start() so that exec() doesn't call it too
void slotResult(KJob *job) Q_DECL_OVERRIDE;
private:
Q_PRIVATE_SLOT(d, void slotData(KIO::Job *, const QByteArray &))
FavIconRequestJobPrivate *const d;
};
}
#endif
|