diff --git a/src/librssguard/gui/settings/settingsbrowsermail.cpp b/src/librssguard/gui/settings/settingsbrowsermail.cpp index 5ae397d4d..97c3d84c4 100644 --- a/src/librssguard/gui/settings/settingsbrowsermail.cpp +++ b/src/librssguard/gui/settings/settingsbrowsermail.cpp @@ -79,6 +79,14 @@ SettingsBrowserMail::SettingsBrowserMail(Settings* settings, QWidget* parent) m_ui->m_btnDeleteTool->setEnabled(current != nullptr); m_ui->m_btnEditTool->setEnabled(current != nullptr); }); + +#if !defined(USE_WEBENGINE) + // Remove WebEngine tab. + m_ui->m_tabBrowserProxy->removeTab(1); +#else + connect(m_ui->m_txtWebEngineChromiumFlags, &QPlainTextEdit::textChanged, this, &SettingsBrowserMail::dirtifySettings); + connect(m_ui->m_txtWebEngineChromiumFlags, &QPlainTextEdit::textChanged, this, &SettingsBrowserMail::requireRestart); +#endif } SettingsBrowserMail::~SettingsBrowserMail() { @@ -180,6 +188,10 @@ void SettingsBrowserMail::loadSettings() { m_ui->m_grpCustomExternalEmail ->setChecked(settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalEmailEnabled)).toBool()); + // WebEngine. + m_ui->m_txtWebEngineChromiumFlags + ->setPlainText(settings()->value(GROUP(Browser), SETTING(Browser::WebEngineChromiumFlags)).toString()); + // Load the settings. QNetworkProxy::ProxyType selected_proxy_type = static_cast(settings()->value(GROUP(Proxy), SETTING(Proxy::Type)).toInt()); @@ -226,6 +238,11 @@ void SettingsBrowserMail::saveSettings() { Browser::CustomExternalEmailEnabled, m_ui->m_grpCustomExternalEmail->isChecked()); + // WebEngine. + settings()->setValue(GROUP(Browser), + Browser::WebEngineChromiumFlags, + m_ui->m_txtWebEngineChromiumFlags->toPlainText()); + auto proxy = m_proxyDetails->proxy(); settings()->setValue(GROUP(Proxy), Proxy::Type, int(proxy.type())); diff --git a/src/librssguard/gui/settings/settingsbrowsermail.ui b/src/librssguard/gui/settings/settingsbrowsermail.ui index 285e3393e..996290476 100644 --- a/src/librssguard/gui/settings/settingsbrowsermail.ui +++ b/src/librssguard/gui/settings/settingsbrowsermail.ui @@ -37,6 +37,23 @@ + + + WebEngine + + + + + + Custom "QTWEBENGINE_CHROMIUM_FLAGS" flags + + + + + + + + External web browser @@ -361,17 +378,17 @@ - - BaseLineEdit - QLineEdit -
baselineedit.h
-
HelpSpoiler QWidget
helpspoiler.h
1
+ + BaseLineEdit + QLineEdit +
baselineedit.h
+
m_tabBrowserProxy diff --git a/src/librssguard/miscellaneous/application.cpp b/src/librssguard/miscellaneous/application.cpp index bd71d6d4d..e1101abd8 100644 --- a/src/librssguard/miscellaneous/application.cpp +++ b/src/librssguard/miscellaneous/application.cpp @@ -70,6 +70,14 @@ Application::Application(const QString& id, int& argc, char** argv, const QStrin m_mainForm = nullptr; m_trayIcon = nullptr; m_settings = Settings::setupSettings(this); + +#if defined(USE_WEBENGINE) + if (!m_forcedNoWebEngine && qgetenv("QTWEBENGINE_CHROMIUM_FLAGS").isEmpty()) { + qputenv("QTWEBENGINE_CHROMIUM_FLAGS", + settings()->value(GROUP(Browser), SETTING(Browser::WebEngineChromiumFlags)).toString().toLocal8Bit()); + } +#endif + m_nodejs = new NodeJs(m_settings, this); m_webFactory = new WebFactory(this); m_system = new SystemFactory(this); diff --git a/src/librssguard/miscellaneous/settings.cpp b/src/librssguard/miscellaneous/settings.cpp index 3a5c40265..9edb1e1e8 100644 --- a/src/librssguard/miscellaneous/settings.cpp +++ b/src/librssguard/miscellaneous/settings.cpp @@ -407,6 +407,9 @@ DKEY Notifications::ID = "notifications"; // Web browser. DKEY Browser::ID = "browser"; +DKEY Browser::WebEngineChromiumFlags = "webengine_chromium_flags"; +DVALUE(QString) Browser::WebEngineChromiumFlagsDef = QSL("--enable-smooth-scrolling"); + DKEY Browser::OpenLinksInExternalBrowserRightAway = "open_link_externally_wo_confirmation"; DVALUE(bool) Browser::OpenLinksInExternalBrowserRightAwayDef = false; diff --git a/src/librssguard/miscellaneous/settings.h b/src/librssguard/miscellaneous/settings.h index ea6d30f6e..cfbd56591 100644 --- a/src/librssguard/miscellaneous/settings.h +++ b/src/librssguard/miscellaneous/settings.h @@ -446,6 +446,9 @@ namespace Notifications { namespace Browser { KEY ID; + KEY WebEngineChromiumFlags; + VALUE(QString) WebEngineChromiumFlagsDef; + KEY OpenLinksInExternalBrowserRightAway; VALUE(bool) OpenLinksInExternalBrowserRightAwayDef;