eric6/E5Network/E5XmlRpcClient.py

changeset 7771
787a6b3f8c9f
parent 7628
f904d0eef264
child 7780
41420f82c0ac
diff -r 49f3377aebf1 -r 787a6b3f8c9f eric6/E5Network/E5XmlRpcClient.py
--- a/eric6/E5Network/E5XmlRpcClient.py	Fri Oct 09 17:19:29 2020 +0200
+++ b/eric6/E5Network/E5XmlRpcClient.py	Sat Oct 10 12:20:51 2020 +0200
@@ -10,7 +10,8 @@
 
 import xmlrpc.client as xmlrpc
 
-from PyQt5.QtCore import QObject, QUrl, QByteArray
+from PyQt5.QtCore import Qt, QObject, QUrl, QByteArray, QEventLoop
+from PyQt5.QtGui import QGuiApplication, QCursor
 from PyQt5.QtNetwork import (
     QNetworkAccessManager, QNetworkRequest, QNetworkReply
 )
@@ -77,6 +78,9 @@
         if not isinstance(args, tuple):
             raise TypeError("argument 'args' must be tuple")
         
+        QGuiApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
+        QGuiApplication.processEvents(QEventLoop.ExcludeUserInputEvents)
+        
         data = xmlrpc.dumps(args, method).encode("utf-8")
         reply = self.__networkManager.post(
             self.__request, QByteArray(data))
@@ -97,6 +101,9 @@
         @param reply reference to the reply object (QNetworkReply)
         @param errors list of SSL errors (list of QSslError)
         """
+        QGuiApplication.restoreOverrideCursor()
+        QGuiApplication.processEvents(QEventLoop.ExcludeUserInputEvents)
+        
         ignored = self.__sslErrorHandler.sslErrorsReply(reply, errors)[0]
         if ignored == E5SslErrorHandler.NotIgnored and reply in self.__callmap:
             self.__callmap[reply][1](xmlrpc.TRANSPORT_ERROR, self.tr(
@@ -111,6 +118,9 @@
         if reply not in self.__callmap:
             return
         
+        QGuiApplication.restoreOverrideCursor()
+        QGuiApplication.processEvents(QEventLoop.ExcludeUserInputEvents)
+        
         if reply.error() != QNetworkReply.NoError:
             self.__callmap[reply][1](xmlrpc.TRANSPORT_ERROR,
                                      reply.errorString())

eric ide

mercurial