Helpviewer/Network/NetworkAccessManagerProxy.py

changeset 0
de9c2efb9d02
child 13
1af94a91f439
equal deleted inserted replaced
-1:000000000000 0:de9c2efb9d02
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2009 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing a network access manager proxy for web pages.
8 """
9
10 from PyQt4.QtCore import SIGNAL
11 from PyQt4.QtNetwork import QNetworkAccessManager
12
13 class NetworkAccessManagerProxy(QNetworkAccessManager):
14 """
15 Class implementing a network access manager proxy for web pages.
16 """
17 primaryManager = None
18
19 def __init__(self, parent = None):
20 """
21 Constructor
22
23 @param parent reference to the parent object (QObject)
24 """
25 QNetworkAccessManager.__init__(self, parent)
26 self.__webPage = None
27
28 def setWebPage(self, page):
29 """
30 Public method to set the reference to a web page.
31
32 @param page reference to the web page object (HelpWebPage)
33 """
34 assert page is not None
35 self.__webPage = page
36
37 def setPrimaryNetworkAccessManager(self, manager):
38 """
39 Public method to set the primary network access manager.
40
41 @param manager reference to the network access manager object
42 (QNetworkAccessManager)
43 """
44 assert manager is not None
45 if self.__class__.primaryManager is None:
46 self.__class__.primaryManager = manager
47 self.setCookieJar(self.__class__.primaryManager.cookieJar())
48 # do not steal ownership
49 self.cookieJar().setParent(self.__class__.primaryManager)
50
51 self.connect(self,
52 SIGNAL('sslErrors(QNetworkReply *, const QList<QSslError> &)'),
53 self.__class__.primaryManager,
54 SIGNAL('sslErrors(QNetworkReply *, const QList<QSslError> &)'))
55 self.connect(self,
56 SIGNAL('proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *)'),
57 self.__class__.primaryManager,
58 SIGNAL('proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *)'))
59 self.connect(self,
60 SIGNAL('authenticationRequired(QNetworkReply *, QAuthenticator *)'),
61 self.__class__.primaryManager,
62 SIGNAL('authenticationRequired(QNetworkReply *, QAuthenticator *)'))
63 self.connect(self, SIGNAL("finished(QNetworkReply *)"),
64 self.__class__.primaryManager, SIGNAL("finished(QNetworkReply *)"))
65
66 def createRequest(self, op, request, outgoingData = None):
67 """
68 Protected method to create a request.
69
70 @param op the operation to be performed (QNetworkAccessManager.Operation)
71 @param request reference to the request object (QNetworkRequest)
72 @param outgoingData reference to an IODevice containing data to be sent
73 (QIODevice)
74 @return reference to the created reply object (QNetworkReply)
75 """
76 if self.primaryManager is not None and \
77 self.__webPage is not None:
78 pageRequest = request
79 self.__webPage.populateNetworkRequest(pageRequest)
80 return self.primaryManager.createRequest(op, request, outgoingData)
81
82 return QNetworkAccessManager.createRequest(self, op, request, outgoingData)

eric ide

mercurial