diff --git a/src/librssguard/gui/settings/settingsbrowsermail.cpp b/src/librssguard/gui/settings/settingsbrowsermail.cpp index 8b799219f..0e66215ff 100644 --- a/src/librssguard/gui/settings/settingsbrowsermail.cpp +++ b/src/librssguard/gui/settings/settingsbrowsermail.cpp @@ -51,6 +51,10 @@ SettingsBrowserMail::SettingsBrowserMail(Settings* settings, QWidget* parent) connect(m_ui->m_txtExternalBrowserExecutable, &QLineEdit::textChanged, this, &SettingsBrowserMail::dirtifySettings); connect(m_ui->m_txtExternalEmailArguments, &QLineEdit::textChanged, this, &SettingsBrowserMail::dirtifySettings); connect(m_ui->m_txtExternalEmailExecutable, &QLineEdit::textChanged, this, &SettingsBrowserMail::dirtifySettings); + + connect(m_ui->m_txtUserAgent, &QLineEdit::textChanged, this, &SettingsBrowserMail::dirtifySettings); + connect(m_ui->m_txtUserAgent, &QLineEdit::textChanged, this, &SettingsBrowserMail::requireRestart); + connect(m_ui->m_cmbExternalBrowserPreset, static_cast(&QComboBox::currentIndexChanged), this, @@ -178,6 +182,7 @@ void SettingsBrowserMail::loadSettings() { ->setChecked(settings()->value(GROUP(Network), SETTING(Network::IgnoreAllCookies)).toBool()); m_ui->m_checkOpenLinksInExternal ->setChecked(settings()->value(GROUP(Browser), SETTING(Browser::OpenLinksInExternalBrowserRightAway)).toBool()); + m_ui->m_txtUserAgent->setText(settings()->value(GROUP(Network), SETTING(Network::CustomUserAgent)).toString()); // Load settings of web browser GUI. m_ui->m_cmbExternalBrowserPreset->addItem(tr("Opera 12 or older"), QSL("-nosession %1")); @@ -222,6 +227,7 @@ void SettingsBrowserMail::saveSettings() { settings()->setValue(GROUP(Network), Network::EnableHttp2, m_ui->m_cbEnableHttp2->isChecked()); settings()->setValue(GROUP(Network), Network::EnableApiServer, m_ui->m_cbEnableApiServer->isChecked()); settings()->setValue(GROUP(Network), Network::IgnoreAllCookies, m_ui->m_cbIgnoreAllCookies->isChecked()); + settings()->setValue(GROUP(Network), Network::CustomUserAgent, m_ui->m_txtUserAgent->text()); qApp->web()->stopApiServer(); diff --git a/src/librssguard/gui/settings/settingsbrowsermail.ui b/src/librssguard/gui/settings/settingsbrowsermail.ui index a7862e0a4..52b7cc584 100644 --- a/src/librssguard/gui/settings/settingsbrowsermail.ui +++ b/src/librssguard/gui/settings/settingsbrowsermail.ui @@ -42,6 +42,16 @@ + + + + + + + Custom User-Agent + + + @@ -83,7 +93,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -172,7 +182,7 @@ - QComboBox::AdjustToContents + QComboBox::SizeAdjustPolicy::AdjustToContents @@ -197,7 +207,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -289,7 +299,7 @@ - QComboBox::AdjustToContents + QComboBox::SizeAdjustPolicy::AdjustToContents @@ -372,7 +382,7 @@ - Qt::Vertical + Qt::Orientation::Vertical diff --git a/src/librssguard/miscellaneous/application.cpp b/src/librssguard/miscellaneous/application.cpp index ceca2d0fc..5001525ec 100644 --- a/src/librssguard/miscellaneous/application.cpp +++ b/src/librssguard/miscellaneous/application.cpp @@ -222,7 +222,13 @@ Application::Application(const QString& id, int& argc, char** argv, const QStrin } #endif - m_webFactory->setCustomUserAgent(custom_ua); + if (!custom_ua.isEmpty()) { + m_webFactory->setCustomUserAgent(custom_ua); + } + else { + custom_ua = qApp->settings()->value(GROUP(Network), SETTING(Network::CustomUserAgent)).toString(); + m_webFactory->setCustomUserAgent(custom_ua); + } #if defined(NO_LITE) m_webFactory->urlIinterceptor()->load(); @@ -1358,7 +1364,8 @@ void Application::fillCmdArgumentsParser(QCommandLineParser& parser) { QSL("style-name")); QCommandLineOption custom_ua({QSL(CLI_USERAGENT_SHORT), QSL(CLI_USERAGENT_LONG)}, - QSL("User custom User-Agent HTTP header for all network requests."), + QSL("User custom User-Agent HTTP header for all network requests. This option " + "takes precedence over User-Agent set via application settings."), QSL("user-agent")); QCommandLineOption adblock_port({QSL(CLI_ADBLOCKPORT_SHORT), QSL(CLI_ADBLOCKPORT_LONG)}, diff --git a/src/librssguard/miscellaneous/settings.cpp b/src/librssguard/miscellaneous/settings.cpp index b0ae74c7d..58d5f2141 100644 --- a/src/librssguard/miscellaneous/settings.cpp +++ b/src/librssguard/miscellaneous/settings.cpp @@ -65,6 +65,9 @@ VALUE(bool) Network::EnableApiServerDef = false; DKEY Network::EnableHttp2 = "http2_enabled"; DVALUE(bool) Network::EnableHttp2Def = false; +DKEY Network::CustomUserAgent = "user_agent"; +DVALUE(QString) Network::CustomUserAgentDef = QString(); + 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 73ce17991..147c19119 100644 --- a/src/librssguard/miscellaneous/settings.h +++ b/src/librssguard/miscellaneous/settings.h @@ -413,6 +413,9 @@ namespace Network { KEY EnableHttp2; VALUE(bool) EnableHttp2Def; + KEY CustomUserAgent; + VALUE(QString) CustomUserAgentDef; + KEY IgnoreAllCookies; VALUE(bool) IgnoreAllCookiesDef; } // namespace Network