kivy: use ActionDropdown in ChannelDetailsPopup
This commit is contained in:
@@ -4,19 +4,20 @@ from typing import TYPE_CHECKING, Optional, Union
|
||||
from kivy.lang import Builder
|
||||
from kivy.factory import Factory
|
||||
from kivy.uix.popup import Popup
|
||||
from .fee_dialog import FeeDialog
|
||||
|
||||
from electrum.util import bh2u
|
||||
from electrum.logging import Logger
|
||||
from electrum.lnutil import LOCAL, REMOTE, format_short_channel_id
|
||||
from electrum.lnchannel import AbstractChannel, Channel, ChannelState
|
||||
from electrum.gui.kivy.i18n import _
|
||||
from .question import Question
|
||||
from electrum.transaction import PartialTxOutput, Transaction
|
||||
from electrum.util import NotEnoughFunds, NoDynamicFeeEstimates, format_fee_satoshis, quantize_feerate
|
||||
from electrum.lnutil import ln_dummy_address
|
||||
from electrum.gui import messages
|
||||
|
||||
from ..actiondropdown import ActionButtonOption, ActionDropdown
|
||||
from .fee_dialog import FeeDialog
|
||||
from .question import Question
|
||||
from .qr_dialog import QRDialog
|
||||
from .choice_dialog import ChoiceDialog
|
||||
|
||||
@@ -313,29 +314,12 @@ Builder.load_string(r'''
|
||||
BoxLayout:
|
||||
size_hint: 1, None
|
||||
height: '48dp'
|
||||
Button:
|
||||
ActionDropdown:
|
||||
id: action_dropdown
|
||||
size_hint: 0.5, None
|
||||
height: '48dp'
|
||||
text: _('Backup')
|
||||
on_release: root.export_backup()
|
||||
Button:
|
||||
Widget:
|
||||
size_hint: 0.5, None
|
||||
height: '48dp'
|
||||
text: _('Close')
|
||||
on_release: root.close()
|
||||
disabled: root.is_closed
|
||||
Button:
|
||||
size_hint: 0.5, None
|
||||
height: '48dp'
|
||||
text: _('Force-close')
|
||||
on_release: root.force_close()
|
||||
disabled: root.is_closed
|
||||
Button:
|
||||
size_hint: 0.5, None
|
||||
height: '48dp'
|
||||
text: _('Delete')
|
||||
on_release: root.remove_channel()
|
||||
disabled: not root.can_be_deleted
|
||||
|
||||
<ChannelBackupPopup@Popup>:
|
||||
id: popuproot
|
||||
@@ -494,6 +478,17 @@ class ChannelDetailsPopup(Popup, Logger):
|
||||
_("If you want to keep using this channel, you need to disable trampoline routing in your preferences."),
|
||||
])
|
||||
self.warning = '' if self.app.wallet.lnworker.channel_db or self.app.wallet.lnworker.is_trampoline_peer(chan.node_id) else _('Warning') + ': ' + msg
|
||||
self.update_action_dropdown()
|
||||
|
||||
def update_action_dropdown(self):
|
||||
action_dropdown = self.ids.action_dropdown # type: ActionDropdown
|
||||
options = (
|
||||
ActionButtonOption(text=_('Backup'), func=lambda btn: self.export_backup()),
|
||||
ActionButtonOption(text=_('Close channel'), func=lambda btn: self.close(), enabled=not self.is_closed),
|
||||
ActionButtonOption(text=_('Force-close'), func=lambda btn: self.force_close(), enabled=not self.is_closed),
|
||||
ActionButtonOption(text=_('Delete'), func=lambda btn: self.remove_channel(), enabled=self.can_be_deleted),
|
||||
)
|
||||
action_dropdown.update(options=options)
|
||||
|
||||
def close(self):
|
||||
dialog = ChoiceDialog(
|
||||
|
||||
Reference in New Issue
Block a user