E5Network/E5NetworkProxyFactory.py

changeset 286
652f5159f1c3
parent 283
efe6750fb0ec
child 289
baf4c1354c6a
equal deleted inserted replaced
284:06d3067f8a63 286:652f5159f1c3
8 """ 8 """
9 9
10 import sys 10 import sys
11 import os 11 import os
12 12
13 from PyQt4.QtCore import QUrl 13 from PyQt4.QtCore import QUrl, Qt, QCoreApplication
14 from PyQt4.QtGui import QMessageBox 14 from PyQt4.QtGui import QMessageBox, QDialog
15 from PyQt4.QtNetwork import QNetworkProxyFactory, QNetworkProxy, QNetworkProxyQuery 15 from PyQt4.QtNetwork import QNetworkProxyFactory, QNetworkProxy, QNetworkProxyQuery
16
17 from UI.AuthenticationDialog import AuthenticationDialog
16 18
17 import Preferences 19 import Preferences
18 20
19 class E5NetworkProxyFactory(QNetworkProxyFactory): 21 class E5NetworkProxyFactory(QNetworkProxyFactory):
20 """ 22 """
55 proxyType = QNetworkProxy.FtpCachingProxy 57 proxyType = QNetworkProxy.FtpCachingProxy
56 proxy = QNetworkProxy(proxyType, url.host(), url.port(), 58 proxy = QNetworkProxy(proxyType, url.host(), url.port(),
57 url.userName(), url.password()) 59 url.userName(), url.password())
58 proxyList = [proxy] 60 proxyList = [proxy]
59 break 61 break
60 proxyList[0].setUser(Preferences.getUI("ProxyUser")) 62 proxyList[0].setUser(Preferences.getUI("ProxyUser/Http"))
61 proxyList[0].setPassword(Preferences.getUI("ProxyPassword")) 63 proxyList[0].setPassword(Preferences.getUI("ProxyPassword/Http"))
62 return proxyList 64 return proxyList
63 else: 65 else:
64 host = Preferences.getUI("ProxyHost") 66 host = Preferences.getUI("ProxyHost/Http")
65 if not host: 67 if not host:
66 QMessageBox.critical(None, 68 QMessageBox.critical(None,
67 self.trUtf8("Proxy Configuration Error"), 69 self.trUtf8("Proxy Configuration Error"),
68 self.trUtf8("""Proxy usage was activated""" 70 self.trUtf8("""Proxy usage was activated"""
69 """ but no proxy host configured.""")) 71 """ but no proxy host configured."""))
70 return [QNetworkProxy(QNetworkProxy.DefaultProxy)] 72 return [QNetworkProxy(QNetworkProxy.DefaultProxy)]
71 else: 73 else:
72 pProxyType = Preferences.getUI("ProxyType") 74 proxy = QNetworkProxy(QNetworkProxy.HttpProxy, host,
73 if pProxyType == 0: 75 Preferences.getUI("ProxyPort/Http"),
74 proxyType = QNetworkProxy.HttpProxy 76 Preferences.getUI("ProxyUser/Http"),
75 elif pProxyType == 1: 77 Preferences.getUI("ProxyPassword/Http"))
76 proxyType = QNetworkProxy.HttpCachingProxy
77 elif pProxyType == 2:
78 proxyType = QNetworkProxy.Socks5Proxy
79 proxy = QNetworkProxy(proxyType, host,
80 Preferences.getUI("ProxyPort"),
81 Preferences.getUI("ProxyUser"),
82 Preferences.getUI("ProxyPassword"))
83 return [proxy, QNetworkProxy(QNetworkProxy.DefaultProxy)] 78 return [proxy, QNetworkProxy(QNetworkProxy.DefaultProxy)]
84 else: 79 else:
85 return [QNetworkProxy(QNetworkProxy.NoProxy)] 80 return [QNetworkProxy(QNetworkProxy.NoProxy)]
81
82 def proxyAuthenticationRequired(proxy, auth):
83 """
84 Module slot to handle a proxy authentication request.
85
86 @param proxy reference to the proxy object (QNetworkProxy)
87 @param auth reference to the authenticator object (QAuthenticator)
88 """
89 info = QCoreApplication.translate("E5NetworkProxyFactory", "<b>Connect to proxy '{0}' using:</b>")\
90 .format(Qt.escape(proxy.hostName()))
91
92 dlg = AuthenticationDialog(info, proxy.user(), True)
93 if dlg.exec_() == QDialog.Accepted:
94 username, password = dlg.getData()
95 auth.setUser(username)
96 auth.setPassword(password)
97 if dlg.shallSave():
98 Preferences.setUI("ProxyUser/Http", username)
99 Preferences.setUI("ProxyPassword/Http", password)
100 proxy.setUser(username)
101 proxy.setPassword(password)

eric ide

mercurial