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