Browse Source

move config settings that are related to invoice creation to receive tab.

master
ThomasV 3 years ago
parent
commit
37a0e125c6
  1. 14
      electrum/gui/qt/receive_tab.py
  2. 20
      electrum/gui/qt/settings_dialog.py
  3. 14
      electrum/gui/qt/util.py

14
electrum/gui/qt/receive_tab.py

@ -175,10 +175,16 @@ class ReceiveTab(QWidget, MessageBoxMixin, Logger):
from .request_list import RequestList from .request_list import RequestList
self.request_list = RequestList(self) self.request_list = RequestList(self)
self.toolbar, menu = self.request_list.create_toolbar_with_menu('') self.toolbar, menu = self.request_list.create_toolbar_with_menu('')
menu.addConfig(
_('Add on-chain fallback to lightning requests'), 'bolt11_fallback', True,
callback=self.on_toggle_bolt11_fallback)
menu.addConfig(
_('Add lightning requests to bitcoin URIs'), 'bip21_lightning', False,
tooltip=_('This may result in large QR codes'),
callback=self.update_current_request)
menu.addToggle(_("Show QR code window"), self.window.toggle_qr_window) menu.addToggle(_("Show QR code window"), self.window.toggle_qr_window)
menu.addAction(_("Import requests"), self.window.import_requests) menu.addAction(_("Import requests"), self.window.import_requests)
menu.addAction(_("Export requests"), self.window.export_requests) menu.addAction(_("Export requests"), self.window.export_requests)
# layout # layout
vbox_g = QVBoxLayout() vbox_g = QVBoxLayout()
vbox_g.addLayout(grid) vbox_g.addLayout(grid)
@ -199,6 +205,12 @@ class ReceiveTab(QWidget, MessageBoxMixin, Logger):
vbox.setStretchFactor(self.request_list, 60) vbox.setStretchFactor(self.request_list, 60)
self.request_list.update() # after parented and put into a layout, can update without flickering self.request_list.update() # after parented and put into a layout, can update without flickering
def on_toggle_bolt11_fallback(self):
if not self.wallet.lnworker:
return
self.wallet.lnworker.clear_invoices_cache()
self.update_current_request()
def on_tab_changed(self, i): def on_tab_changed(self, i):
self.config.set_key('receive_tabs_index', i) self.config.set_key('receive_tabs_index', i)
title, data = self.get_tab_data(i) title, data = self.get_tab_data(i)

20
electrum/gui/qt/settings_dialog.py

@ -104,21 +104,6 @@ class SettingsDialog(QDialog, QtEventListener):
self.app.update_status_signal.emit() self.app.update_status_signal.emit()
nz.valueChanged.connect(on_nz) nz.valueChanged.connect(on_nz)
# invoices
bolt11_fallback_cb = QCheckBox(_('Add on-chain fallback to lightning invoices'))
bolt11_fallback_cb.setChecked(bool(self.config.get('bolt11_fallback', True)))
bolt11_fallback_cb.setToolTip(_('Add fallback addresses to BOLT11 lightning invoices.'))
def on_bolt11_fallback(x):
self.config.set_key('bolt11_fallback', bool(x))
bolt11_fallback_cb.stateChanged.connect(on_bolt11_fallback)
bip21_lightning_cb = QCheckBox(_('Add lightning invoice to bitcoin URIs'))
bip21_lightning_cb.setChecked(bool(self.config.get('bip21_lightning', False)))
bip21_lightning_cb.setToolTip(_('This may create larger qr codes.'))
def on_bip21_lightning(x):
self.config.set_key('bip21_lightning', bool(x))
bip21_lightning_cb.stateChanged.connect(on_bip21_lightning)
# lightning # lightning
help_recov = _(messages.MSG_RECOVERABLE_CHANNELS) help_recov = _(messages.MSG_RECOVERABLE_CHANNELS)
recov_cb = QCheckBox(_("Create recoverable channels")) recov_cb = QCheckBox(_("Create recoverable channels"))
@ -426,10 +411,6 @@ class SettingsDialog(QDialog, QtEventListener):
gui_widgets.append((nz_label, nz)) gui_widgets.append((nz_label, nz))
gui_widgets.append((msat_cb, None)) gui_widgets.append((msat_cb, None))
gui_widgets.append((thousandsep_cb, None)) gui_widgets.append((thousandsep_cb, None))
invoices_widgets = []
invoices_widgets.append((bolt11_fallback_cb, None))
invoices_widgets.append((bip21_lightning_cb, None))
lightning_widgets = [] lightning_widgets = []
lightning_widgets.append((recov_cb, None)) lightning_widgets.append((recov_cb, None))
lightning_widgets.append((trampoline_cb, None)) lightning_widgets.append((trampoline_cb, None))
@ -452,7 +433,6 @@ class SettingsDialog(QDialog, QtEventListener):
tabs_info = [ tabs_info = [
(gui_widgets, _('Appearance')), (gui_widgets, _('Appearance')),
(invoices_widgets, _('Invoices')),
(lightning_widgets, _('Lightning')), (lightning_widgets, _('Lightning')),
(fiat_widgets, _('Fiat')), (fiat_widgets, _('Fiat')),
(misc_widgets, _('Misc')), (misc_widgets, _('Misc')),

14
electrum/gui/qt/util.py

@ -582,6 +582,20 @@ class MyMenu(QMenu):
m.setToolTip(tooltip) m.setToolTip(tooltip)
return m return m
def addConfig(self, text:str, name:str, default:bool, *, tooltip='', callback=None):
b = self.config.get(name, default)
m = self.addAction(text, lambda: self._do_toggle_config(name, default, callback))
m.setCheckable(True)
m.setChecked(b)
m.setToolTip(tooltip)
return m
def _do_toggle_config(self, name, default, callback):
b = self.config.get(name, default)
self.config.set_key(name, not b)
if callback:
callback()
class MyTreeView(QTreeView): class MyTreeView(QTreeView):
ROLE_CLIPBOARD_DATA = Qt.UserRole + 100 ROLE_CLIPBOARD_DATA = Qt.UserRole + 100

Loading…
Cancel
Save