diff --git a/picard/ui/mainwindow.py b/picard/ui/mainwindow.py index 95bd3fe08..1c4b05c0b 100644 --- a/picard/ui/mainwindow.py +++ b/picard/ui/mainwindow.py @@ -225,7 +225,9 @@ class MainWindow(QtGui.QMainWindow): self.infostatus.setFiles(len(self.tagger.files)) self.infostatus.setAlbums(len(self.tagger.albums)) self.infostatus.setPendingFiles(File.num_pending_files) - self.infostatus.setPendingRequests(self.tagger.xmlws.num_pending_web_requests) + ws = self.tagger.xmlws + self.infostatus.setPendingRequests(max(ws.num_pending_web_requests, + ws.num_active_requests)) def update_statusbar_listen_port(self, listen_port): self.listening_label.setVisible(True) diff --git a/picard/webservice.py b/picard/webservice.py index a78b2bc32..b734da840 100644 --- a/picard/webservice.py +++ b/picard/webservice.py @@ -139,6 +139,7 @@ class XmlWebService(QtCore.QObject): "DELETE": self.manager.deleteResource } self.num_pending_web_requests = 0 + self.num_active_requests = 0 def set_cache(self, cache_size_in_mb=100): cache = QtNetwork.QNetworkDiskCache() @@ -182,6 +183,7 @@ class XmlWebService(QtCore.QObject): key = (host, port) self._last_request_times[key] = time.time() self._active_requests[reply] = (request, handler, xml) + self.num_active_requests += 1 return True @staticmethod @@ -195,6 +197,7 @@ class XmlWebService(QtCore.QObject): leftUrl.toString(QUrl.RemovePort) == rightUrl.toString(QUrl.RemovePort) def _process_reply(self, reply): + self.num_active_requests -= 1 try: request, handler, xml = self._active_requests.pop(reply) except KeyError: