Merge pull request #7238 from SomberNight/202104_qt_send_max_tooltip
qt send tab: when clicking "Max", show tooltip explaining max amt
This commit is contained in:
@@ -39,7 +39,7 @@ import asyncio
|
|||||||
from typing import Optional, TYPE_CHECKING, Sequence, List, Union
|
from typing import Optional, TYPE_CHECKING, Sequence, List, Union
|
||||||
|
|
||||||
from PyQt5.QtGui import QPixmap, QKeySequence, QIcon, QCursor, QFont
|
from PyQt5.QtGui import QPixmap, QKeySequence, QIcon, QCursor, QFont
|
||||||
from PyQt5.QtCore import Qt, QRect, QStringListModel, QSize, pyqtSignal
|
from PyQt5.QtCore import Qt, QRect, QStringListModel, QSize, pyqtSignal, QPoint
|
||||||
from PyQt5.QtCore import QTimer
|
from PyQt5.QtCore import QTimer
|
||||||
from PyQt5.QtWidgets import (QMessageBox, QComboBox, QSystemTrayIcon, QTabWidget,
|
from PyQt5.QtWidgets import (QMessageBox, QComboBox, QSystemTrayIcon, QTabWidget,
|
||||||
QMenuBar, QFileDialog, QCheckBox, QLabel,
|
QMenuBar, QFileDialog, QCheckBox, QLabel,
|
||||||
@@ -1461,6 +1461,17 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
|
|||||||
__, x_fee_amount = run_hook('get_tx_extra_fee', self.wallet, tx) or (None, 0)
|
__, x_fee_amount = run_hook('get_tx_extra_fee', self.wallet, tx) or (None, 0)
|
||||||
amount_after_all_fees = amount - x_fee_amount
|
amount_after_all_fees = amount - x_fee_amount
|
||||||
self.amount_e.setAmount(amount_after_all_fees)
|
self.amount_e.setAmount(amount_after_all_fees)
|
||||||
|
# show tooltip explaining max amount
|
||||||
|
mining_fee = tx.get_fee()
|
||||||
|
mining_fee_str = self.format_amount_and_units(mining_fee)
|
||||||
|
msg = _("Mining fee: {} (can be adjusted on next screen)").format(mining_fee_str)
|
||||||
|
if x_fee_amount:
|
||||||
|
twofactor_fee_str = self.format_amount_and_units(x_fee_amount)
|
||||||
|
msg += "\n" + _("2fa fee: {} (for the next batch of transactions)").format(twofactor_fee_str)
|
||||||
|
frozen_bal = self.get_frozen_balance_str()
|
||||||
|
if frozen_bal:
|
||||||
|
msg += "\n" + _("Some coins are frozen: {} (can be unfrozen in the Addresses or in the Coins tab)").format(frozen_bal)
|
||||||
|
QToolTip.showText(self.max_button.mapToGlobal(QPoint(0, 0)), msg)
|
||||||
|
|
||||||
def get_contact_payto(self, key):
|
def get_contact_payto(self, key):
|
||||||
_type, label = self.contacts.get(key)
|
_type, label = self.contacts.get(key)
|
||||||
@@ -1663,13 +1674,19 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
|
|||||||
|
|
||||||
def get_text_not_enough_funds_mentioning_frozen(self) -> str:
|
def get_text_not_enough_funds_mentioning_frozen(self) -> str:
|
||||||
text = _("Not enough funds")
|
text = _("Not enough funds")
|
||||||
frozen_bal = sum(self.wallet.get_frozen_balance())
|
frozen_str = self.get_frozen_balance_str()
|
||||||
if frozen_bal:
|
if frozen_str:
|
||||||
text += " ({} {} {})".format(
|
text += " ({} {})".format(
|
||||||
self.format_amount(frozen_bal).strip(), self.base_unit(), _("are frozen")
|
frozen_str, _("are frozen")
|
||||||
)
|
)
|
||||||
return text
|
return text
|
||||||
|
|
||||||
|
def get_frozen_balance_str(self) -> Optional[str]:
|
||||||
|
frozen_bal = sum(self.wallet.get_frozen_balance())
|
||||||
|
if not frozen_bal:
|
||||||
|
return None
|
||||||
|
return self.format_amount_and_units(frozen_bal)
|
||||||
|
|
||||||
def pay_onchain_dialog(
|
def pay_onchain_dialog(
|
||||||
self, inputs: Sequence[PartialTxInput],
|
self, inputs: Sequence[PartialTxInput],
|
||||||
outputs: List[PartialTxOutput], *,
|
outputs: List[PartialTxOutput], *,
|
||||||
|
|||||||
Reference in New Issue
Block a user