File indexing completed on 2024-05-12 05:12:50

0001 /*
0002    SPDX-FileCopyrightText: 2015-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "akregator_export.h"
0010 #include <QObject>
0011 #include <QUrl>
0012 namespace Akregator
0013 {
0014 class ArticleViewerWebEngine;
0015 class AKREGATOR_EXPORT ArticleHtmlWebEngineWriter : public QObject
0016 {
0017     Q_OBJECT
0018 public:
0019     explicit ArticleHtmlWebEngineWriter(ArticleViewerWebEngine *view, QObject *parent = nullptr);
0020     ~ArticleHtmlWebEngineWriter() override;
0021 
0022     void begin();
0023     void end();
0024     void reset();
0025     void queue(const QString &str);
0026     void flush();
0027     void setBaseUrl(const QUrl &url);
0028 
0029 Q_SIGNALS:
0030     void finished();
0031 
0032 private:
0033     enum State { Begun, Queued, Ended } mState = Ended;
0034 
0035     QString mHtml;
0036     QUrl mBaseUrl;
0037     ArticleViewerWebEngine *const mWebView;
0038 };
0039 }