diff --git a/src/librssguard/gui/settings/settingsbrowsermail.cpp b/src/librssguard/gui/settings/settingsbrowsermail.cpp
index 3373ce574..5ae397d4d 100644
--- a/src/librssguard/gui/settings/settingsbrowsermail.cpp
+++ b/src/librssguard/gui/settings/settingsbrowsermail.cpp
@@ -40,6 +40,7 @@ SettingsBrowserMail::SettingsBrowserMail(Settings* settings, QWidget* parent)
m_ui->m_listTools->setHeaderLabels(QStringList() << tr("Executable") << tr("Parameters"));
m_ui->m_listTools->header()->setSectionResizeMode(0, QHeaderView::ResizeMode::ResizeToContents);
+ connect(m_ui->m_cbEnableHttp2, &QCheckBox::stateChanged, this, &SettingsBrowserMail::dirtifySettings);
connect(m_ui->m_cbIgnoreAllCookies, &QCheckBox::stateChanged, this, &SettingsBrowserMail::dirtifySettings);
connect(m_ui->m_checkOpenLinksInExternal, &QCheckBox::stateChanged, this, &SettingsBrowserMail::dirtifySettings);
connect(m_proxyDetails, &NetworkProxyDetails::changed, this, &SettingsBrowserMail::dirtifySettings);
@@ -155,6 +156,7 @@ void SettingsBrowserMail::selectEmailExecutable() {
void SettingsBrowserMail::loadSettings() {
onBeginLoadSettings();
+ m_ui->m_cbEnableHttp2->setChecked(settings()->value(GROUP(Network), SETTING(Network::EnableHttp2)).toBool());
m_ui->m_cbIgnoreAllCookies
->setChecked(settings()->value(GROUP(Network), SETTING(Network::IgnoreAllCookies)).toBool());
m_ui->m_checkOpenLinksInExternal
@@ -195,6 +197,7 @@ void SettingsBrowserMail::loadSettings() {
void SettingsBrowserMail::saveSettings() {
onBeginSaveSettings();
+ settings()->setValue(GROUP(Network), Network::EnableHttp2, m_ui->m_cbEnableHttp2->isChecked());
settings()->setValue(GROUP(Network), Network::IgnoreAllCookies, m_ui->m_cbIgnoreAllCookies->isChecked());
settings()->setValue(GROUP(Browser),
diff --git a/src/librssguard/gui/settings/settingsbrowsermail.ui b/src/librssguard/gui/settings/settingsbrowsermail.ui
index f5024ca4d..285e3393e 100644
--- a/src/librssguard/gui/settings/settingsbrowsermail.ui
+++ b/src/librssguard/gui/settings/settingsbrowsermail.ui
@@ -28,6 +28,13 @@
+ -
+
+
+ Enable HTTP/2
+
+
+
@@ -373,6 +380,7 @@
m_btnExternalBrowserExecutable
m_txtExternalBrowserArguments
m_cmbExternalBrowserPreset
+ m_checkOpenLinksInExternal
m_grpCustomExternalEmail
m_txtExternalEmailExecutable
m_btnExternalEmailExecutable
@@ -382,6 +390,8 @@
m_btnAddTool
m_btnEditTool
m_btnDeleteTool
+ m_cbIgnoreAllCookies
+ m_cbEnableHttp2
diff --git a/src/librssguard/miscellaneous/settings.cpp b/src/librssguard/miscellaneous/settings.cpp
index c62fd17f0..d47f6ad86 100644
--- a/src/librssguard/miscellaneous/settings.cpp
+++ b/src/librssguard/miscellaneous/settings.cpp
@@ -47,6 +47,9 @@ DKEY Network::ID = "network";
DKEY Network::SendDNT = "send_dnt";
VALUE(bool) Network::SendDNTDef = false;
+DKEY Network::EnableHttp2 = "http2_enabled";
+DVALUE(bool) Network::EnableHttp2Def = false;
+
DKEY Network::IgnoreAllCookies = "ignore_all_cookies";
DVALUE(bool) Network::IgnoreAllCookiesDef = false;
diff --git a/src/librssguard/miscellaneous/settings.h b/src/librssguard/miscellaneous/settings.h
index 3b260e630..ea6d30f6e 100644
--- a/src/librssguard/miscellaneous/settings.h
+++ b/src/librssguard/miscellaneous/settings.h
@@ -323,6 +323,9 @@ namespace Network {
KEY SendDNT;
VALUE(bool) SendDNTDef;
+ KEY EnableHttp2;
+ VALUE(bool) EnableHttp2Def;
+
KEY IgnoreAllCookies;
VALUE(bool) IgnoreAllCookiesDef;
} // namespace Network
diff --git a/src/librssguard/network-web/basenetworkaccessmanager.cpp b/src/librssguard/network-web/basenetworkaccessmanager.cpp
index 79fee4100..a7b2615b1 100644
--- a/src/librssguard/network-web/basenetworkaccessmanager.cpp
+++ b/src/librssguard/network-web/basenetworkaccessmanager.cpp
@@ -10,7 +10,8 @@
#include
#include
-BaseNetworkAccessManager::BaseNetworkAccessManager(QObject* parent) : QNetworkAccessManager(parent) {
+BaseNetworkAccessManager::BaseNetworkAccessManager(QObject* parent)
+ : QNetworkAccessManager(parent), m_enableHttp2(false) {
connect(this, &BaseNetworkAccessManager::sslErrors, this, &BaseNetworkAccessManager::onSslErrors);
loadSettings();
}
@@ -37,6 +38,8 @@ void BaseNetworkAccessManager::loadSettings() {
setProxy(QNetworkProxy::applicationProxy());
}
+ m_enableHttp2 = qApp->settings()->value(GROUP(Network), SETTING(Network::EnableHttp2)).toBool();
+
qDebugNN << LOGSEC_NETWORK << "Settings of BaseNetworkAccessManager loaded.";
}
@@ -54,7 +57,7 @@ QNetworkReply* BaseNetworkAccessManager::createRequest(QNetworkAccessManager::Op
new_request.setAttribute(QNetworkRequest::Attribute::HttpPipeliningAllowedAttribute, true);
#if QT_VERSION >= 0x050F00 // Qt >= 5.15.0
- new_request.setAttribute(QNetworkRequest::Attribute::Http2AllowedAttribute, true);
+ new_request.setAttribute(QNetworkRequest::Attribute::Http2AllowedAttribute, m_enableHttp2);
#endif
#endif
diff --git a/src/librssguard/network-web/basenetworkaccessmanager.h b/src/librssguard/network-web/basenetworkaccessmanager.h
index 641c296dd..7b9fddb41 100644
--- a/src/librssguard/network-web/basenetworkaccessmanager.h
+++ b/src/librssguard/network-web/basenetworkaccessmanager.h
@@ -7,7 +7,7 @@
// This is base class for all network access managers.
class BaseNetworkAccessManager : public QNetworkAccessManager {
- Q_OBJECT
+ Q_OBJECT
public:
explicit BaseNetworkAccessManager(QObject* parent = nullptr);
@@ -20,6 +20,9 @@ class BaseNetworkAccessManager : public QNetworkAccessManager {
protected:
QNetworkReply* createRequest(Operation op, const QNetworkRequest& request, QIODevice* outgoingData);
+
+ private:
+ bool m_enableHttp2;
};
#endif // BASENETWORKACCESSMANAGER_H