Qt: make copy menus more consistent
This commit is contained in:
@@ -726,8 +726,8 @@ class HistoryList(MyTreeView, AcceptFileDragDrop):
|
||||
menu = QMenu()
|
||||
if tx_details.can_remove:
|
||||
menu.addAction(_("Remove"), lambda: self.remove_local_tx(tx_hash))
|
||||
cc = self.add_copy_menu(menu, idx)
|
||||
cc.addAction(_("Transaction ID"), lambda: self.place_text_on_clipboard(tx_hash, title="TXID"))
|
||||
copy_menu = self.add_copy_menu(menu, idx)
|
||||
copy_menu.addAction(_("Transaction ID"), lambda: self.place_text_on_clipboard(tx_hash, title="TXID"))
|
||||
menu_edit = menu.addMenu(_("Edit"))
|
||||
for c in self.editable_columns:
|
||||
if self.isColumnHidden(c): continue
|
||||
|
||||
@@ -157,12 +157,13 @@ class InvoiceList(MyTreeView):
|
||||
key = item_col0.data(ROLE_REQUEST_ID)
|
||||
invoice = self.wallet.get_invoice(key)
|
||||
menu = QMenu(self)
|
||||
self.add_copy_menu(menu, idx)
|
||||
copy_menu = self.add_copy_menu(menu, idx)
|
||||
address = invoice.get_address()
|
||||
if address:
|
||||
copy_menu.addAction(_("Address"), lambda: self.parent.do_copy(invoice.get_address(), title='Bitcoin Address'))
|
||||
if invoice.is_lightning():
|
||||
menu.addAction(_("Details"), lambda: self.parent.show_lightning_invoice(invoice))
|
||||
else:
|
||||
if len(invoice.outputs) == 1:
|
||||
menu.addAction(_("Copy Address"), lambda: self.parent.do_copy(invoice.get_address(), title='Bitcoin Address'))
|
||||
menu.addAction(_("Details"), lambda: self.parent.show_onchain_invoice(invoice))
|
||||
status = wallet.get_invoice_status(invoice)
|
||||
if status == PR_UNPAID:
|
||||
|
||||
@@ -194,13 +194,13 @@ class RequestList(MyTreeView):
|
||||
self.update()
|
||||
return
|
||||
menu = QMenu(self)
|
||||
copy_menu = self.add_copy_menu(menu, idx)
|
||||
if req.get_address():
|
||||
menu.addAction(_("Copy Address"), lambda: self.parent.do_copy(req.get_address(), title='Bitcoin Address'))
|
||||
copy_menu.addAction(_("Address"), lambda: self.parent.do_copy(req.get_address(), title='Bitcoin Address'))
|
||||
if URI := self.wallet.get_request_URI(req):
|
||||
menu.addAction(_("Copy URI"), lambda: self.parent.do_copy(URI, title='Bitcoin URI'))
|
||||
copy_menu.addAction(_("Bitcoin URI"), lambda: self.parent.do_copy(URI, title='Bitcoin URI'))
|
||||
if req.is_lightning():
|
||||
menu.addAction(_("Copy Lightning Request"), lambda: self.parent.do_copy(req.lightning_invoice, title='Lightning Request'))
|
||||
self.add_copy_menu(menu, idx)
|
||||
copy_menu.addAction(_("Lightning Request"), lambda: self.parent.do_copy(req.lightning_invoice, title='Lightning Request'))
|
||||
#if 'view_url' in req:
|
||||
# menu.addAction(_("View in web browser"), lambda: webopen(req['view_url']))
|
||||
menu.addAction(_("Delete"), lambda: self.delete_requests([key]))
|
||||
|
||||
@@ -774,8 +774,10 @@ class MyTreeView(QTreeView):
|
||||
self.show_toolbar(not self.toolbar_shown, config)
|
||||
|
||||
def add_copy_menu(self, menu: QMenu, idx) -> QMenu:
|
||||
cc = menu.addMenu(_("Copy Column"))
|
||||
cc = menu.addMenu(_("Copy"))
|
||||
for column in self.Columns:
|
||||
if self.isColumnHidden(column):
|
||||
continue
|
||||
column_title = self.original_model().horizontalHeaderItem(column).text()
|
||||
if not column_title:
|
||||
continue
|
||||
|
||||
@@ -244,41 +244,42 @@ class UTXOList(MyTreeView):
|
||||
menu = QMenu()
|
||||
menu.setSeparatorsCollapsible(True) # consecutive separators are merged together
|
||||
coins = [self._utxo_dict[name] for name in selected]
|
||||
if coins:
|
||||
menu_spend = menu.addMenu(_("Fully spend") + '…')
|
||||
m = menu_spend.addAction(_("send to address in clipboard"), lambda: self.pay_to_clipboard_address(coins))
|
||||
m.setEnabled(self.clipboard_contains_address())
|
||||
m = menu_spend.addAction(_("in new channel"), lambda: self.open_channel_with_coins(coins))
|
||||
m.setEnabled(self.can_open_channel(coins))
|
||||
m = menu_spend.addAction(_("in submarine swap"), lambda: self.swap_coins(coins))
|
||||
m.setEnabled(self.can_swap_coins(coins))
|
||||
# coin control
|
||||
if self.are_in_coincontrol(coins):
|
||||
menu.addAction(_("Remove from coin control"), lambda: self.remove_from_coincontrol(coins))
|
||||
else:
|
||||
menu.addAction(_("Add to coin control"), lambda: self.add_to_coincontrol(coins))
|
||||
|
||||
if not coins:
|
||||
return
|
||||
if len(coins) == 1:
|
||||
idx = self.indexAt(position)
|
||||
if not idx.isValid():
|
||||
return
|
||||
self.add_copy_menu(menu, idx)
|
||||
utxo = coins[0]
|
||||
addr = utxo.address
|
||||
txid = utxo.prevout.txid.hex()
|
||||
# "Details"
|
||||
tx = self.wallet.adb.get_transaction(txid)
|
||||
if tx:
|
||||
label = self.wallet.get_label_for_txid(txid)
|
||||
menu.addAction(_("Details"), lambda: self.parent.show_transaction(tx, tx_desc=label))
|
||||
# "Copy ..."
|
||||
idx = self.indexAt(position)
|
||||
if not idx.isValid():
|
||||
return
|
||||
self.add_copy_menu(menu, idx)
|
||||
# "Freeze coin"
|
||||
# fully spend
|
||||
menu_spend = menu.addMenu(_("Fully spend") + '…')
|
||||
m = menu_spend.addAction(_("send to address in clipboard"), lambda: self.pay_to_clipboard_address(coins))
|
||||
m.setEnabled(self.clipboard_contains_address())
|
||||
m = menu_spend.addAction(_("in new channel"), lambda: self.open_channel_with_coins(coins))
|
||||
m.setEnabled(self.can_open_channel(coins))
|
||||
m = menu_spend.addAction(_("in submarine swap"), lambda: self.swap_coins(coins))
|
||||
m.setEnabled(self.can_swap_coins(coins))
|
||||
# coin control
|
||||
if self.are_in_coincontrol(coins):
|
||||
menu.addAction(_("Remove from coin control"), lambda: self.remove_from_coincontrol(coins))
|
||||
else:
|
||||
menu.addAction(_("Add to coin control"), lambda: self.add_to_coincontrol(coins))
|
||||
# Freeze menu
|
||||
if len(coins) == 1:
|
||||
utxo = coins[0]
|
||||
addr = utxo.address
|
||||
menu_freeze = menu.addMenu(_("Freeze"))
|
||||
if not self.wallet.is_frozen_coin(utxo):
|
||||
menu_freeze.addAction(_("Freeze Coin"), lambda: self.parent.set_frozen_state_of_coins([utxo], True))
|
||||
else:
|
||||
menu_freeze.addAction(_("Unfreeze Coin"), lambda: self.parent.set_frozen_state_of_coins([utxo], False))
|
||||
# "Freeze address"
|
||||
if not self.wallet.is_frozen_address(addr):
|
||||
menu_freeze.addAction(_("Freeze Address"), lambda: self.parent.set_frozen_state_of_addresses([addr], True))
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user