receive tab: copy to clipboard when tab is changed
This commit is contained in:
@@ -161,9 +161,8 @@ class ReceiveTab(QWidget, MessageBoxMixin, Logger):
|
||||
self.receive_tabs.addTab(self.receive_URI_widget, read_QIcon("link.png"), _('URI'))
|
||||
self.receive_tabs.addTab(self.receive_address_widget, read_QIcon("bitcoin.png"), _('Address'))
|
||||
self.receive_tabs.addTab(self.receive_lightning_widget, read_QIcon("lightning.png"), _('Lightning'))
|
||||
self.receive_tabs.currentChanged.connect(self.update_receive_qr_window)
|
||||
self.receive_tabs.setCurrentIndex(self.config.get('receive_tabs_index', 0))
|
||||
self.receive_tabs.currentChanged.connect(lambda i: self.config.set_key('receive_tabs_index', i))
|
||||
self.receive_tabs.currentChanged.connect(self.on_tab_changed)
|
||||
receive_tabs_sp = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding)
|
||||
receive_tabs_sp.setRetainSizeWhenHidden(True)
|
||||
self.receive_tabs.setSizePolicy(receive_tabs_sp)
|
||||
@@ -195,6 +194,12 @@ class ReceiveTab(QWidget, MessageBoxMixin, Logger):
|
||||
vbox.setStretchFactor(self.request_list, 60)
|
||||
self.request_list.update() # after parented and put into a layout, can update without flickering
|
||||
|
||||
def on_tab_changed(self, i):
|
||||
self.config.set_key('receive_tabs_index', i)
|
||||
title, data = self.get_tab_data(i)
|
||||
self.window.do_copy(data, title=title)
|
||||
self.update_receive_qr_window()
|
||||
|
||||
def toggle_receive_qr(self, e):
|
||||
if e.button() != Qt.LeftButton:
|
||||
return
|
||||
@@ -236,7 +241,6 @@ class ReceiveTab(QWidget, MessageBoxMixin, Logger):
|
||||
self.receive_tabs.setTabIcon(2, read_QIcon(icon_name))
|
||||
# encode lightning invoices as uppercase so QR encoding can use
|
||||
# alphanumeric mode; resulting in smaller QR codes
|
||||
lnaddr_qr = lnaddr.upper()
|
||||
self.receive_address_e.setText(addr)
|
||||
self.receive_address_qr.setData(addr)
|
||||
self.receive_address_help_text.setText(address_help)
|
||||
@@ -245,7 +249,7 @@ class ReceiveTab(QWidget, MessageBoxMixin, Logger):
|
||||
self.receive_URI_help.setText(URI_help)
|
||||
self.receive_lightning_e.setText(lnaddr) # TODO maybe prepend "lightning:" ??
|
||||
self.receive_lightning_help_text.setText(ln_help)
|
||||
self.receive_lightning_qr.setData(lnaddr_qr)
|
||||
self.receive_lightning_qr.setData(lnaddr.upper())
|
||||
self.update_textedit_warning(text_e=self.receive_address_e, warning_text=address_help)
|
||||
self.update_textedit_warning(text_e=self.receive_URI_e, warning_text=URI_help)
|
||||
self.update_textedit_warning(text_e=self.receive_lightning_e, warning_text=ln_help)
|
||||
@@ -257,15 +261,20 @@ class ReceiveTab(QWidget, MessageBoxMixin, Logger):
|
||||
self.receive_tabs.setVisible(True)
|
||||
self.update_receive_qr_window()
|
||||
|
||||
def get_tab_data(self, i):
|
||||
if i == 0:
|
||||
return _('Bitcoin URI'), self.receive_URI_e.text()
|
||||
elif i == 1:
|
||||
return _('Address'), self.receive_address_e.text()
|
||||
else:
|
||||
return _('Lightning Request'), self.receive_lightning_e.text()
|
||||
|
||||
def update_receive_qr_window(self):
|
||||
if self.window.qr_window and self.window.qr_window.isVisible():
|
||||
i = self.receive_tabs.currentIndex()
|
||||
if i == 0:
|
||||
data = self.receive_URI_qr.data
|
||||
elif i == 1:
|
||||
data = self.receive_address_qr.data
|
||||
else:
|
||||
data = self.receive_lightning_qr.data
|
||||
title, data = self.get_tab_data(i)
|
||||
if i == 2:
|
||||
data = data.upper()
|
||||
self.window.qr_window.qrw.setData(data)
|
||||
|
||||
def create_invoice(self):
|
||||
@@ -301,11 +310,8 @@ class ReceiveTab(QWidget, MessageBoxMixin, Logger):
|
||||
# clear request fields
|
||||
self.receive_amount_e.setText('')
|
||||
self.receive_message_e.setText('')
|
||||
# copy to clipboard
|
||||
r = self.wallet.get_request(key)
|
||||
content = r.lightning_invoice if r.is_lightning() else r.get_address()
|
||||
title = _('Invoice') if r.is_lightning() else _('Address')
|
||||
self.window.do_copy(content, title=title)
|
||||
# copy current tab to clipboard
|
||||
self.on_tab_changed(self.receive_tabs.currentIndex())
|
||||
|
||||
def get_bitcoin_address_for_request(self, amount) -> Optional[str]:
|
||||
addr = self.wallet.get_unused_address()
|
||||
|
||||
Reference in New Issue
Block a user