From b98d288be81a0d7fbfae5986f7bea9215d1db2e9 Mon Sep 17 00:00:00 2001 From: Joan Karadimov Date: Mon, 6 Mar 2017 19:18:34 +0200 Subject: [PATCH] Fix the 'Reset' command in debug builds (on Windows) --- src/WebPage.cpp | 5 +---- src/WebPageManager.cpp | 10 ++++++++++ src/WebPageManager.h | 2 ++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/WebPage.cpp b/src/WebPage.cpp index 4106bf3..d0f1b15 100644 --- a/src/WebPage.cpp +++ b/src/WebPage.cpp @@ -41,10 +41,7 @@ WebPage::WebPage(WebPageManager *manager, QObject *parent) : QWebPage(parent) { settings()->setAttribute(QWebSettings::JavascriptCanCloseWindows, true); settings()->setAttribute(QWebSettings::LocalStorageDatabaseEnabled, true); - if(QFileInfo("tmp").isDir()) { - settings()->setAttribute(QWebSettings::OfflineWebApplicationCacheEnabled, true); - settings()->setOfflineWebApplicationCachePath("tmp"); - } + manager->initOfflineWebApplicationCache(); createWindow(); } diff --git a/src/WebPageManager.cpp b/src/WebPageManager.cpp index d17dc21..d7b6b19 100644 --- a/src/WebPageManager.cpp +++ b/src/WebPageManager.cpp @@ -7,12 +7,14 @@ #include "MissingContentHeaderRequestHandler.h" #include "UnknownUrlHandler.h" #include "NetworkRequestFactory.h" +#include WebPageManager::WebPageManager(QObject *parent) : QObject(parent) { m_ignoreSslErrors = false; m_cookieJar = new NetworkCookieJar(this); m_success = true; m_loggingEnabled = false; + m_isCacheInitialized = false; m_ignoredOutput = new QFile(this); m_timeout = -1; m_customHeadersRequestHandler = new CustomHeadersRequestHandler( @@ -217,3 +219,11 @@ void WebPageManager::allowUrl(const QString &url) { void WebPageManager::blockUrl(const QString &url) { m_blacklistedRequestHandler->blockUrl(url); } + +void WebPageManager::initOfflineWebApplicationCache() { + if (!m_isCacheInitialized && QFileInfo("tmp").isDir()) { + QWebSettings::globalSettings()->setAttribute(QWebSettings::OfflineWebApplicationCacheEnabled, true); + QWebSettings::globalSettings()->setOfflineWebApplicationCachePath("tmp"); + m_isCacheInitialized = true; + } +} diff --git a/src/WebPageManager.h b/src/WebPageManager.h index a0d8326..ba6872e 100644 --- a/src/WebPageManager.h +++ b/src/WebPageManager.h @@ -42,6 +42,7 @@ class WebPageManager : public QObject { void setUnknownUrlMode(UnknownUrlHandler::Mode); void allowUrl(const QString &); void blockUrl(const QString &); + void initOfflineWebApplicationCache(); public slots: void emitLoadStarted(); @@ -66,6 +67,7 @@ class WebPageManager : public QObject { QSet m_started; bool m_success; bool m_loggingEnabled; + bool m_isCacheInitialized; QFile *m_ignoredOutput; int m_timeout; NetworkAccessManager *m_networkAccessManager;