File indexing completed on 2024-06-02 04:49:39
0001 #pragma once 0002 0003 #include <QQuickWebEngineProfile> 0004 #include <QObject> 0005 0006 #include <QQuickItem> 0007 #include <QWebEngineUrlRequestInterceptor> 0008 0009 class QWebEngineNotification; 0010 class QQuickItem; 0011 class QWebEngineUrlRequestInterceptor; 0012 0013 class QQuickWebEngineDownloadItem; 0014 using DownloadItem = QQuickWebEngineDownloadItem; 0015 0016 class FieryWebProfile : public QQuickWebEngineProfile 0017 { 0018 Q_OBJECT 0019 Q_PROPERTY(QWebEngineUrlRequestInterceptor *urlInterceptor WRITE setUrlInterceptor READ urlInterceptor NOTIFY urlInterceptorChanged) 0020 0021 public: 0022 explicit FieryWebProfile(QObject *parent = nullptr); 0023 0024 QWebEngineUrlRequestInterceptor *urlInterceptor() const; 0025 0026 void setUrlInterceptor(QWebEngineUrlRequestInterceptor *newUrlInterceptor); 0027 0028 Q_SIGNALS: 0029 void urlInterceptorChanged(); 0030 void downloadFinished(QQuickWebEngineDownloadItem *download); 0031 0032 private: 0033 0034 void handleDownload(DownloadItem *downloadItem); 0035 void handleDownloadFinished(DownloadItem *downloadItem); 0036 void showNotification(QWebEngineNotification *webNotification); 0037 0038 0039 // A valid property needs a read function, and there is no getter in QQuickWebEngineProfile 0040 // so store a pointer ourselves 0041 QWebEngineUrlRequestInterceptor *m_urlInterceptor; 0042 0043 }; 0044