qt: Add SubFeeFromAmount option

This commit is contained in:
Prateek Sancheti 2021-07-29 21:57:57 +05:30
parent 6499928bfb
commit ad28b66e98
5 changed files with 28 additions and 1 deletions

View File

@ -200,6 +200,16 @@
<string>W&amp;allet</string> <string>W&amp;allet</string>
</attribute> </attribute>
<layout class="QVBoxLayout" name="verticalLayout_Wallet"> <layout class="QVBoxLayout" name="verticalLayout_Wallet">
<item>
<widget class="QCheckBox" name="subFeeFromAmount">
<property name="toolTip">
<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>
</property>
<property name="text">
<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>
</property>
</widget>
</item>
<item> <item>
<widget class="QGroupBox" name="groupBox"> <widget class="QGroupBox" name="groupBox">
<property name="title"> <property name="title">

View File

@ -239,6 +239,7 @@ void OptionsDialog::setMapper()
/* Wallet */ /* Wallet */
mapper->addMapping(ui->spendZeroConfChange, OptionsModel::SpendZeroConfChange); mapper->addMapping(ui->spendZeroConfChange, OptionsModel::SpendZeroConfChange);
mapper->addMapping(ui->coinControlFeatures, OptionsModel::CoinControlFeatures); mapper->addMapping(ui->coinControlFeatures, OptionsModel::CoinControlFeatures);
mapper->addMapping(ui->subFeeFromAmount, OptionsModel::SubFeeFromAmount);
mapper->addMapping(ui->externalSignerPath, OptionsModel::ExternalSignerPath); mapper->addMapping(ui->externalSignerPath, OptionsModel::ExternalSignerPath);
/* Network */ /* Network */

View File

@ -124,6 +124,11 @@ void OptionsModel::Init(bool resetSettings)
if (!gArgs.SoftSetArg("-signer", settings.value("external_signer_path").toString().toStdString())) { if (!gArgs.SoftSetArg("-signer", settings.value("external_signer_path").toString().toStdString())) {
addOverriddenOption("-signer"); addOverriddenOption("-signer");
} }
if (!settings.contains("SubFeeFromAmount")) {
settings.setValue("SubFeeFromAmount", false);
}
m_sub_fee_from_amount = settings.value("SubFeeFromAmount", false).toBool();
#endif #endif
// Network // Network
@ -335,6 +340,8 @@ QVariant OptionsModel::data(const QModelIndex & index, int role) const
return settings.value("bSpendZeroConfChange"); return settings.value("bSpendZeroConfChange");
case ExternalSignerPath: case ExternalSignerPath:
return settings.value("external_signer_path"); return settings.value("external_signer_path");
case SubFeeFromAmount:
return m_sub_fee_from_amount;
#endif #endif
case DisplayUnit: case DisplayUnit:
return nDisplayUnit; return nDisplayUnit;
@ -460,6 +467,10 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
setRestartRequired(true); setRestartRequired(true);
} }
break; break;
case SubFeeFromAmount:
m_sub_fee_from_amount = value.toBool();
settings.setValue("SubFeeFromAmount", m_sub_fee_from_amount);
break;
#endif #endif
case DisplayUnit: case DisplayUnit:
setDisplayUnit(value); setDisplayUnit(value);

View File

@ -61,6 +61,7 @@ public:
Language, // QString Language, // QString
UseEmbeddedMonospacedFont, // bool UseEmbeddedMonospacedFont, // bool
CoinControlFeatures, // bool CoinControlFeatures, // bool
SubFeeFromAmount, // bool
ThreadsScriptVerif, // int ThreadsScriptVerif, // int
Prune, // bool Prune, // bool
PruneSize, // int PruneSize, // int
@ -88,6 +89,7 @@ public:
QString getThirdPartyTxUrls() const { return strThirdPartyTxUrls; } QString getThirdPartyTxUrls() const { return strThirdPartyTxUrls; }
bool getUseEmbeddedMonospacedFont() const { return m_use_embedded_monospaced_font; } bool getUseEmbeddedMonospacedFont() const { return m_use_embedded_monospaced_font; }
bool getCoinControlFeatures() const { return fCoinControlFeatures; } bool getCoinControlFeatures() const { return fCoinControlFeatures; }
bool getSubFeeFromAmount() const { return m_sub_fee_from_amount; }
const QString& getOverriddenByCommandLine() { return strOverriddenByCommandLine; } const QString& getOverriddenByCommandLine() { return strOverriddenByCommandLine; }
/* Explicit setters */ /* Explicit setters */
@ -112,6 +114,7 @@ private:
QString strThirdPartyTxUrls; QString strThirdPartyTxUrls;
bool m_use_embedded_monospaced_font; bool m_use_embedded_monospaced_font;
bool fCoinControlFeatures; bool fCoinControlFeatures;
bool m_sub_fee_from_amount;
/* settings that were overridden by command-line */ /* settings that were overridden by command-line */
QString strOverriddenByCommandLine; QString strOverriddenByCommandLine;

View File

@ -97,7 +97,9 @@ void SendCoinsEntry::clear()
ui->payTo->clear(); ui->payTo->clear();
ui->addAsLabel->clear(); ui->addAsLabel->clear();
ui->payAmount->clear(); ui->payAmount->clear();
ui->checkboxSubtractFeeFromAmount->setCheckState(Qt::Unchecked); if (model && model->getOptionsModel()) {
ui->checkboxSubtractFeeFromAmount->setChecked(model->getOptionsModel()->getSubFeeFromAmount());
}
ui->messageTextLabel->clear(); ui->messageTextLabel->clear();
ui->messageTextLabel->hide(); ui->messageTextLabel->hide();
ui->messageLabel->hide(); ui->messageLabel->hide();