Fixed issues in the AdBlock code. 5_2_x

Sun, 15 Jul 2012 17:28:40 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 15 Jul 2012 17:28:40 +0200
branch
5_2_x
changeset 1948
8789c9075050
parent 1946
e0ab34b1f195
child 1949
5d70f6d28787

Fixed issues in the AdBlock code.

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
APIs/Python3/eric5.bas file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Helpviewer.Network.EmptyNetworkReply.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.Helpviewer.Network.html file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockAccessHandler.py file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockRule.py file | annotate | diff | comparison | revisions
Helpviewer/HelpBrowserWV.py file | annotate | diff | comparison | revisions
Helpviewer/Network/EmptyNetworkReply.py file | annotate | diff | comparison | revisions
eric5.e4p file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric5.api	Sat Jul 14 14:52:14 2012 +0200
+++ b/APIs/Python3/eric5.api	Sun Jul 15 17:28:40 2012 +0200
@@ -2298,6 +2298,9 @@
 eric5.Helpviewer.JavaScriptResources.fetchLinks_js?7
 eric5.Helpviewer.JavaScriptResources.parseForms_js?7
 eric5.Helpviewer.Network.AboutAccessHandler.AboutAccessHandler.createRequest?4(op, request, outgoingData=None)
+eric5.Helpviewer.Network.EmptyNetworkReply.EmptyNetworkReply.abort?4()
+eric5.Helpviewer.Network.EmptyNetworkReply.EmptyNetworkReply.readData?4(maxlen)
+eric5.Helpviewer.Network.EmptyNetworkReply.EmptyNetworkReply?1(parent=None)
 eric5.Helpviewer.Network.FtpAccessHandler.FtpAccessHandler.createRequest?4(op, request, outgoingData=None)
 eric5.Helpviewer.Network.FtpReply.FtpReply.abort?4()
 eric5.Helpviewer.Network.FtpReply.FtpReply.bytesAvailable?4()
--- a/APIs/Python3/eric5.bas	Sat Jul 14 14:52:14 2012 +0200
+++ b/APIs/Python3/eric5.bas	Sun Jul 15 17:28:40 2012 +0200
@@ -174,6 +174,7 @@
 EditorTypingPage ConfigurationPageBase Ui_EditorTypingPage
 EmailDialog QDialog Ui_EmailDialog
 EmailPage ConfigurationPageBase Ui_EmailPage
+EmptyNetworkReply QNetworkReply
 EricapiConfigDialog QDialog Ui_EricapiConfigDialog
 EricapiExecDialog QDialog Ui_EricapiExecDialog
 EricapiPlugin QObject
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Sat Jul 14 14:52:14 2012 +0200
+++ b/Documentation/Help/source.qhp	Sun Jul 15 17:28:40 2012 +0200
@@ -243,6 +243,7 @@
             </section>
             <section title="eric5.Helpviewer.Network" ref="index-eric5.Helpviewer.Network.html">
               <section title="eric5.Helpviewer.Network.AboutAccessHandler" ref="eric5.Helpviewer.Network.AboutAccessHandler.html" />
+              <section title="eric5.Helpviewer.Network.EmptyNetworkReply" ref="eric5.Helpviewer.Network.EmptyNetworkReply.html" />
               <section title="eric5.Helpviewer.Network.FtpAccessHandler" ref="eric5.Helpviewer.Network.FtpAccessHandler.html" />
               <section title="eric5.Helpviewer.Network.FtpReply" ref="eric5.Helpviewer.Network.FtpReply.html" />
               <section title="eric5.Helpviewer.Network.NetworkAccessManager" ref="eric5.Helpviewer.Network.NetworkAccessManager.html" />
@@ -3871,6 +3872,11 @@
       <keyword name="EmailPage.on_mailUserEdit_textChanged" id="EmailPage.on_mailUserEdit_textChanged" ref="eric5.Preferences.ConfigurationPages.EmailPage.html#EmailPage.on_mailUserEdit_textChanged" />
       <keyword name="EmailPage.on_testButton_clicked" id="EmailPage.on_testButton_clicked" ref="eric5.Preferences.ConfigurationPages.EmailPage.html#EmailPage.on_testButton_clicked" />
       <keyword name="EmailPage.save" id="EmailPage.save" ref="eric5.Preferences.ConfigurationPages.EmailPage.html#EmailPage.save" />
+      <keyword name="EmptyNetworkReply" id="EmptyNetworkReply" ref="eric5.Helpviewer.Network.EmptyNetworkReply.html#EmptyNetworkReply" />
+      <keyword name="EmptyNetworkReply (Constructor)" id="EmptyNetworkReply (Constructor)" ref="eric5.Helpviewer.Network.EmptyNetworkReply.html#EmptyNetworkReply.__init__" />
+      <keyword name="EmptyNetworkReply (Module)" id="EmptyNetworkReply (Module)" ref="eric5.Helpviewer.Network.EmptyNetworkReply.html" />
+      <keyword name="EmptyNetworkReply.abort" id="EmptyNetworkReply.abort" ref="eric5.Helpviewer.Network.EmptyNetworkReply.html#EmptyNetworkReply.abort" />
+      <keyword name="EmptyNetworkReply.readData" id="EmptyNetworkReply.readData" ref="eric5.Helpviewer.Network.EmptyNetworkReply.html#EmptyNetworkReply.readData" />
       <keyword name="Ericapi (Package)" id="Ericapi (Package)" ref="index-eric5.Plugins.DocumentationPlugins.Ericapi.html" />
       <keyword name="EricapiConfigDialog" id="EricapiConfigDialog" ref="eric5.Plugins.DocumentationPlugins.Ericapi.EricapiConfigDialog.html#EricapiConfigDialog" />
       <keyword name="EricapiConfigDialog (Constructor)" id="EricapiConfigDialog (Constructor)" ref="eric5.Plugins.DocumentationPlugins.Ericapi.EricapiConfigDialog.html#EricapiConfigDialog.__init__" />
@@ -11449,6 +11455,7 @@
       <file>eric5.Helpviewer.History.HistoryTreeModel.html</file>
       <file>eric5.Helpviewer.JavaScriptResources.html</file>
       <file>eric5.Helpviewer.Network.AboutAccessHandler.html</file>
+      <file>eric5.Helpviewer.Network.EmptyNetworkReply.html</file>
       <file>eric5.Helpviewer.Network.FtpAccessHandler.html</file>
       <file>eric5.Helpviewer.Network.FtpReply.html</file>
       <file>eric5.Helpviewer.Network.NetworkAccessManager.html</file>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.Helpviewer.Network.EmptyNetworkReply.html	Sun Jul 15 17:28:40 2012 +0200
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Helpviewer.Network.EmptyNetworkReply</title>
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric5.Helpviewer.Network.EmptyNetworkReply</h1>
+<p>
+Module implementing a network reply class for an empty reply
+(i.e. request was handle other way).
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#EmptyNetworkReply">EmptyNetworkReply</a></td>
+<td>Class implementing an empty network reply.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="EmptyNetworkReply" ID="EmptyNetworkReply"></a>
+<h2>EmptyNetworkReply</h2>
+<p>
+    Class implementing an empty network reply.
+</p>
+<h3>Derived from</h3>
+QNetworkReply
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#EmptyNetworkReply.__init__">EmptyNetworkReply</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#EmptyNetworkReply.abort">abort</a></td>
+<td>Public slot to abort the operation.</td>
+</tr><tr>
+<td><a href="#EmptyNetworkReply.readData">readData</a></td>
+<td>Protected method to retrieve data from the reply object.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="EmptyNetworkReply.__init__" ID="EmptyNetworkReply.__init__"></a>
+<h4>EmptyNetworkReply (Constructor)</h4>
+<b>EmptyNetworkReply</b>(<i>parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i></dt>
+<dd>
+reference to the parent object (QObject)
+</dd>
+</dl><a NAME="EmptyNetworkReply.abort" ID="EmptyNetworkReply.abort"></a>
+<h4>EmptyNetworkReply.abort</h4>
+<b>abort</b>(<i></i>)
+<p>
+        Public slot to abort the operation.
+</p><a NAME="EmptyNetworkReply.readData" ID="EmptyNetworkReply.readData"></a>
+<h4>EmptyNetworkReply.readData</h4>
+<b>readData</b>(<i>maxlen</i>)
+<p>
+        Protected method to retrieve data from the reply object.
+</p><dl>
+<dt><i>maxlen</i></dt>
+<dd>
+maximum number of bytes to read (integer)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+string containing the data (bytes)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/index-eric5.Helpviewer.Network.html	Sat Jul 14 14:52:14 2012 +0200
+++ b/Documentation/Source/index-eric5.Helpviewer.Network.html	Sun Jul 15 17:28:40 2012 +0200
@@ -32,6 +32,9 @@
 <td><a href="eric5.Helpviewer.Network.AboutAccessHandler.html">AboutAccessHandler</a></td>
 <td>Module implementing a scheme access handler for about schemes.</td>
 </tr><tr>
+<td><a href="eric5.Helpviewer.Network.EmptyNetworkReply.html">EmptyNetworkReply</a></td>
+<td>Module implementing a network reply class for an empty reply (i.e.</td>
+</tr><tr>
 <td><a href="eric5.Helpviewer.Network.FtpAccessHandler.html">FtpAccessHandler</a></td>
 <td>Module implementing a scheme access handler for FTP.</td>
 </tr><tr>
--- a/Helpviewer/AdBlock/AdBlockAccessHandler.py	Sat Jul 14 14:52:14 2012 +0200
+++ b/Helpviewer/AdBlock/AdBlockAccessHandler.py	Sun Jul 15 17:28:40 2012 +0200
@@ -15,6 +15,7 @@
 
 import Helpviewer.HelpWindow
 from Helpviewer.Network.SchemeAccessHandler import SchemeAccessHandler
+from Helpviewer.Network.EmptyNetworkReply import EmptyNetworkReply
 
 
 class AdBlockAccessHandler(SchemeAccessHandler):
@@ -52,4 +53,4 @@
             dlg.setCurrentIndex(model.index(model.rowCount() - 1, 0))
             dlg.setFocus()
         
-        return None
+        return EmptyNetworkReply()
--- a/Helpviewer/AdBlock/AdBlockRule.py	Sat Jul 14 14:52:14 2012 +0200
+++ b/Helpviewer/AdBlock/AdBlockRule.py	Sun Jul 15 17:28:40 2012 +0200
@@ -173,18 +173,20 @@
         """
         pattern = wildcardPattern
         
-        pattern = re.sub(r"\*+", "*", pattern)      # remove multiple wildcards
-        pattern = re.sub(r"\^\|$", "^", pattern)    # remove anchors following separator placeholder
-        pattern = re.sub(r"^(\*)", "", pattern)     # remove leading wildcards
-        pattern = re.sub(r"(\*)$", "", pattern)     # remove trailing wildcards
-        pattern = re.sub(r"(\W)", "", pattern)      # escape special symbols
+        pattern = re.sub(r"\*+", "*", pattern)       # remove multiple wildcards
+        pattern = re.sub(r"\^\|$", "^", pattern)     # remove anchors following separator
+                                                     # placeholder
+        pattern = re.sub(r"^(\*)", "", pattern)      # remove leading wildcards
+        pattern = re.sub(r"(\*)$", "", pattern)      # remove trailing wildcards
+        pattern = re.sub(r"(\W)", r"\\\1", pattern)  # escape special symbols
         pattern = re.sub(r"^\\\|\\\|",
-            r"^[\w\-]+:\/+(?!\/)(?:[^\/]+\.)?", pattern)  # process extended anchor at expression start
+            r"^[\w\-]+:\/+(?!\/)(?:[^\/]+\.)?", pattern)  # process extended anchor at
+                                                          # expression start
         pattern = re.sub(r"\\\^",
-            r"(?:[^\w\d\-.%]|$)", pattern)          # process separator placeholders
-        pattern = re.sub(r"^\\\|", "^", pattern)    # process anchor at expression start
-        pattern = re.sub(r"\\\|$", "$", pattern)    # process anchor at expression end
-        pattern = re.sub(r"\\\*", ".*", pattern)    # replace wildcards by .*
+            r"(?:[^\w\d\-.%]|$)", pattern)           # process separator placeholders
+        pattern = re.sub(r"^\\\|", "^", pattern)     # process anchor at expression start
+        pattern = re.sub(r"\\\|$", "$", pattern)     # process anchor at expression end
+        pattern = re.sub(r"\\\*", ".*", pattern)     # replace wildcards by .*
         
         return pattern
     
--- a/Helpviewer/HelpBrowserWV.py	Sat Jul 14 14:52:14 2012 +0200
+++ b/Helpviewer/HelpBrowserWV.py	Sun Jul 15 17:28:40 2012 +0200
@@ -257,6 +257,11 @@
                     # this is something of a hack; hopefully it will work in the future
                     return False
                 
+                if info.domain == QWebPage.QtNetwork and \
+                    info.error == QNetworkReply.OperationCanceledError and \
+                    info.errorString == "eric5:No Error":
+                        return False
+                
                 errorPage = sip.cast(output, QWebPage.ErrorPageExtensionReturn)
                 errorPage.baseUrl = info.url
                 urlString = bytes(info.url.toEncoded()).decode()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/Network/EmptyNetworkReply.py	Sun Jul 15 17:28:40 2012 +0200
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a network reply class for an empty reply
+(i.e. request was handle other way).
+"""
+
+from PyQt4.QtCore import QTimer
+from PyQt4.QtNetwork import QNetworkReply, QNetworkAccessManager
+
+
+class EmptyNetworkReply(QNetworkReply):
+    """
+    Class implementing an empty network reply.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent object (QObject)
+        """
+        super().__init__(parent)
+        
+        self.setOperation(QNetworkAccessManager.GetOperation)
+        self.setError(QNetworkReply.OperationCanceledError, "eric5:No Error")
+        
+        QTimer.singleShot(0, lambda: self.finished.emit())
+    
+    def abort(self):
+        """
+        Public slot to abort the operation.
+        """
+        # do nothing
+        pass
+    
+    def readData(self, maxlen):
+        """
+        Protected method to retrieve data from the reply object.
+        
+        @param maxlen maximum number of bytes to read (integer)
+        @return string containing the data (bytes)
+        """
+        return bytes()
--- a/eric5.e4p	Sat Jul 14 14:52:14 2012 +0200
+++ b/eric5.e4p	Sun Jul 15 17:28:40 2012 +0200
@@ -938,6 +938,7 @@
     <Source>Helpviewer/SiteInfo/__init__.py</Source>
     <Source>Helpviewer/SiteInfo/SiteInfoDialog.py</Source>
     <Source>Helpviewer/SslInfoWidget.py</Source>
+    <Source>Helpviewer/Network/EmptyNetworkReply.py</Source>
   </Sources>
   <Forms>
     <Form>PyUnit/UnittestDialog.ui</Form>

eric ide

mercurial