This commit is contained in:
Martin Rotter 2022-10-14 14:52:45 +02:00
parent edb8ec5866
commit c7130ca563
5 changed files with 53 additions and 5 deletions

View File

@ -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<QNetworkProxy::ProxyType>(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()));

View File

@ -37,6 +37,23 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="m_tabWebEngine">
<attribute name="title">
<string>WebEngine</string>
</attribute>
<layout class="QFormLayout" name="formLayout_4">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Custom &quot;QTWEBENGINE_CHROMIUM_FLAGS&quot; flags</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QPlainTextEdit" name="m_txtWebEngineChromiumFlags"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="m_tabExternalBrowser">
<attribute name="title">
<string>External web browser</string>
@ -361,17 +378,17 @@
</layout>
</widget>
<customwidgets>
<customwidget>
<class>BaseLineEdit</class>
<extends>QLineEdit</extends>
<header>baselineedit.h</header>
</customwidget>
<customwidget>
<class>HelpSpoiler</class>
<extends>QWidget</extends>
<header>helpspoiler.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>BaseLineEdit</class>
<extends>QLineEdit</extends>
<header>baselineedit.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>m_tabBrowserProxy</tabstop>

View File

@ -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);

View File

@ -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;

View File

@ -446,6 +446,9 @@ namespace Notifications {
namespace Browser {
KEY ID;
KEY WebEngineChromiumFlags;
VALUE(QString) WebEngineChromiumFlagsDef;
KEY OpenLinksInExternalBrowserRightAway;
VALUE(bool) OpenLinksInExternalBrowserRightAwayDef;