Modified the handling of user style sheets and the AdBlock hiding rules.

Fri, 03 Jun 2016 19:59:32 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 03 Jun 2016 19:59:32 +0200
changeset 4990
2bca10fcfe80
parent 4988
fc0c2381b388
child 4993
ebb8eaa326ba

Modified the handling of user style sheets and the AdBlock hiding rules.

APIs/Python3/eric6.api file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Source/eric6.WebBrowser.AdBlock.AdBlockManager.html file | annotate | diff | comparison | revisions
WebBrowser/AdBlock/AdBlockManager.py file | annotate | diff | comparison | revisions
WebBrowser/AdBlock/AdBlockPage.py file | annotate | diff | comparison | revisions
WebBrowser/WebBrowserWindow.py file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric6.api	Tue May 24 18:24:38 2016 +0200
+++ b/APIs/Python3/eric6.api	Fri Jun 03 19:59:32 2016 +0200
@@ -9562,7 +9562,7 @@
 eric6.WebBrowser.AdBlock.AdBlockManager.AdBlockManager.block?4(info)
 eric6.WebBrowser.AdBlock.AdBlockManager.AdBlockManager.close?4()
 eric6.WebBrowser.AdBlock.AdBlockManager.AdBlockManager.customRules?4()
-eric6.WebBrowser.AdBlock.AdBlockManager.AdBlockManager.elementHidingRules?4()
+eric6.WebBrowser.AdBlock.AdBlockManager.AdBlockManager.elementHidingRules?4(url)
 eric6.WebBrowser.AdBlock.AdBlockManager.AdBlockManager.elementHidingRulesForDomain?4(url)
 eric6.WebBrowser.AdBlock.AdBlockManager.AdBlockManager.exceptions?4()
 eric6.WebBrowser.AdBlock.AdBlockManager.AdBlockManager.getDefaultSubscriptionUrl?4()
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Source/eric6.WebBrowser.AdBlock.AdBlockManager.html	Tue May 24 18:24:38 2016 +0200
+++ b/Documentation/Source/eric6.WebBrowser.AdBlock.AdBlockManager.html	Fri Jun 03 19:59:32 2016 +0200
@@ -303,10 +303,17 @@
 </dd>
 </dl><a NAME="AdBlockManager.elementHidingRules" ID="AdBlockManager.elementHidingRules"></a>
 <h4>AdBlockManager.elementHidingRules</h4>
-<b>elementHidingRules</b>(<i></i>)
+<b>elementHidingRules</b>(<i>url</i>)
 <p>
         Public method to get the element hiding rules.
+</p><p>
+
 </p><dl>
+<dt><i>url</i></dt>
+<dd>
+URL to get hiding rules for (QUrl)
+</dd>
+</dl><dl>
 <dt>Returns:</dt>
 <dd>
 element hiding rules (string)
--- a/WebBrowser/AdBlock/AdBlockManager.py	Tue May 24 18:24:38 2016 +0200
+++ b/WebBrowser/AdBlock/AdBlockManager.py	Fri Jun 03 19:59:32 2016 +0200
@@ -463,13 +463,15 @@
         self.__adBlockDialog.show()
         return self.__adBlockDialog
     
-    def elementHidingRules(self):
+    def elementHidingRules(self, url):
         """
         Public method to get the element hiding rules.
         
+        
+        @param url URL to get hiding rules for (QUrl)
         @return element hiding rules (string)
         """
-        if not self.isEnabled():
+        if not self.isEnabled() or not self.__canRunOnScheme(url.scheme()):
             return ""
         
         rules = ""
--- a/WebBrowser/AdBlock/AdBlockPage.py	Tue May 24 18:24:38 2016 +0200
+++ b/WebBrowser/AdBlock/AdBlockPage.py	Fri Jun 03 19:59:32 2016 +0200
@@ -32,6 +32,12 @@
         if not manager.isEnabled():
             return
         
+        # apply global element hiding rules
+        elementHiding = manager.elementHidingRules(page.url())
+        if elementHiding:
+            script = Scripts.setCss(elementHiding)
+            page.runJavaScript(script)
+        
         # apply domain specific element hiding rules
         elementHiding = manager.elementHidingRulesForDomain(page.url())
         if elementHiding:
--- a/WebBrowser/WebBrowserWindow.py	Tue May 24 18:24:38 2016 +0200
+++ b/WebBrowser/WebBrowserWindow.py	Fri Jun 03 19:59:32 2016 +0200
@@ -19,7 +19,8 @@
 
 from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QByteArray, QSize, QTimer, \
     QUrl, QTextCodec, QProcess, QEvent
-from PyQt5.QtGui import QDesktopServices, QKeySequence, QFont, QFontMetrics
+from PyQt5.QtGui import QDesktopServices, QKeySequence, QFont, QFontMetrics, \
+    QPalette
 from PyQt5.QtWidgets import QWidget, QVBoxLayout, QSizePolicy, QDockWidget, \
     QComboBox, QLabel, QSplitter, QMenu, QToolButton, QLineEdit, \
     QApplication, QWhatsThis, QDialog, QHBoxLayout, QProgressBar, QAction, \
@@ -3987,12 +3988,11 @@
         
         @param styleSheetFile name of the user style sheet file (string)
         """
-        userStyle = \
-            self.adBlockManager().elementHidingRules().replace('"', '\\"')
+        name = "_eric_userstylesheet"
+        userStyle = ""
         
         userStyle += WebBrowserTools.readAllFileContents(styleSheetFile)\
             .replace("\n", "")
-        name = "_eric_userstylesheet"
         
         oldScript = self.webProfile().scripts().findScript(name)
         if not oldScript.isNull():

eric ide

mercurial