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

0001 /*
0002    SPDX-FileCopyrightText: 2016-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 "articleviewerwebengine.h"
0011 
0012 #include <QWidget>
0013 class KActionCollection;
0014 
0015 namespace TextAddonsWidgets
0016 {
0017 class SlideContainer;
0018 }
0019 #ifdef HAVE_KTEXTADDONS_TEXT_TO_SPEECH_SUPPORT
0020 namespace TextEditTextToSpeech
0021 {
0022 class TextToSpeechContainerWidget;
0023 }
0024 #endif
0025 
0026 namespace WebEngineViewer
0027 {
0028 class FindBarWebEngineView;
0029 class TrackingWarningWidget;
0030 }
0031 
0032 namespace Akregator
0033 {
0034 class AKREGATOR_EXPORT ArticleViewerWebEngineWidgetNg : public QWidget
0035 {
0036     Q_OBJECT
0037 public:
0038     explicit ArticleViewerWebEngineWidgetNg(ArticleViewerWebEngine *customViewer, KActionCollection *ac, QWidget *parent);
0039     explicit ArticleViewerWebEngineWidgetNg(KActionCollection *ac, QWidget *parent = nullptr);
0040     ~ArticleViewerWebEngineWidgetNg() override;
0041 
0042     ArticleViewerWebEngine *articleViewerNg() const;
0043 
0044     void saveCurrentPosition();
0045 public Q_SLOTS:
0046     void slotSpeakText();
0047     void slotFind();
0048     void slotPrint();
0049     void slotPrintPreview();
0050 
0051 private Q_SLOTS:
0052     void slotOpenInBrowser();
0053     void slotExportHtmlPageSuccess(const QString &filename);
0054     void slotExportHtmlPageFailed();
0055 
0056 private:
0057     void initializeActions(KActionCollection *ac);
0058     void initializeLayout(KActionCollection *ac);
0059     WebEngineViewer::FindBarWebEngineView *mFindBarWebView = nullptr;
0060     ArticleViewerWebEngine *mArticleViewerNg = nullptr;
0061 #ifdef HAVE_KTEXTADDONS_TEXT_TO_SPEECH_SUPPORT
0062     TextEditTextToSpeech::TextToSpeechContainerWidget *const mTextToSpeechWidget;
0063 #endif
0064     TextAddonsWidgets::SlideContainer *const mSliderContainer;
0065     WebEngineViewer::TrackingWarningWidget *const mTrackingWarningWidget;
0066 };
0067 }