diff --git a/resources/desktop/com.github.rssguard.appdata.xml b/resources/desktop/com.github.rssguard.appdata.xml
index cfd59e2fe..757c94ea9 100644
--- a/resources/desktop/com.github.rssguard.appdata.xml
+++ b/resources/desktop/com.github.rssguard.appdata.xml
@@ -24,7 +24,7 @@
https://github.com/sponsors/martinrotter
-
+
none
diff --git a/src/librssguard/core/message.h b/src/librssguard/core/message.h
index a78c7f1f8..48406644c 100644
--- a/src/librssguard/core/message.h
+++ b/src/librssguard/core/message.h
@@ -3,7 +3,7 @@
#ifndef MESSAGE_H
#define MESSAGE_H
-#include "definitions/definitions.h"
+//#include "definitions/definitions.h"
#include
#include
diff --git a/src/librssguard/core/messageobject.cpp b/src/librssguard/core/messageobject.cpp
index b7d8cef2b..692fdee08 100644
--- a/src/librssguard/core/messageobject.cpp
+++ b/src/librssguard/core/messageobject.cpp
@@ -4,6 +4,7 @@
#include "3rd-party/boolinq/boolinq.h"
#include "database/databasefactory.h"
+#include "definitions/definitions.h"
#include
#include
diff --git a/src/librssguard/definitions/definitions.h b/src/librssguard/definitions/definitions.h
index 2056a0600..4a7dd2cd2 100644
--- a/src/librssguard/definitions/definitions.h
+++ b/src/librssguard/definitions/definitions.h
@@ -165,7 +165,7 @@
#if defined(USE_WEBENGINE)
#define HTTP_COMPLETE_USERAGENT \
- (QWebEngineProfile::defaultProfile()->httpUserAgent().toLocal8Bit() + QByteArrayLiteral(" ") + \
+ (qApp->web()->engineProfile()->httpUserAgent().toLocal8Bit() + QByteArrayLiteral(" ") + \
QByteArrayLiteral(APP_USERAGENT))
#else
#define HTTP_COMPLETE_USERAGENT \
diff --git a/src/librssguard/gui/dialogs/formabout.cpp b/src/librssguard/gui/dialogs/formabout.cpp
index 86cb06928..944e50c13 100644
--- a/src/librssguard/gui/dialogs/formabout.cpp
+++ b/src/librssguard/gui/dialogs/formabout.cpp
@@ -11,6 +11,7 @@
#include "miscellaneous/iconfactory.h"
#include "miscellaneous/settingsproperties.h"
#include "miscellaneous/textfactory.h"
+#include "network-web/webfactory.h"
#include
#include
@@ -18,10 +19,6 @@
#include
#include
-#if defined(USE_WEBENGINE)
-#include
-#endif
-
FormAbout::FormAbout(QWidget* parent) : QDialog(parent) {
m_ui.setupUi(this);
m_ui.m_lblIcon->setPixmap(QPixmap(APP_ICON_PATH));
@@ -68,7 +65,7 @@ void FormAbout::loadSettingsAndPaths() {
QDir::toNativeSeparators(qApp->nodejs()->packageFolder())
.replace(user_data_path, QSL(USER_DATA_PLACEHOLDER)),
#if defined(USE_WEBENGINE)
- QDir::toNativeSeparators(QWebEngineProfile::defaultProfile()->cachePath())
+ QDir::toNativeSeparators(qApp->web()->engineProfile()->cachePath())
.replace(user_data_path, QSL(USER_DATA_PLACEHOLDER))
#else
QSL("-")
diff --git a/src/librssguard/gui/messagepreviewer.cpp b/src/librssguard/gui/messagepreviewer.cpp
index f1c20a8aa..3d2fa3086 100644
--- a/src/librssguard/gui/messagepreviewer.cpp
+++ b/src/librssguard/gui/messagepreviewer.cpp
@@ -107,6 +107,10 @@ void MessagePreviewer::clear() {
m_message = Message();
}
+void MessagePreviewer::showItemInfo(RootItem* item) {
+ m_msgBrowser->setHtml(item->additionalTooltip());
+}
+
void MessagePreviewer::hideToolbar() {
m_toolBar->setVisible(false);
}
diff --git a/src/librssguard/gui/messagepreviewer.h b/src/librssguard/gui/messagepreviewer.h
index edbaeb9e6..c29ef030c 100644
--- a/src/librssguard/gui/messagepreviewer.h
+++ b/src/librssguard/gui/messagepreviewer.h
@@ -17,7 +17,7 @@ class QToolBar;
class WebBrowser;
class LabelButton : public QToolButton {
- Q_OBJECT
+ Q_OBJECT
public:
explicit LabelButton(QWidget* parent = nullptr);
@@ -30,7 +30,7 @@ class LabelButton : public QToolButton {
};
class MessagePreviewer : public QWidget {
- Q_OBJECT
+ Q_OBJECT
public:
explicit MessagePreviewer(QWidget* parent = nullptr);
@@ -43,6 +43,7 @@ class MessagePreviewer : public QWidget {
public slots:
void setToolbarsVisible(bool visible);
void clear();
+ void showItemInfo(RootItem* item);
void hideToolbar();
void loadUrl(const QString& url);
void loadMessage(const Message& message, RootItem* root);
diff --git a/src/librssguard/gui/webviewers/webengine/webengineviewer.cpp b/src/librssguard/gui/webviewers/webengine/webengineviewer.cpp
index ed03406f7..03ae28363 100644
--- a/src/librssguard/gui/webviewers/webengine/webengineviewer.cpp
+++ b/src/librssguard/gui/webviewers/webengine/webengineviewer.cpp
@@ -26,7 +26,6 @@
#include
#endif
-#include
#include
WebEngineViewer::WebEngineViewer(QWidget* parent) : QWebEngineView(parent), m_browser(nullptr), m_root(nullptr) {
@@ -218,13 +217,10 @@ void WebEngineViewer::setVerticalScrollBarPosition(double pos) {
void WebEngineViewer::applyFont(const QFont& fon) {
auto pixel_size = QFontMetrics(fon).ascent();
- QWebEngineProfile::defaultProfile()->settings()->setFontFamily(QWebEngineSettings::FontFamily::StandardFont,
- fon.family());
- QWebEngineProfile::defaultProfile()->settings()->setFontFamily(QWebEngineSettings::FontFamily::SerifFont,
- fon.family());
- QWebEngineProfile::defaultProfile()->settings()->setFontFamily(QWebEngineSettings::FontFamily::SansSerifFont,
- fon.family());
- QWebEngineProfile::defaultProfile()->settings()->setFontSize(QWebEngineSettings::DefaultFontSize, pixel_size);
+ qApp->web()->engineProfile()->settings()->setFontFamily(QWebEngineSettings::FontFamily::StandardFont, fon.family());
+ qApp->web()->engineProfile()->settings()->setFontFamily(QWebEngineSettings::FontFamily::SerifFont, fon.family());
+ qApp->web()->engineProfile()->settings()->setFontFamily(QWebEngineSettings::FontFamily::SansSerifFont, fon.family());
+ qApp->web()->engineProfile()->settings()->setFontSize(QWebEngineSettings::DefaultFontSize, pixel_size);
}
qreal WebEngineViewer::zoomFactor() const {
diff --git a/src/librssguard/gui/webviewers/webviewer.h b/src/librssguard/gui/webviewers/webviewer.h
index f2ea88169..f9b5e3ae2 100644
--- a/src/librssguard/gui/webviewers/webviewer.h
+++ b/src/librssguard/gui/webviewers/webviewer.h
@@ -3,6 +3,8 @@
#include "core/message.h"
+#include "definitions/definitions.h"
+
#include
class WebBrowser;
diff --git a/src/librssguard/miscellaneous/application.cpp b/src/librssguard/miscellaneous/application.cpp
index a53e5b3d6..bd71d6d4d 100644
--- a/src/librssguard/miscellaneous/application.cpp
+++ b/src/librssguard/miscellaneous/application.cpp
@@ -50,8 +50,6 @@
#else
#include
#endif
-
-#include
#endif
#if defined(Q_OS_WIN)
@@ -153,17 +151,15 @@ Application::Application(const QString& id, int& argc, char** argv, const QStrin
const QString web_data_root = userDataFolder() + QDir::separator() + QSL("web");
- QWebEngineProfile::defaultProfile()->setCachePath(web_data_root + QDir::separator() + QSL("cache"));
- QWebEngineProfile::defaultProfile()->setPersistentStoragePath(web_data_root + QDir::separator() + QSL("storage"));
- QWebEngineProfile::defaultProfile()->setHttpUserAgent(QString(HTTP_COMPLETE_USERAGENT));
+ m_webFactory->engineProfile()->setCachePath(web_data_root + QDir::separator() + QSL("cache"));
+ m_webFactory->engineProfile()->setHttpCacheType(QWebEngineProfile::HttpCacheType::DiskHttpCache);
+ m_webFactory->engineProfile()->setPersistentStoragePath(web_data_root + QDir::separator() + QSL("storage"));
+ m_webFactory->engineProfile()->setHttpUserAgent(QString(HTTP_COMPLETE_USERAGENT));
qDebugNN << LOGSEC_NETWORK << "Persistent web data storage path:"
- << QUOTE_W_SPACE_DOT(QWebEngineProfile::defaultProfile()->persistentStoragePath());
+ << QUOTE_W_SPACE_DOT(m_webFactory->engineProfile()->persistentStoragePath());
- connect(QWebEngineProfile::defaultProfile(),
- &QWebEngineProfile::downloadRequested,
- this,
- &Application::downloadRequested);
+ connect(m_webFactory->engineProfile(), &QWebEngineProfile::downloadRequested, this, &Application::downloadRequested);
#endif
connect(m_webFactory->adBlock(), &AdBlockManager::processTerminated, this, &Application::onAdBlockFailure);
diff --git a/src/librssguard/network-web/basenetworkaccessmanager.cpp b/src/librssguard/network-web/basenetworkaccessmanager.cpp
index 18867fa26..79fee4100 100644
--- a/src/librssguard/network-web/basenetworkaccessmanager.cpp
+++ b/src/librssguard/network-web/basenetworkaccessmanager.cpp
@@ -4,26 +4,21 @@
#include "miscellaneous/application.h"
#include "miscellaneous/textfactory.h"
+#include "network-web/webfactory.h"
#include
#include
#include
-#if defined(USE_WEBENGINE)
-#include
-#endif
-
-BaseNetworkAccessManager::BaseNetworkAccessManager(QObject* parent)
- : QNetworkAccessManager(parent) {
+BaseNetworkAccessManager::BaseNetworkAccessManager(QObject* parent) : QNetworkAccessManager(parent) {
connect(this, &BaseNetworkAccessManager::sslErrors, this, &BaseNetworkAccessManager::onSslErrors);
loadSettings();
}
void BaseNetworkAccessManager::loadSettings() {
QNetworkProxy new_proxy;
- const QNetworkProxy::ProxyType selected_proxy_type = static_cast(qApp->settings()->value(GROUP(Proxy),
- SETTING(Proxy::Type)).
- toInt());
+ const QNetworkProxy::ProxyType selected_proxy_type =
+ static_cast(qApp->settings()->value(GROUP(Proxy), SETTING(Proxy::Type)).toInt());
if (selected_proxy_type == QNetworkProxy::ProxyType::NoProxy) {
// No extra setting is needed, set new proxy and exit this method.
@@ -35,10 +30,8 @@ void BaseNetworkAccessManager::loadSettings() {
if (QNetworkProxy::applicationProxy().type() != QNetworkProxy::ProxyType::DefaultProxy &&
QNetworkProxy::applicationProxy().type() != QNetworkProxy::ProxyType::NoProxy) {
qWarningNN << LOGSEC_NETWORK
- << "Used proxy address:"
- << QUOTE_W_SPACE_COMMA(QNetworkProxy::applicationProxy().hostName())
- << " type:"
- << QUOTE_W_SPACE_DOT(QNetworkProxy::applicationProxy().type());
+ << "Used proxy address:" << QUOTE_W_SPACE_COMMA(QNetworkProxy::applicationProxy().hostName())
+ << " type:" << QUOTE_W_SPACE_DOT(QNetworkProxy::applicationProxy().type());
}
setProxy(QNetworkProxy::applicationProxy());
@@ -48,9 +41,7 @@ void BaseNetworkAccessManager::loadSettings() {
}
void BaseNetworkAccessManager::onSslErrors(QNetworkReply* reply, const QList& error) {
- qWarningNN << LOGSEC_NETWORK
- << "Ignoring SSL errors for"
- << QUOTE_W_SPACE_DOT(reply->url().toString());
+ qWarningNN << LOGSEC_NETWORK << "Ignoring SSL errors for" << QUOTE_W_SPACE_DOT(reply->url().toString());
reply->ignoreSslErrors(error);
}
diff --git a/src/librssguard/network-web/cookiejar.cpp b/src/librssguard/network-web/cookiejar.cpp
index 29834bb4d..b819f7bae 100644
--- a/src/librssguard/network-web/cookiejar.cpp
+++ b/src/librssguard/network-web/cookiejar.cpp
@@ -7,6 +7,7 @@
#include "miscellaneous/application.h"
#include "miscellaneous/iofactory.h"
#include "miscellaneous/settings.h"
+#include "network-web/webfactory.h"
#include
#include
@@ -15,16 +16,19 @@
#if defined(USE_WEBENGINE)
#include
-#include
#endif
CookieJar::CookieJar(QObject* parent) : QNetworkCookieJar(parent) {
#if defined(USE_WEBENGINE)
- // WebEngine does not store cookies, CookieJar does.
- QWebEngineProfile::defaultProfile()
- ->setPersistentCookiesPolicy(QWebEngineProfile::PersistentCookiesPolicy::NoPersistentCookies);
+ auto* web_factory = qobject_cast(parent);
- m_webEngineCookies = QWebEngineProfile::defaultProfile()->cookieStore();
+ if (web_factory != nullptr) {
+ // WebEngine does not store cookies, CookieJar does.
+ web_factory->engineProfile()
+ ->setPersistentCookiesPolicy(QWebEngineProfile::PersistentCookiesPolicy::NoPersistentCookies);
+
+ m_webEngineCookies = web_factory->engineProfile()->cookieStore();
+ }
#endif
// Load all cookies and also set them into WebEngine store.
diff --git a/src/librssguard/network-web/webengine/networkurlinterceptor.cpp b/src/librssguard/network-web/webengine/networkurlinterceptor.cpp
index ef7eca60d..7386462b6 100644
--- a/src/librssguard/network-web/webengine/networkurlinterceptor.cpp
+++ b/src/librssguard/network-web/webengine/networkurlinterceptor.cpp
@@ -23,8 +23,6 @@
#include "miscellaneous/settings.h"
#include "network-web/webengine/urlinterceptor.h"
-#include
-
NetworkUrlInterceptor::NetworkUrlInterceptor(QObject* parent)
: QWebEngineUrlRequestInterceptor(parent), m_sendDnt(false) {}
diff --git a/src/librssguard/network-web/webengine/webenginepage.cpp b/src/librssguard/network-web/webengine/webenginepage.cpp
index 249bb29a1..34b46e567 100644
--- a/src/librssguard/network-web/webengine/webenginepage.cpp
+++ b/src/librssguard/network-web/webengine/webenginepage.cpp
@@ -17,7 +17,7 @@
#include
#include
-WebEnginePage::WebEnginePage(QObject* parent) : QWebEnginePage(parent) {
+WebEnginePage::WebEnginePage(QObject* parent) : QWebEnginePage(qApp->web()->engineProfile(), parent) {
setBackgroundColor(Qt::GlobalColor::transparent);
connect(this, &QWebEnginePage::loadFinished, this, &WebEnginePage::hideUnwantedElements);
diff --git a/src/librssguard/network-web/webfactory.cpp b/src/librssguard/network-web/webfactory.cpp
index 4116c9192..c6751cf46 100644
--- a/src/librssguard/network-web/webfactory.cpp
+++ b/src/librssguard/network-web/webfactory.cpp
@@ -32,18 +32,19 @@ WebFactory::WebFactory(QObject* parent) : QObject(parent) {
m_adBlock = new AdBlockManager(this);
#if defined(USE_WEBENGINE)
+ m_engineProfile = new QWebEngineProfile(QSL(APP_LOW_NAME), this);
m_engineSettings = nullptr;
m_urlInterceptor = new NetworkUrlInterceptor(this);
#endif
- m_cookieJar = new CookieJar(nullptr);
+ m_cookieJar = new CookieJar(this);
m_readability = new Readability(this);
#if defined(USE_WEBENGINE)
#if QT_VERSION >= 0x050D00 // Qt >= 5.13.0
- QWebEngineProfile::defaultProfile()->setUrlRequestInterceptor(m_urlInterceptor);
+ m_engineProfile->setUrlRequestInterceptor(m_urlInterceptor);
#else
- QWebEngineProfile::defaultProfile()->setRequestInterceptor(m_urlInterceptor);
+ m_engineProfile->setRequestInterceptor(m_urlInterceptor);
#endif
#endif
}
@@ -55,9 +56,9 @@ WebFactory::~WebFactory() {
}
#endif
- if (m_cookieJar != nullptr) {
+ /*if (m_cookieJar != nullptr) {
m_cookieJar->deleteLater();
- }
+ }*/
}
bool WebFactory::sendMessageViaEmail(const Message& message) {
@@ -271,6 +272,10 @@ NetworkUrlInterceptor* WebFactory::urlIinterceptor() const {
return m_urlInterceptor;
}
+QWebEngineProfile* WebFactory::engineProfile() const {
+ return m_engineProfile;
+}
+
QAction* WebFactory::engineSettingsAction() {
if (m_engineSettings == nullptr) {
m_engineSettings =
@@ -363,7 +368,7 @@ void WebFactory::webEngineSettingChanged(bool enabled) {
QWebEngineSettings::WebAttribute attribute = static_cast(act->data().toInt());
qApp->settings()->setValue(WebEngineAttributes::ID, QString::number(static_cast(attribute)), enabled);
- QWebEngineProfile::defaultProfile()->settings()->setAttribute(attribute, act->isChecked());
+ m_engineProfile->settings()->setAttribute(attribute, act->isChecked());
}
QAction* WebFactory::createEngineSettingsAction(const QString& title, QWebEngineSettings::WebAttribute attribute) {
@@ -374,7 +379,7 @@ QAction* WebFactory::createEngineSettingsAction(const QString& title, QWebEngine
act->setChecked(qApp->settings()
->value(WebEngineAttributes::ID, QString::number(static_cast(attribute)), true)
.toBool());
- QWebEngineProfile::defaultProfile()->settings()->setAttribute(attribute, act->isChecked());
+ m_engineProfile->settings()->setAttribute(attribute, act->isChecked());
connect(act, &QAction::toggled, this, &WebFactory::webEngineSettingChanged);
return act;
}
diff --git a/src/librssguard/network-web/webfactory.h b/src/librssguard/network-web/webfactory.h
index b5986af11..b9b2107e4 100644
--- a/src/librssguard/network-web/webfactory.h
+++ b/src/librssguard/network-web/webfactory.h
@@ -5,13 +5,15 @@
#include
-#include "core/messagesmodel.h"
+#include "core/message.h"
#include
#if defined(USE_WEBENGINE)
+#include
#include
+class QAction;
class NetworkUrlInterceptor;
#endif
@@ -21,7 +23,7 @@ class CookieJar;
class Readability;
class WebFactory : public QObject {
- Q_OBJECT
+ Q_OBJECT
public:
explicit WebFactory(QObject* parent = nullptr);
@@ -43,6 +45,7 @@ class WebFactory : public QObject {
#if defined(USE_WEBENGINE)
NetworkUrlInterceptor* urlIinterceptor() const;
+ QWebEngineProfile* engineProfile() const;
#endif
CookieJar* cookieJar() const;
@@ -68,6 +71,7 @@ class WebFactory : public QObject {
AdBlockManager* m_adBlock;
#if defined(USE_WEBENGINE)
+ QWebEngineProfile* m_engineProfile;
NetworkUrlInterceptor* m_urlInterceptor;
QAction* m_engineSettings;
#endif
diff --git a/src/librssguard/services/abstract/gui/custommessagepreviewer.h b/src/librssguard/services/abstract/gui/custommessagepreviewer.h
index 39bd13e2d..c379c0504 100644
--- a/src/librssguard/services/abstract/gui/custommessagepreviewer.h
+++ b/src/librssguard/services/abstract/gui/custommessagepreviewer.h
@@ -10,14 +10,13 @@
class RootItem;
class CustomMessagePreviewer : public QWidget {
- Q_OBJECT
+ Q_OBJECT
public:
explicit CustomMessagePreviewer(QWidget* parent = nullptr);
virtual ~CustomMessagePreviewer();
public:
-
// Clears displayed message.
virtual void clear() = 0;
diff --git a/src/librssguard/services/reddit/redditsubscription.cpp b/src/librssguard/services/reddit/redditsubscription.cpp
index ec5a7aea4..320db3e9b 100644
--- a/src/librssguard/services/reddit/redditsubscription.cpp
+++ b/src/librssguard/services/reddit/redditsubscription.cpp
@@ -2,6 +2,7 @@
#include "services/reddit/redditsubscription.h"
+#include "definitions/definitions.h"
#include "services/reddit/redditserviceroot.h"
RedditSubscription::RedditSubscription(RootItem* parent) : Feed(parent), m_prefixedName(QString()) {}
diff --git a/src/librssguard/services/tt-rss/gui/ttrssaccountdetails.cpp b/src/librssguard/services/tt-rss/gui/ttrssaccountdetails.cpp
index aac7073af..bbe1f6838 100644
--- a/src/librssguard/services/tt-rss/gui/ttrssaccountdetails.cpp
+++ b/src/librssguard/services/tt-rss/gui/ttrssaccountdetails.cpp
@@ -2,6 +2,7 @@
#include "services/tt-rss/gui/ttrssaccountdetails.h"
+#include "definitions/definitions.h"
#include "gui/guiutilities.h"
#include "network-web/networkfactory.h"
#include "services/tt-rss/definitions.h"
diff --git a/src/librssguard/services/tt-rss/gui/ttrssfeeddetails.cpp b/src/librssguard/services/tt-rss/gui/ttrssfeeddetails.cpp
index 1465fa67b..3279c7179 100644
--- a/src/librssguard/services/tt-rss/gui/ttrssfeeddetails.cpp
+++ b/src/librssguard/services/tt-rss/gui/ttrssfeeddetails.cpp
@@ -2,6 +2,7 @@
#include "services/tt-rss/gui/ttrssfeeddetails.h"
+#include "definitions/definitions.h"
#include "services/abstract/category.h"
TtRssFeedDetails::TtRssFeedDetails(QWidget* parent) : QWidget(parent) {
@@ -21,8 +22,9 @@ void TtRssFeedDetails::onUrlChanged(const QString& new_url) {
}
else if (!new_url.simplified().isEmpty()) {
// New url is not well-formed but is not empty on the other hand.
- ui.m_txtUrl->setStatus(LineEditWithStatus::StatusType::Warning,
- tr(R"(The URL does not meet standard pattern. Does your URL start with "http://" or "https://" prefix.)"));
+ ui.m_txtUrl->setStatus(
+ LineEditWithStatus::StatusType::Warning,
+ tr(R"(The URL does not meet standard pattern. Does your URL start with "http://" or "https://" prefix.)"));
}
else {
// New url is empty.
@@ -30,16 +32,19 @@ void TtRssFeedDetails::onUrlChanged(const QString& new_url) {
}
}
-void TtRssFeedDetails::loadCategories(const QList& categories, RootItem* root_item, RootItem* parent_to_select) {
- ui.m_cmbParentCategory->addItem(root_item->fullIcon(), root_item->title(), QVariant::fromValue((void*) root_item));
+void TtRssFeedDetails::loadCategories(const QList& categories,
+ RootItem* root_item,
+ RootItem* parent_to_select) {
+ ui.m_cmbParentCategory->addItem(root_item->fullIcon(), root_item->title(), QVariant::fromValue((void*)root_item));
for (Category* category : categories) {
- ui.m_cmbParentCategory->addItem(category->fullIcon(), category->title(), QVariant::fromValue((void*) category));
+ ui.m_cmbParentCategory->addItem(category->fullIcon(), category->title(), QVariant::fromValue((void*)category));
}
if (parent_to_select != nullptr) {
if (parent_to_select->kind() == RootItem::Kind::Category) {
- ui.m_cmbParentCategory->setCurrentIndex(ui.m_cmbParentCategory->findData(QVariant::fromValue((void*)parent_to_select)));
+ ui.m_cmbParentCategory
+ ->setCurrentIndex(ui.m_cmbParentCategory->findData(QVariant::fromValue((void*)parent_to_select)));
}
else if (parent_to_select->kind() == RootItem::Kind::Feed) {
int target_item = ui.m_cmbParentCategory->findData(QVariant::fromValue((void*)parent_to_select->parent()));