mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-10 11:57:28 -03:00
Merge bitcoin-core/gui#719: Remove confusing "Dust" label from coincontrol / sendcoins dialog
a582b4141f
gui: send, left alignment for "bytes" and "change" label (furszy)210ef1e980
qt: remove confusing "Dust" label from coincontrol / sendcoins dialog (Sebastian Falbesoner) Pull request description: In contrast to to all other labels on the coin selection dialog, the displayed dust information has nothing to do with the selected coins. All that this label shows is whether at least one of the _outputs_ qualify as dust, but the outputs are set in a different dialog. (Even worse, the dust check is currently simply wrong because it only looks at an output's nValue and just assumes a P2PKH script size.) As the label clearly doesn't help the user and is, quite the contrary, rather increasing confusion/misguidance, it seems sensible to remove it. The label from the sendcoins dialog is also removed with the same rationale. Additionally, the "bytes" and "change" labels are aligned to the left (second commit). Closes https://github.com/bitcoin-core/gui/issues/699. ACKs for top commit: furszy: ACKa582b41
hebasto: Looks good. ACKa582b4141f
. Tree-SHA512: ebc00b68bdeab69f6ab643e4b89301a7e3d04a8a4027b50813314ddddb1387bc97a83313851e375dfbce97751c234686c82af7f4e55fa5ef29f4fed4e8fc11d9
This commit is contained in:
commit
7446cb186c
6 changed files with 14 additions and 107 deletions
|
@ -70,7 +70,6 @@ CoinControlDialog::CoinControlDialog(CCoinControl& coin_control, WalletModel* _m
|
|||
QAction *clipboardFeeAction = new QAction(tr("Copy fee"), this);
|
||||
QAction *clipboardAfterFeeAction = new QAction(tr("Copy after fee"), this);
|
||||
QAction *clipboardBytesAction = new QAction(tr("Copy bytes"), this);
|
||||
QAction *clipboardLowOutputAction = new QAction(tr("Copy dust"), this);
|
||||
QAction *clipboardChangeAction = new QAction(tr("Copy change"), this);
|
||||
|
||||
connect(clipboardQuantityAction, &QAction::triggered, this, &CoinControlDialog::clipboardQuantity);
|
||||
|
@ -78,7 +77,6 @@ CoinControlDialog::CoinControlDialog(CCoinControl& coin_control, WalletModel* _m
|
|||
connect(clipboardFeeAction, &QAction::triggered, this, &CoinControlDialog::clipboardFee);
|
||||
connect(clipboardAfterFeeAction, &QAction::triggered, this, &CoinControlDialog::clipboardAfterFee);
|
||||
connect(clipboardBytesAction, &QAction::triggered, this, &CoinControlDialog::clipboardBytes);
|
||||
connect(clipboardLowOutputAction, &QAction::triggered, this, &CoinControlDialog::clipboardLowOutput);
|
||||
connect(clipboardChangeAction, &QAction::triggered, this, &CoinControlDialog::clipboardChange);
|
||||
|
||||
ui->labelCoinControlQuantity->addAction(clipboardQuantityAction);
|
||||
|
@ -86,7 +84,6 @@ CoinControlDialog::CoinControlDialog(CCoinControl& coin_control, WalletModel* _m
|
|||
ui->labelCoinControlFee->addAction(clipboardFeeAction);
|
||||
ui->labelCoinControlAfterFee->addAction(clipboardAfterFeeAction);
|
||||
ui->labelCoinControlBytes->addAction(clipboardBytesAction);
|
||||
ui->labelCoinControlLowOutput->addAction(clipboardLowOutputAction);
|
||||
ui->labelCoinControlChange->addAction(clipboardChangeAction);
|
||||
|
||||
// toggle tree/list mode
|
||||
|
@ -294,12 +291,6 @@ void CoinControlDialog::clipboardBytes()
|
|||
GUIUtil::setClipboard(ui->labelCoinControlBytes->text().replace(ASYMP_UTF8, ""));
|
||||
}
|
||||
|
||||
// copy label "Dust" to clipboard
|
||||
void CoinControlDialog::clipboardLowOutput()
|
||||
{
|
||||
GUIUtil::setClipboard(ui->labelCoinControlLowOutput->text());
|
||||
}
|
||||
|
||||
// copy label "Change" to clipboard
|
||||
void CoinControlDialog::clipboardChange()
|
||||
{
|
||||
|
@ -390,17 +381,8 @@ void CoinControlDialog::updateLabels(CCoinControl& m_coin_control, WalletModel *
|
|||
|
||||
// nPayAmount
|
||||
CAmount nPayAmount = 0;
|
||||
bool fDust = false;
|
||||
for (const CAmount &amount : CoinControlDialog::payAmounts)
|
||||
{
|
||||
for (const CAmount &amount : CoinControlDialog::payAmounts) {
|
||||
nPayAmount += amount;
|
||||
|
||||
if (amount > 0)
|
||||
{
|
||||
// Assumes a p2pkh script size
|
||||
CTxOut txout(amount, CScript() << std::vector<unsigned char>(24, 0));
|
||||
fDust |= IsDust(txout, model->node().getDustRelayFee());
|
||||
}
|
||||
}
|
||||
|
||||
CAmount nAmount = 0;
|
||||
|
@ -515,12 +497,9 @@ void CoinControlDialog::updateLabels(CCoinControl& m_coin_control, WalletModel *
|
|||
QLabel *l3 = dialog->findChild<QLabel *>("labelCoinControlFee");
|
||||
QLabel *l4 = dialog->findChild<QLabel *>("labelCoinControlAfterFee");
|
||||
QLabel *l5 = dialog->findChild<QLabel *>("labelCoinControlBytes");
|
||||
QLabel *l7 = dialog->findChild<QLabel *>("labelCoinControlLowOutput");
|
||||
QLabel *l8 = dialog->findChild<QLabel *>("labelCoinControlChange");
|
||||
|
||||
// enable/disable "dust" and "change"
|
||||
dialog->findChild<QLabel *>("labelCoinControlLowOutputText")->setEnabled(nPayAmount > 0);
|
||||
dialog->findChild<QLabel *>("labelCoinControlLowOutput") ->setEnabled(nPayAmount > 0);
|
||||
// enable/disable "change"
|
||||
dialog->findChild<QLabel *>("labelCoinControlChangeText") ->setEnabled(nPayAmount > 0);
|
||||
dialog->findChild<QLabel *>("labelCoinControlChange") ->setEnabled(nPayAmount > 0);
|
||||
|
||||
|
@ -530,7 +509,6 @@ void CoinControlDialog::updateLabels(CCoinControl& m_coin_control, WalletModel *
|
|||
l3->setText(BitcoinUnits::formatWithUnit(nDisplayUnit, nPayFee)); // Fee
|
||||
l4->setText(BitcoinUnits::formatWithUnit(nDisplayUnit, nAfterFee)); // After Fee
|
||||
l5->setText(((nBytes > 0) ? ASYMP_UTF8 : "") + QString::number(nBytes)); // Bytes
|
||||
l7->setText(fDust ? tr("yes") : tr("no")); // Dust
|
||||
l8->setText(BitcoinUnits::formatWithUnit(nDisplayUnit, nChange)); // Change
|
||||
if (nPayFee > 0)
|
||||
{
|
||||
|
@ -540,12 +518,6 @@ void CoinControlDialog::updateLabels(CCoinControl& m_coin_control, WalletModel *
|
|||
l8->setText(ASYMP_UTF8 + l8->text());
|
||||
}
|
||||
|
||||
// turn label red when dust
|
||||
l7->setStyleSheet((fDust) ? "color:red;" : "");
|
||||
|
||||
// tool tips
|
||||
QString toolTipDust = tr("This label turns red if any recipient receives an amount smaller than the current dust threshold.");
|
||||
|
||||
// how many satoshis the estimated fee can vary per byte we guess wrong
|
||||
double dFeeVary = (nBytes != 0) ? (double)nPayFee / nBytes : 0;
|
||||
|
||||
|
@ -553,12 +525,10 @@ void CoinControlDialog::updateLabels(CCoinControl& m_coin_control, WalletModel *
|
|||
|
||||
l3->setToolTip(toolTip4);
|
||||
l4->setToolTip(toolTip4);
|
||||
l7->setToolTip(toolTipDust);
|
||||
l8->setToolTip(toolTip4);
|
||||
dialog->findChild<QLabel *>("labelCoinControlFeeText") ->setToolTip(l3->toolTip());
|
||||
dialog->findChild<QLabel *>("labelCoinControlAfterFeeText") ->setToolTip(l4->toolTip());
|
||||
dialog->findChild<QLabel *>("labelCoinControlBytesText") ->setToolTip(l5->toolTip());
|
||||
dialog->findChild<QLabel *>("labelCoinControlLowOutputText")->setToolTip(l7->toolTip());
|
||||
dialog->findChild<QLabel *>("labelCoinControlChangeText") ->setToolTip(l8->toolTip());
|
||||
|
||||
// Insufficient funds
|
||||
|
|
|
@ -105,7 +105,6 @@ private Q_SLOTS:
|
|||
void clipboardFee();
|
||||
void clipboardAfterFee();
|
||||
void clipboardBytes();
|
||||
void clipboardLowOutput();
|
||||
void clipboardChange();
|
||||
void radioTreeMode(bool);
|
||||
void radioListMode(bool);
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
</property>
|
||||
<item>
|
||||
<layout class="QFormLayout" name="formLayoutCoinControl1">
|
||||
<property name="labelAlignment">
|
||||
<set>Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="horizontalSpacing">
|
||||
<number>10</number>
|
||||
</property>
|
||||
|
@ -139,41 +142,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="labelCoinControlLowOutputText">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Dust:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="labelCoinControlLowOutput">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="cursor">
|
||||
<cursorShape>IBeamCursor</cursorShape>
|
||||
</property>
|
||||
<property name="contextMenuPolicy">
|
||||
<enum>Qt::ActionsContextMenu</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">no</string>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
|
@ -223,6 +191,9 @@
|
|||
</item>
|
||||
<item>
|
||||
<layout class="QFormLayout" name="formLayoutCoinControl4">
|
||||
<property name="labelAlignment">
|
||||
<set>Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="horizontalSpacing">
|
||||
<number>10</number>
|
||||
</property>
|
||||
|
|
|
@ -201,6 +201,9 @@
|
|||
</property>
|
||||
<item>
|
||||
<layout class="QFormLayout" name="formLayoutCoinControl1">
|
||||
<property name="labelAlignment">
|
||||
<set>Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="horizontalSpacing">
|
||||
<number>10</number>
|
||||
</property>
|
||||
|
@ -331,35 +334,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="labelCoinControlLowOutputText">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Dust:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="labelCoinControlLowOutput">
|
||||
<property name="cursor">
|
||||
<cursorShape>IBeamCursor</cursorShape>
|
||||
</property>
|
||||
<property name="contextMenuPolicy">
|
||||
<enum>Qt::ActionsContextMenu</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">no</string>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
|
@ -415,6 +389,9 @@
|
|||
</item>
|
||||
<item>
|
||||
<layout class="QFormLayout" name="formLayoutCoinControl4">
|
||||
<property name="labelAlignment">
|
||||
<set>Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="horizontalSpacing">
|
||||
<number>10</number>
|
||||
</property>
|
||||
|
|
|
@ -97,21 +97,18 @@ SendCoinsDialog::SendCoinsDialog(const PlatformStyle *_platformStyle, QWidget *p
|
|||
QAction *clipboardFeeAction = new QAction(tr("Copy fee"), this);
|
||||
QAction *clipboardAfterFeeAction = new QAction(tr("Copy after fee"), this);
|
||||
QAction *clipboardBytesAction = new QAction(tr("Copy bytes"), this);
|
||||
QAction *clipboardLowOutputAction = new QAction(tr("Copy dust"), this);
|
||||
QAction *clipboardChangeAction = new QAction(tr("Copy change"), this);
|
||||
connect(clipboardQuantityAction, &QAction::triggered, this, &SendCoinsDialog::coinControlClipboardQuantity);
|
||||
connect(clipboardAmountAction, &QAction::triggered, this, &SendCoinsDialog::coinControlClipboardAmount);
|
||||
connect(clipboardFeeAction, &QAction::triggered, this, &SendCoinsDialog::coinControlClipboardFee);
|
||||
connect(clipboardAfterFeeAction, &QAction::triggered, this, &SendCoinsDialog::coinControlClipboardAfterFee);
|
||||
connect(clipboardBytesAction, &QAction::triggered, this, &SendCoinsDialog::coinControlClipboardBytes);
|
||||
connect(clipboardLowOutputAction, &QAction::triggered, this, &SendCoinsDialog::coinControlClipboardLowOutput);
|
||||
connect(clipboardChangeAction, &QAction::triggered, this, &SendCoinsDialog::coinControlClipboardChange);
|
||||
ui->labelCoinControlQuantity->addAction(clipboardQuantityAction);
|
||||
ui->labelCoinControlAmount->addAction(clipboardAmountAction);
|
||||
ui->labelCoinControlFee->addAction(clipboardFeeAction);
|
||||
ui->labelCoinControlAfterFee->addAction(clipboardAfterFeeAction);
|
||||
ui->labelCoinControlBytes->addAction(clipboardBytesAction);
|
||||
ui->labelCoinControlLowOutput->addAction(clipboardLowOutputAction);
|
||||
ui->labelCoinControlChange->addAction(clipboardChangeAction);
|
||||
|
||||
// init transaction fee section
|
||||
|
@ -919,12 +916,6 @@ void SendCoinsDialog::coinControlClipboardBytes()
|
|||
GUIUtil::setClipboard(ui->labelCoinControlBytes->text().replace(ASYMP_UTF8, ""));
|
||||
}
|
||||
|
||||
// Coin Control: copy label "Dust" to clipboard
|
||||
void SendCoinsDialog::coinControlClipboardLowOutput()
|
||||
{
|
||||
GUIUtil::setClipboard(ui->labelCoinControlLowOutput->text());
|
||||
}
|
||||
|
||||
// Coin Control: copy label "Change" to clipboard
|
||||
void SendCoinsDialog::coinControlClipboardChange()
|
||||
{
|
||||
|
|
|
@ -111,7 +111,6 @@ private Q_SLOTS:
|
|||
void coinControlClipboardFee();
|
||||
void coinControlClipboardAfterFee();
|
||||
void coinControlClipboardBytes();
|
||||
void coinControlClipboardLowOutput();
|
||||
void coinControlClipboardChange();
|
||||
void updateFeeSectionControls();
|
||||
void updateNumberOfBlocks(int count, const QDateTime& blockDate, double nVerificationProgress, SyncType synctype, SynchronizationState sync_state);
|
||||
|
|
Loading…
Reference in a new issue