Helpviewer/AdBlock/AdBlockAccessHandler.py

Tue, 16 Oct 2012 19:43:27 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 16 Oct 2012 19:43:27 +0200
branch
5_2_x
changeset 2151
7d38a32bf535
parent 1949
5d70f6d28787
child 2303
0ed4ed026c16
permissions
-rw-r--r--

Fixed a shutdown issue.
(grafted from bd0bbb3043df6b6c5198a5089da7ca58df936e65)

# -*- coding: utf-8 -*-

# Copyright (c) 2009 - 2012 Detlev Offenbach <detlev@die-offenbachs.de>
#

"""
Module implementing a scheme access handler for AdBlock URLs.
"""

from PyQt4.QtNetwork import QNetworkAccessManager

from E5Gui import E5MessageBox

from .AdBlockSubscription import AdBlockSubscription

import Helpviewer.HelpWindow
from Helpviewer.Network.SchemeAccessHandler import SchemeAccessHandler
from Helpviewer.Network.EmptyNetworkReply import EmptyNetworkReply


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 = E5MessageBox.yesNo(None,
            self.trUtf8("Subscribe?"),
            self.trUtf8("""<p>Subscribe to this AdBlock subscription?</p><p>{0}</p>""")\
                .format(subscription.title()))
        if res:
            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 EmptyNetworkReply(self.parent())

eric ide

mercurial