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

0001 /*
0002     SPDX-FileCopyrightText: 2001 Malte Starostik <malte@kde.org>
0003     SPDX-FileCopyrightText: 2020 Jonathan Marten <jjm@keelhaul.me.uk>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #ifndef WEBARCHIVECREATOR_H
0009 #define WEBARCHIVECREATOR_H
0010 
0011 #include <QObject>
0012 #ifdef THUMBNAIL_USE_WEBKIT
0013 #include <QNetworkCookieJar>
0014 #endif // THUMBNAIL_USE_WEBKIT
0015 
0016 #include <KIO/ThumbnailCreator>
0017 
0018 
0019 class QTemporaryDir;
0020 
0021 
0022 class WebArchiveCreator : public KIO::ThumbnailCreator
0023 {
0024     Q_OBJECT
0025 
0026 public:
0027     WebArchiveCreator(QObject *parent, const QVariantList &va);
0028     ~WebArchiveCreator() override;
0029 
0030     KIO::ThumbnailResult create(const KIO::ThumbnailRequest & request) override;
0031 
0032 private slots:
0033     void slotLoadFinished(bool ok);
0034 
0035     void slotProcessingTimeout();
0036     void slotRenderTimer();
0037 
0038 private:
0039     QTemporaryDir *m_tempDir;
0040 
0041     bool m_rendered;
0042     bool m_error;
0043 };
0044 
0045 
0046 #ifdef THUMBNAIL_USE_WEBKIT
0047 
0048 class WebArchiveCreatorCookieJar : public QNetworkCookieJar
0049 {
0050     Q_OBJECT
0051 
0052 public:
0053     WebArchiveCreatorCookieJar(QObject *parent = nullptr);
0054     ~WebArchiveCreatorCookieJar() override = default;
0055 
0056     QList<QNetworkCookie> cookiesForUrl(const QUrl &url) const override;
0057     bool insertCookie(const QNetworkCookie & cookie) override;
0058     bool setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url) override;
0059 };
0060 
0061 #endif // THUMBNAIL_USE_WEBKIT
0062 
0063 #endif // WEBARCHIVECREATOR_H