Helpviewer/HelpWindow.py

changeset 1970
02cf3bac079b
parent 1965
96f5a76e1845
child 1972
5341662d6cfb
diff -r 5522b3266c8b -r 02cf3bac079b Helpviewer/HelpWindow.py
--- a/Helpviewer/HelpWindow.py	Mon Jul 30 19:19:29 2012 +0200
+++ b/Helpviewer/HelpWindow.py	Sat Aug 04 13:30:04 2012 +0200
@@ -289,8 +289,7 @@
         settings.setFontSize(QWebSettings.DefaultFixedFontSize, fixedFont.pointSize())
         
         styleSheet = Preferences.getHelp("UserStyleSheet")
-        if styleSheet:
-            settings.setUserStyleSheetUrl(QUrl(styleSheet))
+        settings.setUserStyleSheetUrl(self.__userStyleSheet(styleSheet))
         
         settings.setAttribute(QWebSettings.AutoLoadImages,
             Preferences.getHelp("AutoLoadImages"))
@@ -1957,7 +1956,7 @@
         
         self.passwordManager().close()
         
-        self.adblockManager().close()
+        self.adBlockManager().close()
         
         self.userAgentsManager().close()
         
@@ -2671,7 +2670,7 @@
         """
         Private slot to show the AdBlock configuration dialog.
         """
-        self.adblockManager().showDialog()
+        self.adBlockManager().showDialog()
         
     def __showClickToFlashDialog(self):
         """
@@ -2832,7 +2831,7 @@
         return cls._passwordManager
         
     @classmethod
-    def adblockManager(cls):
+    def adBlockManager(cls):
         """
         Class method to get a reference to the AdBlock manager.
         
@@ -3232,3 +3231,36 @@
         @param url URL of the file scan report page (string)
         """
         self.newTab(url)
+    
+    def reloadUserStyleSheet(self):
+        """
+        Public method to reload the user style sheet.
+        """
+        settings = QWebSettings.globalSettings()
+        styleSheet = Preferences.getHelp("UserStyleSheet")
+        settings.setUserStyleSheetUrl(self.__userStyleSheet(styleSheet))
+    
+    def __userStyleSheet(self, styleSheetFile):
+        """
+        Private method to generate the user style sheet.
+        
+        @param styleSheetFile name of the user style sheet file (string)
+        @return style sheet (QUrl)
+        """
+        userStyle = self.adBlockManager().elementHidingRules() + \
+                    "{display:none !important;}"
+        
+        if styleSheetFile:
+            try:
+                f = open(styleSheetFile, "r")
+                fileData = f.read()
+                f.close()
+                fileData = fileData.replace("\n", "")
+                userStyle += fileData
+            except IOError:
+                pass
+        
+        encodedStyle = bytes(QByteArray(userStyle).toBase64()).decode()
+        dataString = "data:text/css;charset=utf-8;base64,{0}".format(encodedStyle)
+        
+        return QUrl(dataString)

eric ide

mercurial