commit b99a71d1b377599e3265dc7a285a8f86b708f39c
parent e79253b5e067ef513f4dbd9f8750497a04897927
Author: ThomasV <thomasv@electrum.org>
Date: Sat, 31 Aug 2019 10:13:20 +0200
kivy: call register_callback only from main_window. Display CTN in channel details.
Diffstat:
2 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/electrum/gui/kivy/main_window.py b/electrum/gui/kivy/main_window.py
@@ -517,6 +517,8 @@ class ElectrumWindow(App):
self.network.register_callback(self.on_quotes, ['on_quotes'])
self.network.register_callback(self.on_history, ['on_history'])
self.network.register_callback(self.on_payment_received, ['payment_received'])
+ self.network.register_callback(self.on_channels, ['channels'])
+ self.network.register_callback(self.on_channel, ['channel'])
# load wallet
self.load_wallet_by_name(self.electrum_config.get_wallet_path())
# URI passed in config
@@ -637,6 +639,14 @@ class ElectrumWindow(App):
self._channels_dialog = LightningChannelsDialog(self)
self._channels_dialog.open()
+ def on_channel(self, evt, chan):
+ if self._channels_dialog:
+ Clock.schedule_once(lambda dt: self._channels_dialog.update())
+
+ def on_channels(self, evt):
+ if self._channels_dialog:
+ Clock.schedule_once(lambda dt: self._channels_dialog.update())
+
def popup_dialog(self, name):
if name == 'settings':
self.settings_dialog()
diff --git a/electrum/gui/kivy/uix/dialogs/lightning_channels.py b/electrum/gui/kivy/uix/dialogs/lightning_channels.py
@@ -130,6 +130,8 @@ class ChannelDetailsPopup(Popup):
_('Short Chan ID'): format_short_channel_id(chan.short_channel_id),
_('Initiator'): 'Local' if chan.constraints.is_initiator else 'Remote',
_('State'): chan.get_state(),
+ _('Local CTN'): chan.get_latest_ctn(LOCAL),
+ _('Remote CTN'): chan.get_latest_ctn(REMOTE),
_('Capacity'): self.app.format_amount_and_units(chan.constraints.capacity),
_('Can send'): self.app.format_amount_and_units(chan.available_to_spend(LOCAL) // 1000),
_('Current feerate'): str(chan.get_latest_feerate(LOCAL)),
@@ -176,8 +178,6 @@ class LightningChannelsDialog(Factory.Popup):
super(LightningChannelsDialog, self).__init__()
self.clocks = []
self.app = app
- self.app.wallet.network.register_callback(self.on_channels, ['channels'])
- self.app.wallet.network.register_callback(self.on_channel, ['channel'])
self.update()
def show_item(self, obj):
@@ -200,12 +200,6 @@ class LightningChannelsDialog(Factory.Popup):
labels[REMOTE],
]
- def on_channel(self, evt, chan):
- Clock.schedule_once(lambda dt: self.update())
-
- def on_channels(self, evt):
- Clock.schedule_once(lambda dt: self.update())
-
def update_item(self, item):
chan = item._chan
item.status = chan.get_state()