// This file is part of RSS Guard. // // Copyright (C) 2011-2017 by Martin Rotter // // RSS Guard is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // RSS Guard is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RSS Guard. If not, see . #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: // Constructor. explicit WebFactory(QObject* parent = nullptr); // Destructor. virtual ~WebFactory(); // Strips "<....>" (HTML, XML) tags from given text. QString stripTags(QString text); // HTML entity escaping. QString escapeHtml(const QString& html); QString deEscapeHtml(const QString& text); QString toSecondLevelDomain(const QUrl& url); #if defined (USE_WEBENGINE) QAction* engineSettingsAction(); #endif public slots: // Opens given string URL in external browser. bool openUrlInExternalBrowser(const QString& url); 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: // Escape sequences generators. void genereteEscapes(); void generateDeescapes(); QMap m_escapes; QMap m_deEscapes; #if defined (USE_WEBENGINE) QAction* m_engineSettings; #endif }; #endif // WEBFACTORY_H