// For license of this file, see /LICENSE.md. #ifndef WEBFACTORY_H #define WEBFACTORY_H #include #include "core/messagesmodel.h" #include #if defined (USE_WEBENGINE) #include #endif #if defined (USE_WEBENGINE) class QMenu; #endif class WebFactory : public QObject { Q_OBJECT public: explicit WebFactory(QObject* parent = nullptr); virtual ~WebFactory(); // Strips "<....>" (HTML, XML) tags from given text. QString stripTags(QString text); // HTML entity escaping. QString unescapeHtml(const QString& html); #if defined (USE_WEBENGINE) QAction* engineSettingsAction(); #endif public slots: void updateProxy(); bool openUrlInExternalBrowser(const QString& url) const; bool sendMessageViaEmail(const Message& message); #if defined (USE_WEBENGINE) private slots: void createMenu(QMenu* menu = nullptr); void webEngineSettingChanged(bool enabled); private: QAction* createEngineSettingsAction(const QString& title, QWebEngineSettings::WebAttribute attribute); #endif private: void generateUnescapes(); QMap m_escapes; #if defined (USE_WEBENGINE) QAction* m_engineSettings; #endif }; #endif // WEBFACTORY_H