Helpviewer/AdBlock/AdBlockAccessHandler.py

Sat, 06 Jul 2013 18:31:44 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 06 Jul 2013 18:31:44 +0200
branch
5_3_x
changeset 2777
2a81ccaa5a95
parent 2302
f29e9405c851
child 2403
e3d7a861547c
child 3163
9f50365a0870
permissions
-rw-r--r--

Fix for project forms viewer compiling form containing accented characters.
(grafted from 43b8060a4b444d0d35eb93e8243e4a1e1548757f)

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

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

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

from PyQt4.QtCore import QUrl
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
        
        url = request.url()
        if url.path() != "subscribe":
            return None
        
        title = QUrl.fromPercentEncoding(url.encodedQueryItemValue("title"))
        if not title:
            return None
        res = E5MessageBox.yesNo(None,
            self.trUtf8("Subscribe?"),
            self.trUtf8("""<p>Subscribe to this AdBlock subscription?</p><p>{0}</p>""")\
                .format(title))
        if res:
            dlg = Helpviewer.HelpWindow.HelpWindow.adBlockManager().showDialog()
            subscription = AdBlockSubscription(url, False,
                Helpviewer.HelpWindow.HelpWindow.adBlockManager())
            Helpviewer.HelpWindow.HelpWindow.adBlockManager()\
                .addSubscription(subscription)
            dlg.addSubscription(subscription, False)
            dlg.setFocus()
            dlg.raise_()
        
        return EmptyNetworkReply(self.parent())

eric ide

mercurial