Skip to content

Commit ad28b66

Browse files
committed
qt: Add SubFeeFromAmount option
1 parent 6499928 commit ad28b66

File tree

5 files changed

+28
-1
lines changed

5 files changed

+28
-1
lines changed

Diff for: src/qt/forms/optionsdialog.ui

+10
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,16 @@
200200
<string>W&amp;allet</string>
201201
</attribute>
202202
<layout class="QVBoxLayout" name="verticalLayout_Wallet">
203+
<item>
204+
<widget class="QCheckBox" name="subFeeFromAmount">
205+
<property name="toolTip">
206+
<string extracomment="Tooltip text for Options window setting that sets subtracting the fee from a sending amount as default.">Whether to set subtract fee from amount as default or not.</string>
207+
</property>
208+
<property name="text">
209+
<string extracomment="An Options window setting to set subtracting the fee from a sending amount as default.">Subtract &amp;fee from amount by default</string>
210+
</property>
211+
</widget>
212+
</item>
203213
<item>
204214
<widget class="QGroupBox" name="groupBox">
205215
<property name="title">

Diff for: src/qt/optionsdialog.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ void OptionsDialog::setMapper()
239239
/* Wallet */
240240
mapper->addMapping(ui->spendZeroConfChange, OptionsModel::SpendZeroConfChange);
241241
mapper->addMapping(ui->coinControlFeatures, OptionsModel::CoinControlFeatures);
242+
mapper->addMapping(ui->subFeeFromAmount, OptionsModel::SubFeeFromAmount);
242243
mapper->addMapping(ui->externalSignerPath, OptionsModel::ExternalSignerPath);
243244

244245
/* Network */

Diff for: src/qt/optionsmodel.cpp

+11
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,11 @@ void OptionsModel::Init(bool resetSettings)
124124
if (!gArgs.SoftSetArg("-signer", settings.value("external_signer_path").toString().toStdString())) {
125125
addOverriddenOption("-signer");
126126
}
127+
128+
if (!settings.contains("SubFeeFromAmount")) {
129+
settings.setValue("SubFeeFromAmount", false);
130+
}
131+
m_sub_fee_from_amount = settings.value("SubFeeFromAmount", false).toBool();
127132
#endif
128133

129134
// Network
@@ -335,6 +340,8 @@ QVariant OptionsModel::data(const QModelIndex & index, int role) const
335340
return settings.value("bSpendZeroConfChange");
336341
case ExternalSignerPath:
337342
return settings.value("external_signer_path");
343+
case SubFeeFromAmount:
344+
return m_sub_fee_from_amount;
338345
#endif
339346
case DisplayUnit:
340347
return nDisplayUnit;
@@ -460,6 +467,10 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
460467
setRestartRequired(true);
461468
}
462469
break;
470+
case SubFeeFromAmount:
471+
m_sub_fee_from_amount = value.toBool();
472+
settings.setValue("SubFeeFromAmount", m_sub_fee_from_amount);
473+
break;
463474
#endif
464475
case DisplayUnit:
465476
setDisplayUnit(value);

Diff for: src/qt/optionsmodel.h

+3
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ class OptionsModel : public QAbstractListModel
6161
Language, // QString
6262
UseEmbeddedMonospacedFont, // bool
6363
CoinControlFeatures, // bool
64+
SubFeeFromAmount, // bool
6465
ThreadsScriptVerif, // int
6566
Prune, // bool
6667
PruneSize, // int
@@ -88,6 +89,7 @@ class OptionsModel : public QAbstractListModel
8889
QString getThirdPartyTxUrls() const { return strThirdPartyTxUrls; }
8990
bool getUseEmbeddedMonospacedFont() const { return m_use_embedded_monospaced_font; }
9091
bool getCoinControlFeatures() const { return fCoinControlFeatures; }
92+
bool getSubFeeFromAmount() const { return m_sub_fee_from_amount; }
9193
const QString& getOverriddenByCommandLine() { return strOverriddenByCommandLine; }
9294

9395
/* Explicit setters */
@@ -112,6 +114,7 @@ class OptionsModel : public QAbstractListModel
112114
QString strThirdPartyTxUrls;
113115
bool m_use_embedded_monospaced_font;
114116
bool fCoinControlFeatures;
117+
bool m_sub_fee_from_amount;
115118
/* settings that were overridden by command-line */
116119
QString strOverriddenByCommandLine;
117120

Diff for: src/qt/sendcoinsentry.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,9 @@ void SendCoinsEntry::clear()
9797
ui->payTo->clear();
9898
ui->addAsLabel->clear();
9999
ui->payAmount->clear();
100-
ui->checkboxSubtractFeeFromAmount->setCheckState(Qt::Unchecked);
100+
if (model && model->getOptionsModel()) {
101+
ui->checkboxSubtractFeeFromAmount->setChecked(model->getOptionsModel()->getSubFeeFromAmount());
102+
}
101103
ui->messageTextLabel->clear();
102104
ui->messageTextLabel->hide();
103105
ui->messageLabel->hide();

0 commit comments

Comments
 (0)