You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
830 B
29 lines
830 B
from functools import wraps |
|
|
|
from PyQt5.QtCore import pyqtSignal |
|
|
|
from electrum.util import EventListener, event_listener |
|
|
|
class QtEventListener(EventListener): |
|
|
|
qt_callback_signal = pyqtSignal(tuple) |
|
|
|
def register_callbacks(self): |
|
self.qt_callback_signal.connect(self.on_qt_callback_signal) |
|
EventListener.register_callbacks(self) |
|
|
|
def unregister_callbacks(self): |
|
#self.qt_callback_signal.disconnect() |
|
EventListener.unregister_callbacks(self) |
|
|
|
def on_qt_callback_signal(self, args): |
|
func = args[0] |
|
return func(self, *args[1:]) |
|
|
|
# decorator for members of the QtEventListener class |
|
def qt_event_listener(func): |
|
func = event_listener(func) |
|
@wraps(func) |
|
def decorator(self, *args): |
|
self.qt_callback_signal.emit( (func,) + args) |
|
return decorator
|
|
|