Merge pull request #6008 from ynput/bugfix/refresh-thread-fix

This commit is contained in:
Ondřej Samohel 2023-12-06 10:30:31 +01:00 committed by GitHub
commit 080be7db73
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -15,6 +15,7 @@ class RefreshThread(QtCore.QThread):
self._callback = partial(func, *args, **kwargs)
self._exception = None
self._result = None
self.finished.connect(self._on_finish_callback)
@property
def id(self):
@ -29,11 +30,19 @@ class RefreshThread(QtCore.QThread):
self._result = self._callback()
except Exception as exc:
self._exception = exc
self.refresh_finished.emit(self.id)
def get_result(self):
return self._result
def _on_finish_callback(self):
"""Trigger custom signal with thread id.
Listening for 'finished' signal we make sure that execution of thread
finished and QThread object can be safely deleted.
"""
self.refresh_finished.emit(self.id)
class _IconsCache:
"""Cache for icons."""