URI: 
       tkivy: toggle lightning dialog - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 1b0521cabd07689fcd83fac7254565adbc9b6072
   DIR parent a13cea6f8ac47b37ad1740539072321e2418bf8c
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Mon, 14 Oct 2019 11:59:04 +0200
       
       kivy: toggle lightning dialog
       
       Diffstat:
         M electrum/gui/kivy/main_window.py    |      38 +++++++++++++++++++++++++++++--
         M electrum/gui/kivy/uix/ui_screens/s… |      10 ++++++++++
       
       2 files changed, 46 insertions(+), 2 deletions(-)
       ---
   DIR diff --git a/electrum/gui/kivy/main_window.py b/electrum/gui/kivy/main_window.py
       t@@ -42,6 +42,7 @@ from .uix.dialogs.installwizard import InstallWizard
        from .uix.dialogs import InfoBubble, crash_reporter
        from .uix.dialogs import OutputList, OutputItem
        from .uix.dialogs import TopLabel, RefLabel
       +from .uix.dialogs.question import Question
        
        #from kivy.core.window import Window
        #Window.softinput_mode = 'below_target'
       t@@ -613,7 +614,6 @@ class ElectrumWindow(App):
                    if not ask_if_wizard:
                        launch_wizard()
                    else:
       -                from .uix.dialogs.question import Question
                        def handle_answer(b: bool):
                            if b:
                                launch_wizard()
       t@@ -676,6 +676,9 @@ class ElectrumWindow(App):
                d.open()
        
            def lightning_channels_dialog(self):
       +        if not self.wallet.has_lightning():
       +            self.show_error('Lightning not enabled on this wallet')
       +            return
                if self._channels_dialog is None:
                    self._channels_dialog = LightningChannelsDialog(self)
                self._channels_dialog.open()
       t@@ -1073,8 +1076,39 @@ class ElectrumWindow(App):
                else:
                    f(*(args + (None,)))
        
       +    def toggle_lightning(self):
       +        if self.wallet.has_lightning():
       +            if not bool(self.wallet.lnworker.channels):
       +                warning = _('This will delete your lightning private keys')
       +                d = Question(_('Disable Lightning?') + '\n\n' + warning, self._disable_lightning)
       +                d.open()
       +            else:
       +                self.show_info('This wallet has channels')
       +        else:
       +            warning1 = _("Lightning support in Electrum is experimental. Do not put large amounts in lightning channels.")
       +            warning2 = _("Funds stored in lightning channels are not recoverable from your seed. You must backup your wallet file everytime you crate a new channel.")
       +            d = Question(_('Enable Lightning?') + '\n\n' + warning1 + '\n\n' + warning2, self._enable_lightning)
       +            d.open()
       +
       +    def _enable_lightning(self, b):
       +        if not b:
       +            return
       +        wallet_path = self.get_wallet_path()
       +        self.wallet.init_lightning()
       +        self.show_info(_('Lightning keys have been initialized.'))
       +        self.stop_wallet()
       +        self.load_wallet_by_name(wallet_path)
       +
       +    def _disable_lightning(self, b):
       +        if not b:
       +            return
       +        wallet_path = self.get_wallet_path()
       +        self.wallet.remove_lightning()
       +        self.show_info(_('Lightning keys have been removed.'))
       +        self.stop_wallet()
       +        self.load_wallet_by_name(wallet_path)
       +
            def delete_wallet(self):
       -        from .uix.dialogs.question import Question
                basename = os.path.basename(self.wallet.storage.path)
                d = Question(_('Delete wallet?') + '\n' + basename, self._delete_wallet)
                d.open()
   DIR diff --git a/electrum/gui/kivy/uix/ui_screens/status.kv b/electrum/gui/kivy/uix/ui_screens/status.kv
       t@@ -30,6 +30,9 @@ Popup:
                                text: _("Wallet type:")
                                value: app.wallet.wallet_type
                            BoxLabel:
       +                        text: _("Lightning:")
       +                        value: _('Enabled') if app.wallet.has_lightning() else _('Disabled')
       +                    BoxLabel:
                                text: _("Balance") + ':'
                                value: app.format_amount_and_units(root.confirmed + root.unconfirmed + root.unmatured)
                            BoxLabel:
       t@@ -80,6 +83,13 @@ Popup:
                    Button:
                        size_hint: 0.5, None
                        height: '48dp'
       +                text: _('Disable LN') if app.wallet.has_lightning() else _('Enable LN')
       +                on_release:
       +                    root.dismiss()
       +                    app.toggle_lightning()
       +            Button:
       +                size_hint: 0.5, None
       +                height: '48dp'
                        text: _('Close')
                        on_release:
                            root.dismiss()