diff options
Diffstat (limited to 'examples/webenginewidgets/browser/browserapplication.cpp')
-rw-r--r-- | examples/webenginewidgets/browser/browserapplication.cpp | 28 |
1 files changed, 24 insertions, 4 deletions
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); +} |