30 lines
830 B
Python
30 lines
830 B
Python
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
|