Browse Source

fix adding coins to coincontrol from address list

master
Platon Pronko 3 years ago
parent
commit
eed48a8508
  1. 5
      electrum/gui/qt/address_list.py
  2. 5
      electrum/gui/qt/utxo_list.py

5
electrum/gui/qt/address_list.py

@ -288,7 +288,10 @@ class AddressList(MyTreeView):
coins = self.wallet.get_spendable_coins(addrs) coins = self.wallet.get_spendable_coins(addrs)
if coins: if coins:
menu.addAction(_("Spend from"), lambda: self.parent.utxo_list.set_spend_list(coins)) if self.parent.utxo_list.are_in_coincontrol(coins):
menu.addAction(_("Remove from coin control"), lambda: self.parent.utxo_list.remove_from_coincontrol(coins))
else:
menu.addAction(_("Add to coin control"), lambda: self.parent.utxo_list.add_to_coincontrol(coins))
run_hook('receive_menu', menu, addrs, self.wallet) run_hook('receive_menu', menu, addrs, self.wallet)
menu.exec_(self.viewport().mapToGlobal(position)) menu.exec_(self.viewport().mapToGlobal(position))

5
electrum/gui/qt/utxo_list.py

@ -149,6 +149,9 @@ class UTXOList(MyTreeView):
not self.wallet.is_frozen_coin(utxo))] not self.wallet.is_frozen_coin(utxo))]
return coins return coins
def are_in_coincontrol(self, coins: List[PartialTxInput]) -> bool:
return all([utxo.prevout.to_str() in self._spend_set for utxo in coins])
def add_to_coincontrol(self, coins: List[PartialTxInput]): def add_to_coincontrol(self, coins: List[PartialTxInput]):
coins = self._filter_frozen_coins(coins) coins = self._filter_frozen_coins(coins)
for utxo in coins: for utxo in coins:
@ -192,7 +195,7 @@ class UTXOList(MyTreeView):
coins = [self._utxo_dict[name] for name in selected] coins = [self._utxo_dict[name] for name in selected]
# coin control # coin control
if coins: if coins:
if all([utxo.prevout.to_str() in self._spend_set for utxo in coins]): if self.are_in_coincontrol(coins):
menu.addAction(_("Remove from coin control"), lambda: self.remove_from_coincontrol(coins)) menu.addAction(_("Remove from coin control"), lambda: self.remove_from_coincontrol(coins))
else: else:
menu.addAction(_("Add to coin control"), lambda: self.add_to_coincontrol(coins)) menu.addAction(_("Add to coin control"), lambda: self.add_to_coincontrol(coins))

Loading…
Cancel
Save