PluginManager/PluginRepositoryDialog.py

changeset 2354
c63de4af553d
parent 2302
f29e9405c851
child 2360
b6bf3925e3e1
--- a/PluginManager/PluginRepositoryDialog.py	Mon Jan 14 18:47:41 2013 +0100
+++ b/PluginManager/PluginRepositoryDialog.py	Wed Jan 16 19:43:50 2013 +0100
@@ -16,11 +16,6 @@
 from PyQt4.QtGui import QWidget, QDialogButtonBox, QAbstractButton, QTreeWidgetItem, \
     QDialog, QVBoxLayout
 from PyQt4.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply
-try:
-    from PyQt4.QtNetwork import QSslError   # __IGNORE_EXCEPTION__ __IGNORE_WARNING__
-    SSL_AVAILABLE = True
-except ImportError:
-    SSL_AVAILABLE = False
 
 from .Ui_PluginRepositoryDialog import Ui_PluginRepositoryDialog
 
@@ -31,6 +26,11 @@
 from E5XML.PluginRepositoryReader import PluginRepositoryReader
 
 from E5Network.E5NetworkProxyFactory import proxyAuthenticationRequired
+try:
+    from E5Network.E5SslErrorHandler import E5SslErrorHandler
+    SSL_AVAILABLE = True
+except ImportError:
+    SSL_AVAILABLE = False
 
 import Utilities
 import Preferences
@@ -94,6 +94,7 @@
         self.__networkManager.proxyAuthenticationRequired.connect(
             proxyAuthenticationRequired)
         if SSL_AVAILABLE:
+            self.__sslErrorHandler = E5SslErrorHandler(self)
             self.__networkManager.sslErrors.connect(self.__sslErrors)
         self.__replies = []
         
@@ -504,25 +505,9 @@
         @param reply reference to the reply object (QNetworkReply)
         @param errors list of SSL errors (list of QSslError)
         """
-        errorStrings = []
-        if errors:
-            for err in errors:
-                errorStrings.append(err.errorString())
-            errorString = '.<br />'.join(errorStrings)
-            ret = E5MessageBox.yesNo(self,
-                self.trUtf8("SSL Errors"),
-                self.trUtf8("""<p>SSL Errors:</p>"""
-                            """<p>{0}</p>"""
-                            """<p>Do you want to ignore these errors?</p>""")\
-                    .format(errorString),
-            icon=E5MessageBox.Warning)
-        else:
-            ret = True
-        if ret:
-            reply.ignoreSslErrors()
-        else:
+        ignore = self.__sslErrorHandler.sslErrorsReply(reply, errors)[0]
+        if not ignore:
             self.__downloadCancelled = True
-            reply.abort()
     
     def getDownloadedPlugins(self):
         """

eric ide

mercurial