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 }