From 4d8592c6b77de24a372b720f6c9bf52d9530d3a8 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Thu, 16 Dec 2021 17:07:42 +0100 Subject: [PATCH] Catch runtime errors when trying to disconnect signal Contribute to CURA-8587 --- plugins/Marketplace/PackageList.py | 7 +++++-- plugins/Marketplace/PackageModel.py | 5 ++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/plugins/Marketplace/PackageList.py b/plugins/Marketplace/PackageList.py index 80588a0c12..2c1da39182 100644 --- a/plugins/Marketplace/PackageList.py +++ b/plugins/Marketplace/PackageList.py @@ -55,8 +55,11 @@ class PackageList(ListModel): def __del__(self) -> None: """ When this object is deleted it will loop through all registered API requests and aborts them """ self.cleanUpAPIRequest() - self.isLoadingChanged.disconnect() - self.hasMoreChanged.disconnect() + try: + self.isLoadingChanged.disconnect() + self.hasMoreChanged.disconnect() + except RuntimeError: + pass def abortRequest(self, request_id: str) -> None: """Aborts a single request""" diff --git a/plugins/Marketplace/PackageModel.py b/plugins/Marketplace/PackageModel.py index 334b54e6f5..52edd60d1b 100644 --- a/plugins/Marketplace/PackageModel.py +++ b/plugins/Marketplace/PackageModel.py @@ -88,7 +88,10 @@ class PackageModel(QObject): self.setCanUpdate(self._package_id in self._package_manager.packagesWithUpdate) def __del__(self): - self._package_manager.packagesWithUpdateChanged.disconnect(self._processUpdatedPackages) + try: + self._package_manager.packagesWithUpdateChanged.disconnect(self._processUpdatedPackages) + except RuntimeError: + pass def __eq__(self, other: object) -> bool: if isinstance(other, PackageModel):