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