From 4db8c2c92ae8bc722de70e4bd317dce17dea2f74 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 8 May 2015 12:58:28 +0200 Subject: Reintroduce private browsing mode for example browser Uses QWebEngineProfile to support private browsing mode. Change-Id: I78fa712d2425eb2df519594ee3fa5639bbcbebf6 Reviewed-by: Andras Becsi --- .../browser/browserapplication.cpp | 28 ++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'examples/webenginewidgets/browser/browserapplication.cpp') diff --git a/examples/webenginewidgets/browser/browserapplication.cpp b/examples/webenginewidgets/browser/browserapplication.cpp index b1426ea24..3bc801295 100644 --- a/examples/webenginewidgets/browser/browserapplication.cpp +++ b/examples/webenginewidgets/browser/browserapplication.cpp @@ -116,6 +116,8 @@ static void setUserStyleSheet(QWebEngineProfile *profile, const QString &styleSh BrowserApplication::BrowserApplication(int &argc, char **argv) : QApplication(argc, argv) , m_localServer(0) + , m_privateProfile(0) + , m_privateBrowsing(false) { QCoreApplication::setOrganizationName(QLatin1String("Qt")); QCoreApplication::setApplicationName(QLatin1String("demobrowser")); @@ -325,11 +327,8 @@ void BrowserApplication::clean() void BrowserApplication::saveSession() { -#if defined(QTWEBENGINE_PRIVATEBROWSING) - QWebEngineSettings *globalSettings = QWebEngineSettings::globalSettings(); - if (globalSettings->testAttribute(QWebEngineSettings::PrivateBrowsingEnabled)) + if (m_privateBrowsing) return; -#endif clean(); @@ -529,3 +528,24 @@ QIcon BrowserApplication::defaultIcon() const m_defaultIcon = QIcon(QLatin1String(":defaulticon.png")); return m_defaultIcon; } + +void BrowserApplication::setPrivateBrowsing(bool privateBrowsing) +{ + if (m_privateBrowsing == privateBrowsing) + return; + m_privateBrowsing = privateBrowsing; + if (privateBrowsing) { + if (!m_privateProfile) + m_privateProfile = new QWebEngineProfile(this); + Q_FOREACH (BrowserMainWindow* window, mainWindows()) { + window->tabWidget()->setProfile(m_privateProfile); + } + } else { + Q_FOREACH (BrowserMainWindow* window, mainWindows()) { + window->tabWidget()->setProfile(QWebEngineProfile::defaultProfile()); + window->m_lastSearch = QString::null; + window->tabWidget()->clear(); + } + } + emit privateBrowsingChanged(privateBrowsing); +} -- cgit v1.2.1