Skip to content

Commit 5f6ad1c

Browse files
Merge branch 'spesmilo:master' into master
2 parents 0798cd5 + 27a94ff commit 5f6ad1c

43 files changed

Lines changed: 419 additions & 292 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

electrum/chains/mainnet/servers.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -249,11 +249,11 @@
249249
"t": "50001",
250250
"version": "1.4"
251251
},
252-
"electrum.jochen-hoenicke.de": {
252+
"electrum.jhoenicke.de": {
253253
"pruning": "-",
254-
"s": "50006",
255-
"t": "50099",
256-
"version": "1.4.5"
254+
"s": "50002",
255+
"t": "50001",
256+
"version": "1.6"
257257
},
258258
"electrum.pabu.io": {
259259
"pruning": "-",

electrum/gui/common_qt/util.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import queue
22
import sys
3+
from functools import wraps
34
from typing import Optional, NamedTuple, Callable
45
import os.path
56

@@ -10,6 +11,7 @@
1011

1112
from electrum.i18n import _
1213
from electrum.logging import Logger
14+
from electrum.util import EventListener, event_listener
1315

1416
_cached_font_ids: dict[str, int] = {}
1517

@@ -190,3 +192,33 @@ def stop(self):
190192
self.tasks.put(None) # in case the thread is still waiting on the queue
191193
self.exit()
192194
self.wait()
195+
196+
197+
class QtEventListener(EventListener):
198+
qt_callback_signal = pyqtSignal(tuple)
199+
200+
def register_callbacks(self):
201+
self.qt_callback_signal.connect(self.on_qt_callback_signal)
202+
EventListener.register_callbacks(self)
203+
204+
def unregister_callbacks(self):
205+
try:
206+
self.qt_callback_signal.disconnect()
207+
except (RuntimeError, TypeError): # wrapped Qt object might be deleted
208+
# "TypeError: disconnect() failed between 'qt_callback_signal' and all its connections"
209+
pass
210+
EventListener.unregister_callbacks(self)
211+
212+
def on_qt_callback_signal(self, args):
213+
func = args[0]
214+
return func(self, *args[1:])
215+
216+
217+
# decorator for members of the QtEventListener class
218+
def qt_event_listener(func):
219+
func = event_listener(func)
220+
221+
@wraps(func)
222+
def decorator(self, *args):
223+
self.qt_callback_signal.emit((func,) + args)
224+
return decorator

electrum/gui/qml/qeaddresslistmodel.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@
55

66
from electrum.logging import get_logger
77
from electrum.util import Satoshis
8-
from .qeconfig import QEConfig
98

9+
from electrum.gui.common_qt.util import QtEventListener, qt_event_listener
10+
11+
from .qeconfig import QEConfig
1012
from .qetypes import QEAmount
11-
from .util import qt_event_listener, QtEventListener
13+
1214

1315
if TYPE_CHECKING:
1416
from electrum.wallet import Abstract_Wallet

electrum/gui/qml/qechanneldetails.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@
99
from electrum.logging import get_logger
1010
from electrum.lnutil import LOCAL, REMOTE
1111
from electrum.lnchannel import ChanCloseOption, ChannelState, AbstractChannel, Channel, ChannelBackup
12-
from electrum.util import format_short_id
12+
from electrum.util import format_short_id, event_listener
13+
14+
from electrum.gui.common_qt.util import QtEventListener
1315

1416
from .auth import AuthMixin, auth_protect
1517
from .qewallet import QEWallet
1618
from .qetypes import QEAmount
17-
from .util import QtEventListener, event_listener
1819

1920
if TYPE_CHECKING:
2021
from electrum.wallet import Abstract_Wallet

electrum/gui/qml/qechannellistmodel.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
from electrum.util import Satoshis
88
from electrum.gui import messages
99

10+
from electrum.gui.common_qt.util import qt_event_listener, QtEventListener
11+
1012
from .qetypes import QEAmount
11-
from .util import QtEventListener, qt_event_listener
1213
from .qemodelfilter import QEFilterProxyModel
1314

1415

electrum/gui/qml/qefx.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77
from electrum.exchange_rate import FxThread
88
from electrum.logging import get_logger
99
from electrum.simple_config import SimpleConfig
10+
from electrum.util import event_listener
11+
12+
from electrum.gui.common_qt.util import QtEventListener
1013

1114
from .qetypes import QEAmount
12-
from .util import QtEventListener, event_listener
1315

1416

1517
class QEFX(QObject, QtEventListener):

electrum/gui/qml/qeinvoice.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,13 @@
1919
from electrum.paymentrequest import PaymentRequest
2020
from electrum.payment_identifier import PaymentIdentifier, PaymentIdentifierState, PaymentIdentifierType
2121
from electrum.network import Network
22+
from electrum.util import event_listener
23+
24+
from electrum.gui.common_qt.util import QtEventListener
2225

2326
from .qetypes import QEAmount
2427
from .qewallet import QEWallet
25-
from .util import status_update_timer_interval, QtEventListener, event_listener
28+
from .util import status_update_timer_interval
2629
from ...util import InvoiceError
2730

2831

electrum/gui/qml/qeinvoicelistmodel.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
from electrum.util import Satoshis, format_time
99
from electrum.invoices import BaseInvoice, PR_EXPIRED, LN_EXPIRY_NEVER, Invoice, Request, PR_PAID
1010

11-
from .util import QtEventListener, qt_event_listener, status_update_timer_interval
11+
from electrum.gui.common_qt.util import QtEventListener, qt_event_listener
12+
13+
from .util import status_update_timer_interval
1214
from .qetypes import QEAmount
1315

1416
if TYPE_CHECKING:

electrum/gui/qml/qenetwork.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@
77
from electrum.network import ProxySettings
88
from electrum.interface import ServerAddr
99
from electrum.fee_policy import FEERATE_DEFAULT_RELAY
10+
from electrum.util import event_listener
11+
12+
from electrum.gui.common_qt.util import QtEventListener
1013

11-
from .util import QtEventListener, event_listener
1214
from .qeconfig import QEConfig
1315
from .qeserverlistmodel import QEServerListModel
1416

electrum/gui/qml/qerequestdetails.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@
1414
from electrum.i18n import _
1515
from electrum.network import Network
1616

17+
from electrum.gui.common_qt.util import QtEventListener, qt_event_listener
18+
1719
from .qewallet import QEWallet
1820
from .qetypes import QEAmount
19-
from .util import QtEventListener, qt_event_listener, status_update_timer_interval
21+
from .util import status_update_timer_interval
2022

2123

2224
class QERequestDetails(QObject, QtEventListener):

0 commit comments

Comments
 (0)