File indexing completed on 2024-12-01 07:43:06
0001 /* 0002 SPDX-FileCopyrightText: 2018 Ralf Habacker ralf.habacker @freenet.de 0003 0004 This file is part of libalkimia. 0005 0006 SPDX-License-Identifier: LGPL-2.1-or-later 0007 */ 0008 0009 #ifndef ALKWEBPAGE_H 0010 #define ALKWEBPAGE_H 0011 0012 #include <alkimia/alk_export.h> 0013 0014 #include <QObject> 0015 0016 class QUrl; 0017 0018 #if defined(BUILD_WITH_WEBENGINE) 0019 0020 #include <QWebEnginePage> 0021 0022 class ALK_EXPORT AlkWebPage : public QWebEnginePage 0023 { 0024 Q_OBJECT 0025 public: 0026 explicit AlkWebPage(QWidget *parent = nullptr); 0027 virtual ~AlkWebPage(); 0028 0029 QWidget *widget(); 0030 void load(const QUrl &url, const QString &acceptLanguage); 0031 QString toHtml(); 0032 void setContent(const QString &s); 0033 QString getFirstElement(const QString &symbol); 0034 static void setWebInspectorEnabled(bool state); 0035 static bool webInspectorEnabled(); 0036 0037 Q_SIGNALS: 0038 void urlChanged(const QUrl &url); 0039 0040 private: 0041 class Private; 0042 Private *d; 0043 }; 0044 0045 #elif defined(BUILD_WITH_WEBKIT) 0046 0047 #include <QWebView> 0048 0049 /** 0050 * The AlkWebPage class provides an interface 0051 * to a browser component 0052 * It is used for fetching and showing web pages. 0053 * 0054 * @author Ralf Habacker ralf.habacker @freenet.de 0055 */ 0056 class ALK_EXPORT AlkWebPage : public QWebView 0057 { 0058 public: 0059 explicit AlkWebPage(QWidget *parent = nullptr); 0060 virtual ~AlkWebPage(); 0061 0062 QWidget *widget(); 0063 void load(const QUrl &url, const QString &acceptLanguage); 0064 QString toHtml(); 0065 QString getFirstElement(const QString &symbol); 0066 void setWebInspectorEnabled(bool enable); 0067 bool webInspectorEnabled(); 0068 0069 private: 0070 class Private; 0071 Private *d; 0072 }; 0073 0074 #else 0075 0076 #include <QTextBrowser> 0077 0078 /** 0079 * The AlkWebPage class provides an interface 0080 * to a browser component with javascript support 0081 * It is used for fetching and showing web pages. 0082 * 0083 * @author Ralf Habacker ralf.habacker @freenet.de 0084 */ 0085 class ALK_EXPORT AlkWebPage : public QTextBrowser 0086 { 0087 Q_OBJECT 0088 public: 0089 explicit AlkWebPage(QWidget *parent = nullptr); 0090 virtual ~AlkWebPage(); 0091 0092 QWidget *widget(); 0093 void load(const QUrl &url, const QString &acceptLanguage); 0094 void setUrl(const QUrl &url); 0095 void setContent(const QString &s); 0096 QString getFirstElement(const QString &symbol); 0097 void setWebInspectorEnabled(bool enable); 0098 bool webInspectorEnabled(); 0099 Q_SIGNALS: 0100 void loadStarted(); 0101 void loadFinished(bool); 0102 0103 private: 0104 class Private; 0105 Private *d; 0106 }; 0107 #endif 0108 0109 #endif // ALKWEBPAGE_H