Wed, 11 Aug 2010 14:54:13 +0200
Continued porting signal/slot usage to the new API.
# -*- coding: utf-8 -*- # Copyright (c) 2009 - 2010 Detlev Offenbach <detlev@die-offenbachs.de> # """ Module implementing a network access manager proxy for web pages. """ from PyQt4.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply class NetworkAccessManagerProxy(QNetworkAccessManager): """ Class implementing a network access manager proxy for web pages. """ primaryManager = None def __init__(self, parent = None): """ Constructor @param parent reference to the parent object (QObject) """ QNetworkAccessManager.__init__(self, parent) self.__webPage = None def setWebPage(self, page): """ Public method to set the reference to a web page. @param page reference to the web page object (HelpWebPage) """ assert page is not None self.__webPage = page def setPrimaryNetworkAccessManager(self, manager): """ Public method to set the primary network access manager. @param manager reference to the network access manager object (QNetworkAccessManager) """ assert manager is not None if self.__class__.primaryManager is None: self.__class__.primaryManager = manager self.setCookieJar(self.__class__.primaryManager.cookieJar()) # do not steal ownership self.cookieJar().setParent(self.__class__.primaryManager) self.sslErrors.connect(self.__class__.primaryManager.sslErrors) self.proxyAuthenticationRequired.connect( self.__class__.primaryManager.proxyAuthenticationRequired) self.authenticationRequired.connect( self.__class__.primaryManager.authenticationRequired) self.finished[QNetworkReply].connect(self.__class__.primaryManager.finished) 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 self.primaryManager is not None and \ self.__webPage is not None: pageRequest = QNetworkRequest(request) self.__webPage.populateNetworkRequest(pageRequest) return self.primaryManager.createRequest(op, pageRequest, outgoingData) else: return QNetworkAccessManager.createRequest(self, op, request, outgoingData)