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_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_address_widget, read_QIcon("bitcoin.png"), _('Address'))
|
||||||
self.receive_tabs.addTab(self.receive_lightning_widget, read_QIcon("lightning.png"), _('Lightning'))
|
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.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 = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding)
|
||||||
receive_tabs_sp.setRetainSizeWhenHidden(True)
|
receive_tabs_sp.setRetainSizeWhenHidden(True)
|
||||||
self.receive_tabs.setSizePolicy(receive_tabs_sp)
|
self.receive_tabs.setSizePolicy(receive_tabs_sp)
|
||||||
@@ -195,6 +194,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_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):
|
def toggle_receive_qr(self, e):
|
||||||
if e.button() != Qt.LeftButton:
|
if e.button() != Qt.LeftButton:
|
||||||
return
|
return
|
||||||
@@ -236,7 +241,6 @@ class ReceiveTab(QWidget, MessageBoxMixin, Logger):
|
|||||||
self.receive_tabs.setTabIcon(2, read_QIcon(icon_name))
|
self.receive_tabs.setTabIcon(2, read_QIcon(icon_name))
|
||||||
# encode lightning invoices as uppercase so QR encoding can use
|
# encode lightning invoices as uppercase so QR encoding can use
|
||||||
# alphanumeric mode; resulting in smaller QR codes
|
# alphanumeric mode; resulting in smaller QR codes
|
||||||
lnaddr_qr = lnaddr.upper()
|
|
||||||
self.receive_address_e.setText(addr)
|
self.receive_address_e.setText(addr)
|
||||||
self.receive_address_qr.setData(addr)
|
self.receive_address_qr.setData(addr)
|
||||||
self.receive_address_help_text.setText(address_help)
|
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_URI_help.setText(URI_help)
|
||||||
self.receive_lightning_e.setText(lnaddr) # TODO maybe prepend "lightning:" ??
|
self.receive_lightning_e.setText(lnaddr) # TODO maybe prepend "lightning:" ??
|
||||||
self.receive_lightning_help_text.setText(ln_help)
|
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_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_URI_e, warning_text=URI_help)
|
||||||
self.update_textedit_warning(text_e=self.receive_lightning_e, warning_text=ln_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.receive_tabs.setVisible(True)
|
||||||
self.update_receive_qr_window()
|
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):
|
def update_receive_qr_window(self):
|
||||||
if self.window.qr_window and self.window.qr_window.isVisible():
|
if self.window.qr_window and self.window.qr_window.isVisible():
|
||||||
i = self.receive_tabs.currentIndex()
|
i = self.receive_tabs.currentIndex()
|
||||||
if i == 0:
|
title, data = self.get_tab_data(i)
|
||||||
data = self.receive_URI_qr.data
|
if i == 2:
|
||||||
elif i == 1:
|
data = data.upper()
|
||||||
data = self.receive_address_qr.data
|
|
||||||
else:
|
|
||||||
data = self.receive_lightning_qr.data
|
|
||||||
self.window.qr_window.qrw.setData(data)
|
self.window.qr_window.qrw.setData(data)
|
||||||
|
|
||||||
def create_invoice(self):
|
def create_invoice(self):
|
||||||
@@ -301,11 +310,8 @@ class ReceiveTab(QWidget, MessageBoxMixin, Logger):
|
|||||||
# clear request fields
|
# clear request fields
|
||||||
self.receive_amount_e.setText('')
|
self.receive_amount_e.setText('')
|
||||||
self.receive_message_e.setText('')
|
self.receive_message_e.setText('')
|
||||||
# copy to clipboard
|
# copy current tab to clipboard
|
||||||
r = self.wallet.get_request(key)
|
self.on_tab_changed(self.receive_tabs.currentIndex())
|
||||||
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)
|
|
||||||
|
|
||||||
def get_bitcoin_address_for_request(self, amount) -> Optional[str]:
|
def get_bitcoin_address_for_request(self, amount) -> Optional[str]:
|
||||||
addr = self.wallet.get_unused_address()
|
addr = self.wallet.get_unused_address()
|
||||||
|
|||||||
Reference in New Issue
Block a user