mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-08-29 08:21:27 +00:00
add help text to channel backup QR code
This commit is contained in:
parent
83cabccdb5
commit
661ecb2cf5
6 changed files with 32 additions and 18 deletions
|
@ -462,7 +462,7 @@ class ElectrumWindow(App):
|
|||
self.invoice_popup = InvoiceDialog('Invoice', data, key)
|
||||
self.invoice_popup.open()
|
||||
|
||||
def qr_dialog(self, title, data, show_text=False, text_for_clipboard=None):
|
||||
def qr_dialog(self, title, data, show_text=False, text_for_clipboard=None, help_text=None):
|
||||
from .uix.dialogs.qr_dialog import QRDialog
|
||||
def on_qr_failure():
|
||||
popup.dismiss()
|
||||
|
@ -471,8 +471,11 @@ class ElectrumWindow(App):
|
|||
msg += '\n' + _('Text copied to clipboard.')
|
||||
self._clipboard.copy(text_for_clipboard)
|
||||
Clock.schedule_once(lambda dt: self.show_info(msg))
|
||||
popup = QRDialog(title, data, show_text, failure_cb=on_qr_failure,
|
||||
text_for_clipboard=text_for_clipboard)
|
||||
popup = QRDialog(
|
||||
title, data, show_text,
|
||||
failure_cb=on_qr_failure,
|
||||
text_for_clipboard=text_for_clipboard,
|
||||
help_text=help_text)
|
||||
popup.open()
|
||||
|
||||
def scan_qr(self, on_complete):
|
||||
|
|
|
@ -373,7 +373,13 @@ class ChannelDetailsPopup(Popup):
|
|||
|
||||
def export_backup(self):
|
||||
text = self.app.wallet.lnworker.export_channel_backup(self.chan.channel_id)
|
||||
self.app.qr_dialog(_("Channel Backup " + self.chan.short_id_for_GUI()), 'channel_backup:'+text)
|
||||
# TODO: some messages are duplicated between Kivy and Qt.
|
||||
help_text = ' '.join([
|
||||
_("Channel backups can be imported in another instance of the same wallet, by scanning this QR code."),
|
||||
_("Please note that channel backups cannot be used to restore your channels."),
|
||||
_("If you lose your wallet file, the only thing you can do with a backup is to request your channel to be closed, so that your funds will be sent on-chain."),
|
||||
])
|
||||
self.app.qr_dialog(_("Channel Backup " + self.chan.short_id_for_GUI()), 'channel_backup:'+text, help_text=help_text)
|
||||
|
||||
def force_close(self):
|
||||
Question(_('Force-close channel?'), self._force_close).open()
|
||||
|
|
|
@ -13,7 +13,7 @@ Builder.load_string('''
|
|||
title: ''
|
||||
data: ''
|
||||
shaded: False
|
||||
show_text: False
|
||||
help_text: ''
|
||||
AnchorLayout:
|
||||
anchor_x: 'center'
|
||||
BoxLayout:
|
||||
|
@ -29,7 +29,7 @@ Builder.load_string('''
|
|||
touch = args[1]
|
||||
if self.collide_point(*touch.pos): self.shaded = not self.shaded
|
||||
TopLabel:
|
||||
text: root.data if root.show_text else ''
|
||||
text: root.help_text
|
||||
Widget:
|
||||
size_hint: 1, 0.2
|
||||
BoxLayout:
|
||||
|
@ -56,12 +56,12 @@ Builder.load_string('''
|
|||
|
||||
class QRDialog(Factory.Popup):
|
||||
def __init__(self, title, data, show_text, *,
|
||||
failure_cb=None, text_for_clipboard=None):
|
||||
failure_cb=None, text_for_clipboard=None, help_text=None):
|
||||
Factory.Popup.__init__(self)
|
||||
self.app = App.get_running_app()
|
||||
self.title = title
|
||||
self.data = data
|
||||
self.show_text = show_text
|
||||
self.help_text = data if show_text else help_text
|
||||
self.failure_cb = failure_cb
|
||||
self.text_for_clipboard = text_for_clipboard if text_for_clipboard else data
|
||||
|
||||
|
|
|
@ -126,8 +126,13 @@ class ChannelsList(MyTreeView):
|
|||
self.lnbackups.remove_channel_backup(channel_id)
|
||||
|
||||
def export_channel_backup(self, channel_id):
|
||||
msg = ' '.join([
|
||||
_("Channel backups can be imported in another instance of the same wallet, by scanning this QR code."),
|
||||
_("Please note that channel backups cannot be used to restore your channels."),
|
||||
_("If you lose your wallet file, the only thing you can do with a backup is to request your channel to be closed, so that your funds will be sent on-chain."),
|
||||
])
|
||||
data = self.lnworker.export_channel_backup(channel_id)
|
||||
self.main_window.show_qrcode('channel_backup:' + data, 'channel backup')
|
||||
self.main_window.show_qrcode('channel_backup:' + data, 'channel backup', help_text=msg)
|
||||
|
||||
def request_force_close(self, channel_id):
|
||||
def task():
|
||||
|
|
|
@ -2372,10 +2372,10 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
|
|||
d = SeedDialog(self, seed, passphrase)
|
||||
d.exec_()
|
||||
|
||||
def show_qrcode(self, data, title = _("QR code"), parent=None):
|
||||
def show_qrcode(self, data, title = _("QR code"), parent=None, help_text=None):
|
||||
if not data:
|
||||
return
|
||||
d = QRDialog(data, parent or self, title)
|
||||
d = QRDialog(data, parent or self, title, help_text=help_text)
|
||||
d.exec_()
|
||||
|
||||
@protected
|
||||
|
|
|
@ -10,7 +10,7 @@ from PyQt5.QtWidgets import (
|
|||
|
||||
from electrum.i18n import _
|
||||
|
||||
from .util import WindowModalDialog, get_parent_main_window
|
||||
from .util import WindowModalDialog, get_parent_main_window, WWLabel
|
||||
|
||||
|
||||
class QRCodeWidget(QWidget):
|
||||
|
@ -93,17 +93,17 @@ class QRCodeWidget(QWidget):
|
|||
|
||||
class QRDialog(WindowModalDialog):
|
||||
|
||||
def __init__(self, data, parent=None, title = "", show_text=False):
|
||||
def __init__(self, data, parent=None, title = "", show_text=False, help_text=None):
|
||||
WindowModalDialog.__init__(self, parent, title)
|
||||
|
||||
vbox = QVBoxLayout()
|
||||
qrw = QRCodeWidget(data)
|
||||
vbox.addWidget(qrw, 1)
|
||||
if show_text:
|
||||
text = QTextEdit()
|
||||
text.setText(data)
|
||||
text.setReadOnly(True)
|
||||
vbox.addWidget(text)
|
||||
help_text = data if show_text else help_text
|
||||
if help_text:
|
||||
text_label = WWLabel()
|
||||
text_label.setText(help_text)
|
||||
vbox.addWidget(text_label)
|
||||
hbox = QHBoxLayout()
|
||||
hbox.addStretch(1)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue