From b3c7057ffd4560f01f6068a800e870cf5c15427a Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Wed, 5 Aug 2015 14:33:02 +0200 Subject: add a way to set Accept-Language in browser example Change-Id: I3d67b8ce9a51f82fe1de6fe92edd8f69fcda1a2f Reviewed-by: Kai Koehne --- .../browser/browserapplication.cpp | 1 + examples/webenginewidgets/browser/settings.cpp | 24 +++++++++++++++++++ examples/webenginewidgets/browser/settings.h | 2 ++ examples/webenginewidgets/browser/settings.ui | 27 ++++++++++++++++------ 4 files changed, 47 insertions(+), 7 deletions(-) (limited to 'examples/webenginewidgets') diff --git a/examples/webenginewidgets/browser/browserapplication.cpp b/examples/webenginewidgets/browser/browserapplication.cpp index d213ea871..5fb8aad4c 100644 --- a/examples/webenginewidgets/browser/browserapplication.cpp +++ b/examples/webenginewidgets/browser/browserapplication.cpp @@ -289,6 +289,7 @@ void BrowserApplication::loadSettings() setUserStyleSheet(defaultProfile, css, mainWindow()); defaultProfile->setHttpUserAgent(settings.value(QLatin1String("httpUserAgent")).toString()); + defaultProfile->setHttpAcceptLanguage(settings.value(QLatin1String("httpAcceptLanguage")).toString()); settings.endGroup(); settings.beginGroup(QLatin1String("cookies")); diff --git a/examples/webenginewidgets/browser/settings.cpp b/examples/webenginewidgets/browser/settings.cpp index f5b0e30a9..11cefa35f 100644 --- a/examples/webenginewidgets/browser/settings.cpp +++ b/examples/webenginewidgets/browser/settings.cpp @@ -50,6 +50,7 @@ #include "networkaccessmanager.h" #include "webview.h" +#include #include #include #include @@ -66,6 +67,21 @@ SettingsDialog::SettingsDialog(QWidget *parent) loadFromSettings(); } +static QString defaultAcceptLanguage() +{ + const QStringList langs = QLocale().uiLanguages(); + if (langs.isEmpty()) + return QString(); + QString str = langs.first(); + const float qstep = 1.0f / float(langs.count()); + float q = 1.0f - qstep; + for (int i = 1; i < langs.count(); ++i) { + str += QStringLiteral(", ") + langs.at(i) + QStringLiteral(";q=") + QString::number(q, 'f', 2); + q -= qstep; + } + return str; +} + void SettingsDialog::loadDefaults() { QWebEngineSettings *defaultSettings = QWebEngineSettings::globalSettings(); @@ -89,6 +105,7 @@ void SettingsDialog::loadDefaults() persistentDataPath->setText(QWebEngineProfile::defaultProfile()->persistentStoragePath()); sessionCookiesCombo->setCurrentIndex(QWebEngineProfile::defaultProfile()->persistentCookiesPolicy()); httpUserAgent->setText(QWebEngineProfile::defaultProfile()->httpUserAgent()); + httpAcceptLanguage->setText(defaultAcceptLanguage()); } void SettingsDialog::loadFromSettings() @@ -138,6 +155,7 @@ void SettingsDialog::loadFromSettings() userStyleSheet->setPlainText(settings.value(QLatin1String("userStyleSheet")).toString()); enableScrollAnimator->setChecked(settings.value(QLatin1String("enableScrollAnimator"), enableScrollAnimator->isChecked()).toBool()); httpUserAgent->setText(settings.value(QLatin1String("httpUserAgent"), httpUserAgent->text()).toString()); + httpAcceptLanguage->setText(settings.value(QLatin1String("httpAcceptLanguage"), httpAcceptLanguage->text()).toString()); settings.endGroup(); // Privacy @@ -196,6 +214,7 @@ void SettingsDialog::saveToSettings() settings.setValue(QLatin1String("enableScrollAnimator"), enableScrollAnimator->isChecked()); settings.setValue(QLatin1String("userStyleSheet"), userStyleSheet->toPlainText()); settings.setValue(QLatin1String("httpUserAgent"), httpUserAgent->text()); + settings.setValue(QLatin1String("httpAcceptLanguage"), httpAcceptLanguage->text()); settings.endGroup(); //Privacy @@ -269,6 +288,11 @@ void SettingsDialog::chooseFixedFont() } } +void SettingsDialog::on_httpAcceptLanguage_editingFinished() +{ + QWebEngineProfile::defaultProfile()->setHttpAcceptLanguage(httpAcceptLanguage->text()); +} + void SettingsDialog::setHomeToCurrentPage() { BrowserMainWindow *mw = static_cast(parent()); diff --git a/examples/webenginewidgets/browser/settings.h b/examples/webenginewidgets/browser/settings.h index 6def66928..ee81c12a4 100644 --- a/examples/webenginewidgets/browser/settings.h +++ b/examples/webenginewidgets/browser/settings.h @@ -65,6 +65,8 @@ private slots: void chooseFont(); void chooseFixedFont(); + void on_httpAcceptLanguage_editingFinished(); + private: QFont standardFont; QFont fixedFont; diff --git a/examples/webenginewidgets/browser/settings.ui b/examples/webenginewidgets/browser/settings.ui index 11bdee4d3..38a7af344 100644 --- a/examples/webenginewidgets/browser/settings.ui +++ b/examples/webenginewidgets/browser/settings.ui @@ -7,7 +7,7 @@ 0 0 657 - 322 + 336 @@ -499,19 +499,29 @@ Advanced - - + + + + HTTP User-Agent: + + - - + + - HTTP User-Agent: + HTTP Accept-&Language: + + + httpAcceptLanguage + + + @@ -519,7 +529,10 @@ - + + + + Qt::Vertical -- cgit v1.2.3