Helpviewer/AdBlock/AdBlockAccessHandler.py

changeset 0
de9c2efb9d02
child 12
1d8dd9706f46
diff -r 000000000000 -r de9c2efb9d02 Helpviewer/AdBlock/AdBlockAccessHandler.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/AdBlock/AdBlockAccessHandler.py	Mon Dec 28 16:03:33 2009 +0000
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2009 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a scheme access handler for AdBlock URLs.
+"""
+
+from PyQt4.QtGui import QMessageBox
+from PyQt4.QtNetwork import QNetworkAccessManager
+
+from AdBlockSubscription import AdBlockSubscription
+
+import Helpviewer.HelpWindow
+from Helpviewer.Network.SchemeAccessHandler import SchemeAccessHandler
+
+class AdBlockAccessHandler(SchemeAccessHandler):
+    """
+    Class implementing a scheme access handler for AdBlock URLs.
+    """
+    def createRequest(self, op, request, outgoingData = None):
+        """
+        Protected method to create a request.
+        
+        @param op the operation to be performed (QNetworkAccessManager.Operation)
+        @param request reference to the request object (QNetworkRequest)
+        @param outgoingData reference to an IODevice containing data to be sent
+            (QIODevice)
+        @return reference to the created reply object (QNetworkReply)
+        """
+        if op != QNetworkAccessManager.GetOperation:
+            return None
+        
+        if request.url().path() != "subscribe":
+            return None
+        
+        subscription = AdBlockSubscription(request.url(), 
+                            Helpviewer.HelpWindow.HelpWindow.adblockManager())
+        
+        res = QMessageBox.question(None,
+            self.trUtf8("Subscribe?"),
+            self.trUtf8("""<p>Subscribe to this AdBlock subscription?</p><p>{0}</p>""")\
+                .format(subscription.title()),
+            QMessageBox.StandardButtons(\
+                QMessageBox.No | \
+                QMessageBox.Yes))
+        if res == QMessageBox.Yes:
+            Helpviewer.HelpWindow.HelpWindow.adblockManager()\
+                .addSubscription(subscription)
+            dlg = Helpviewer.HelpWindow.HelpWindow.adblockManager().showDialog()
+            model = dlg.model()
+            dlg.setCurrentIndex(model.index(model.rowCount() - 1, 0))
+            dlg.setFocus()
+        
+        return None

eric ide

mercurial