Helpviewer/Network/FtpReply.py

changeset 287
52b4c72080d2
parent 278
c93823b96faa
child 304
98429932e0c9
--- a/Helpviewer/Network/FtpReply.py	Wed May 26 17:53:53 2010 +0200
+++ b/Helpviewer/Network/FtpReply.py	Thu May 27 08:51:15 2010 +0200
@@ -9,7 +9,8 @@
 
 from PyQt4.QtCore import QByteArray, QIODevice, Qt, QUrl, QTimer, QBuffer
 from PyQt4.QtGui import QPixmap
-from PyQt4.QtNetwork import QFtp, QNetworkReply, QNetworkRequest, QUrlInfo
+from PyQt4.QtNetwork import QFtp, QNetworkReply, QNetworkRequest, QUrlInfo, \
+    QNetworkProxyQuery, QNetworkProxy
 from PyQt4.QtWebKit import QWebSettings
 
 import UI.PixmapCache
@@ -113,9 +114,35 @@
         self.__content = QByteArray()
         self.__units = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"]
         
+        if url.path() == "":
+            url.setPath("/")
         self.setUrl(url)
+        # do proxy setup
+        query = QNetworkProxyQuery(url)
+        proxyList = parent.proxyFactory().queryProxy(query)
+        ftpProxy = QNetworkProxy()
+        for proxy in proxyList:
+            if proxy.type() == QNetworkProxy.NoProxy or \
+               proxy.type() == QNetworkProxy.FtpCachingProxy:
+                ftpProxy = proxy
+                break
+        if ftpProxy.type() == QNetworkProxy.DefaultProxy:
+            self.setError(QNetworkReply.ProxyNotFoundError, 
+                          self.trUtf8("No suitable proxy found."))
+            QTimer.singleShot(0, self.__errorSignals)
+            return
+        elif ftpProxy.type() == QNetworkProxy.FtpCachingProxy:
+            self.__ftp.setProxy(ftpProxy.hostName(), ftpProxy.port())
+        
         QTimer.singleShot(0, self.__connectToHost)
     
+    def __errorSignals(self):
+        """
+        Private slot to send signal for errors during initialisation.
+        """
+        self.error.emit(QNetworkReply.ProxyNotFoundError)
+        self.finished.emit()
+    
     def abort(self):
         """
         Public slot to abort the operation.

eric ide

mercurial