Skip to content

Commit

Permalink
[Qt] improve minimum absolute fee option
Browse files Browse the repository at this point in the history
- Only display the minimum absolute fee control if CoinControl is enabled
  • Loading branch information
jonasschnelli committed Nov 30, 2015
1 parent 31b508a commit ff723da
Showing 1 changed file with 22 additions and 5 deletions.
27 changes: 22 additions & 5 deletions src/qt/sendcoinsdialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -585,7 +585,7 @@ void SendCoinsDialog::updateFeeSectionControls()
ui->checkBoxMinimumFee ->setEnabled(ui->radioCustomFee->isChecked());
ui->labelMinFeeWarning ->setEnabled(ui->radioCustomFee->isChecked());
ui->radioCustomPerKilobyte ->setEnabled(ui->radioCustomFee->isChecked() && !ui->checkBoxMinimumFee->isChecked());
ui->radioCustomAtLeast ->setEnabled(ui->radioCustomFee->isChecked() && !ui->checkBoxMinimumFee->isChecked());
ui->radioCustomAtLeast ->setEnabled(ui->radioCustomFee->isChecked() && !ui->checkBoxMinimumFee->isChecked() && CoinControlDialog::coinControl->HasSelected());
ui->customFee ->setEnabled(ui->radioCustomFee->isChecked() && !ui->checkBoxMinimumFee->isChecked());
}

Expand All @@ -600,7 +600,10 @@ void SendCoinsDialog::updateGlobalFeeVariables()
{
nTxConfirmTarget = defaultConfirmTarget;
payTxFee = CFeeRate(ui->customFee->value());
fPayAtLeastCustomFee = ui->radioCustomAtLeast->isChecked();

// if user has selected to set a minimum absolute fee, pass the value to coincontrol
// set nMinimumTotalFee to 0 in case of user has selected that the fee is per KB
CoinControlDialog::coinControl->nMinimumTotalFee = ui->radioCustomAtLeast->isChecked() ? ui->customFee->value() : 0;
}

fSendFreeTransactions = ui->checkBoxFreeTx->isChecked();
Expand Down Expand Up @@ -707,8 +710,7 @@ void SendCoinsDialog::coinControlFeatureChanged(bool checked)
if (!checked && model) // coin control features disabled
CoinControlDialog::coinControl->SetNull();

if (checked)
coinControlUpdateLabels();
coinControlUpdateLabels();
}

// Coin Control: button inputs -> show actual coin control dialog
Expand Down Expand Up @@ -782,9 +784,24 @@ void SendCoinsDialog::coinControlChangeEdited(const QString& text)
// Coin Control: update labels
void SendCoinsDialog::coinControlUpdateLabels()
{
if (!model || !model->getOptionsModel() || !model->getOptionsModel()->getCoinControlFeatures())
if (!model || !model->getOptionsModel())
return;

if (model->getOptionsModel()->getCoinControlFeatures())
{
// enable minium absolute fee UI controls
ui->radioCustomAtLeast->setVisible(true);

// only enable the feature if inputs are selected
ui->radioCustomAtLeast->setEnabled(CoinControlDialog::coinControl->HasSelected());
}
else
{
// in case coin control is disabled (=default), hide minimum absolute fee UI controls
ui->radioCustomAtLeast->setVisible(false);
return;
}

// set pay amounts
CoinControlDialog::payAmounts.clear();
CoinControlDialog::fSubtractFeeFromAmount = false;
Expand Down

0 comments on commit ff723da

Please sign in to comment.