Helpviewer/Network/NetworkAccessManager.py

branch
Py2 comp.
changeset 2791
a9577f248f04
parent 2698
1dcd5d887980
parent 2699
dd62671c6d5a
child 3057
10516539f238
diff -r 6686a3326df8 -r a9577f248f04 Helpviewer/Network/NetworkAccessManager.py
--- a/Helpviewer/Network/NetworkAccessManager.py	Mon Jul 08 21:47:26 2013 +0200
+++ b/Helpviewer/Network/NetworkAccessManager.py	Mon Jul 08 22:36:10 2013 +0200
@@ -11,7 +11,7 @@
 
 import os
 
-from PyQt4.QtCore import pyqtSignal, QByteArray
+from PyQt4.QtCore import pyqtSignal, QByteArray, qVersion
 from PyQt4.QtGui import QDialog
 from PyQt4.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply
 
@@ -143,14 +143,6 @@
         if not self.__acceptLanguage.isEmpty():
             req.setRawHeader("Accept-Language", self.__acceptLanguage)
         
-        # set cache policy
-        if op == QNetworkAccessManager.GetOperation:
-            req.setAttribute(QNetworkRequest.CacheLoadControlAttribute,
-                Preferences.getHelp("CachePolicy"))
-        else:
-            req.setAttribute(QNetworkRequest.CacheLoadControlAttribute,
-                QNetworkRequest.AlwaysNetwork)
-        
         # AdBlock code
         if op == QNetworkAccessManager.GetOperation:
             if self.__adblockNetwork is None:
@@ -161,6 +153,21 @@
                 reply.setParent(self)
                 return reply
         
+        # set cache policy
+        if op == QNetworkAccessManager.GetOperation:
+            urlHost = req.url().host()
+            for host in Preferences.getHelp("NoCacheHosts"):
+                if host in urlHost:
+                    req.setAttribute(QNetworkRequest.CacheLoadControlAttribute,
+                        QNetworkRequest.AlwaysNetwork)
+                    break
+            else:
+                req.setAttribute(QNetworkRequest.CacheLoadControlAttribute,
+                    Preferences.getHelp("CachePolicy"))
+        else:
+            req.setAttribute(QNetworkRequest.CacheLoadControlAttribute,
+                QNetworkRequest.AlwaysNetwork)
+        
         # Do Not Track feature
         if self.__doNotTrack:
             req.setRawHeader("DNT", "1")
@@ -238,9 +245,11 @@
         Private method to set the disk cache.
         """
         if Preferences.getHelp("DiskCacheEnabled"):
+            from PyQt4.QtWebKit import qWebKitVersion
             from .NetworkDiskCache import NetworkDiskCache
             diskCache = NetworkDiskCache(self)
-            location = os.path.join(Utilities.getConfigDir(), "browser", 'cache')
+            location = os.path.join(Utilities.getConfigDir(), "browser", 'cache',
+                                    "{0}-Qt{1}".format(qWebKitVersion(), qVersion()))
             size = Preferences.getHelp("DiskCacheSize") * 1024 * 1024
             diskCache.setCacheDirectory(location)
             diskCache.setMaximumCacheSize(size)

eric ide

mercurial