diff --git a/src/qt/forms/optionsdialog.ui b/src/qt/forms/optionsdialog.ui index 2019bfb0e554f..05d7c3a015da8 100644 --- a/src/qt/forms/optionsdialog.ui +++ b/src/qt/forms/optionsdialog.ui @@ -173,6 +173,16 @@ + + + + Whether to use experimental PrivateSend mode with multiple mixing sessions per block.<br/>Note: You must use this feature carefully.<br/>Make sure you always have recent wallet (auto)backup in a safe place! + + + Enable PrivateSend &multi-session + + + diff --git a/src/qt/optionsdialog.cpp b/src/qt/optionsdialog.cpp index f30bb0556a49c..961d389b7585e 100644 --- a/src/qt/optionsdialog.cpp +++ b/src/qt/optionsdialog.cpp @@ -201,6 +201,7 @@ void OptionsDialog::setMapper() mapper->addMapping(ui->coinControlFeatures, OptionsModel::CoinControlFeatures); mapper->addMapping(ui->privateSendRounds, OptionsModel::PrivateSendRounds); mapper->addMapping(ui->anonymizeDash, OptionsModel::AnonymizeDashAmount); + mapper->addMapping(ui->privateSendMultiSession, OptionsModel::PrivateSendMultiSession); /* Network */ mapper->addMapping(ui->mapPortUpnp, OptionsModel::MapPortUPnP); diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp index 03cc392c6d160..2889768177e81 100644 --- a/src/qt/optionsmodel.cpp +++ b/src/qt/optionsmodel.cpp @@ -131,6 +131,12 @@ void OptionsModel::Init(bool resetSettings) if (!SoftSetArg("-anonymizedashamount", settings.value("nAnonymizeDashAmount").toString().toStdString())) addOverriddenOption("-anonymizedashamount"); nAnonymizeDashAmount = settings.value("nAnonymizeDashAmount").toInt(); + + if (!settings.contains("fPrivateSendMultiSession")) + settings.setValue("fPrivateSendMultiSession", fPrivateSendMultiSession); + if (!SoftSetBoolArg("-privatesendmultisession", settings.value("fPrivateSendMultiSession").toBool())) + addOverriddenOption("-privatesendmultisession"); + fPrivateSendMultiSession = settings.value("fPrivateSendMultiSession").toBool(); #endif // Network @@ -251,6 +257,8 @@ QVariant OptionsModel::data(const QModelIndex & index, int role) const return settings.value("nAnonymizeDashAmount"); case ShowMasternodesTab: return settings.value("fShowMasternodesTab"); + case PrivateSendMultiSession: + return settings.value("fPrivateSendMultiSession"); #endif case DisplayUnit: return nDisplayUnit; @@ -400,6 +408,13 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in setRestartRequired(true); } break; + case PrivateSendMultiSession: + if (settings.value("fPrivateSendMultiSession") != value) + { + fPrivateSendMultiSession = value.toBool(); + settings.setValue("fPrivateSendMultiSession", fPrivateSendMultiSession); + } + break; #endif case DisplayUnit: setDisplayUnit(value); diff --git a/src/qt/optionsmodel.h b/src/qt/optionsmodel.h index df219681e4b47..613c8adc43a64 100644 --- a/src/qt/optionsmodel.h +++ b/src/qt/optionsmodel.h @@ -50,6 +50,7 @@ class OptionsModel : public QAbstractListModel PrivateSendRounds, // int AnonymizeDashAmount, // int ShowMasternodesTab, // bool + PrivateSendMultiSession,// bool Listen, // bool OptionIDRowCount, };