fix exchange_rate plugin behavior when typing amounts
This commit is contained in:
@@ -1008,29 +1008,9 @@ class ElectrumWindow(QMainWindow):
|
||||
|
||||
self.amount_e.shortcut.connect(on_shortcut)
|
||||
|
||||
def text_edited(is_fee):
|
||||
outputs = self.payto_e.get_outputs()
|
||||
amount = self.amount_e.get_amount()
|
||||
fee = self.fee_e.get_amount() if is_fee else None
|
||||
if amount is None:
|
||||
self.fee_e.setAmount(None)
|
||||
self.not_enough_funds = False
|
||||
else:
|
||||
if not outputs:
|
||||
addr = self.payto_e.payto_address if self.payto_e.payto_address else self.dummy_address
|
||||
outputs = [('address', addr, amount)]
|
||||
try:
|
||||
tx = self.wallet.make_unsigned_transaction(outputs, fee, coins = self.get_coins())
|
||||
self.not_enough_funds = False
|
||||
except NotEnoughFunds:
|
||||
self.not_enough_funds = True
|
||||
if not is_fee:
|
||||
fee = None if self.not_enough_funds else self.wallet.get_tx_fee(tx)
|
||||
self.fee_e.setAmount(fee)
|
||||
|
||||
self.payto_e.textChanged.connect(lambda:text_edited(False))
|
||||
self.amount_e.textEdited.connect(lambda:text_edited(False))
|
||||
self.fee_e.textEdited.connect(lambda:text_edited(True))
|
||||
self.payto_e.textChanged.connect(lambda: self.update_fee(False))
|
||||
self.amount_e.textEdited.connect(lambda: self.update_fee(False))
|
||||
self.fee_e.textEdited.connect(lambda: self.update_fee(True))
|
||||
|
||||
def entry_changed():
|
||||
if not self.not_enough_funds:
|
||||
@@ -1053,6 +1033,26 @@ class ElectrumWindow(QMainWindow):
|
||||
run_hook('create_send_tab', grid)
|
||||
return w
|
||||
|
||||
def update_fee(self, is_fee):
|
||||
outputs = self.payto_e.get_outputs()
|
||||
amount = self.amount_e.get_amount()
|
||||
fee = self.fee_e.get_amount() if is_fee else None
|
||||
if amount is None:
|
||||
self.fee_e.setAmount(None)
|
||||
self.not_enough_funds = False
|
||||
else:
|
||||
if not outputs:
|
||||
addr = self.payto_e.payto_address if self.payto_e.payto_address else self.dummy_address
|
||||
outputs = [('address', addr, amount)]
|
||||
try:
|
||||
tx = self.wallet.make_unsigned_transaction(outputs, fee, coins = self.get_coins())
|
||||
self.not_enough_funds = False
|
||||
except NotEnoughFunds:
|
||||
self.not_enough_funds = True
|
||||
if not is_fee:
|
||||
fee = None if self.not_enough_funds else self.wallet.get_tx_fee(tx)
|
||||
self.fee_e.setAmount(fee)
|
||||
|
||||
def update_fee_edit(self):
|
||||
b = self.config.get('can_edit_fees', False)
|
||||
self.fee_e.setVisible(b)
|
||||
|
||||
Reference in New Issue
Block a user