--- a/UI/UserInterface.py Sun Feb 04 10:56:30 2018 +0100 +++ b/UI/UserInterface.py Fri Mar 02 19:35:16 2018 +0100 @@ -485,7 +485,8 @@ self.viewmanager.editorRenamed.connect(self.__writeCrashSession) self.viewmanager.editorChanged.connect(self.__writeCrashSession) - self.shell.zoomValueChanged.connect(self.viewmanager.zoomValueChanged) + self.shell.zoomValueChanged.connect( + lambda v: self.viewmanager.zoomValueChanged(v, self.shell)) self.cooperation.shareEditor.connect(self.viewmanager.shareEditor) self.cooperation.startEdit.connect(self.viewmanager.startSharedEdit) @@ -3020,7 +3021,8 @@ tool['menutext'], self) act.setObjectName("{0}@@{1}".format(toolGroup[0], tool['menutext'])) - act.triggered.connect(self.__toolActionTriggered) + act.triggered.connect( + lambda: self.__toolActionTriggered(act)) self.toolGroupActions[act.objectName()] = act self.toolbarManager.addAction(act, category) @@ -3048,8 +3050,7 @@ for key in groupActionKeys: if key not in ckeys: self.toolbarManager.removeAction(self.toolGroupActions[key]) - self.toolGroupActions[key].triggered.disconnect( - self.__toolActionTriggered) + self.toolGroupActions[key].triggered.disconnect() del self.toolGroupActions[key] # step 4: add all newly configured tools @@ -3061,7 +3062,8 @@ act = QAction(UI.PixmapCache.getIcon(tool['icon']), tool['menutext'], self) act.setObjectName(key) - act.triggered.connect(self.__toolActionTriggered) + act.triggered.connect( + lambda: self.__toolActionTriggered(act)) self.toolGroupActions[key] = act self.toolbarManager.addAction(act, category) @@ -4821,11 +4823,13 @@ 'Ensure that it is available as <b>{0}</b>.</p>' ).format(snap)) - def __toolActionTriggered(self): + def __toolActionTriggered(self, act): """ Private slot called by external tools toolbar actions. - """ - act = self.sender() + + @param act reference to the action that triggered the slot + @type QAction + """ toolGroupName, toolMenuText = act.objectName().split('@@', 1) for toolGroup in self.toolGroups: if toolGroup[0] == toolGroupName: @@ -6462,7 +6466,7 @@ request.setAttribute(QNetworkRequest.CacheLoadControlAttribute, QNetworkRequest.AlwaysNetwork) reply = self.__networkManager.get(request) - reply.finished.connect(self.__versionsDownloadDone) + reply.finished.connect(lambda: self.__versionsDownloadDone(reply)) self.__replies.append(reply) else: if manual: @@ -6474,10 +6478,13 @@ """ Please go online and try again.""")) @pyqtSlot() - def __versionsDownloadDone(self): + def __versionsDownloadDone(self, reply): """ Private slot called, after the versions file has been downloaded from the internet. + + @param reply reference to the network reply + @type QNetworkReply """ if self.__versionCheckCanceled: self.__inVersionCheck = False @@ -6486,14 +6493,6 @@ self.__versionCheckProgress = None return - reply = self.sender() - - # This is a hack because sometimes reply is not a QNetworkReply - if not isinstance(reply, QNetworkReply): - if reply in self.__replies: - self.__replies.remove(reply) - return - reply.deleteLater() if reply in self.__replies: self.__replies.remove(reply)