@@ -64,6 +64,7 @@ static const char* SettingName(OptionsModel::OptionID option)
6464 case OptionsModel::CoinJoinAmount: return " coinjoinamount" ;
6565 case OptionsModel::CoinJoinDenomsGoal: return " coinjoindenomsgoal" ;
6666 case OptionsModel::CoinJoinDenomsHardCap: return " coinjoindenomshardcap" ;
67+ case OptionsModel::CoinJoinEnabled: return " enablecoinjoin" ;
6768 case OptionsModel::CoinJoinMultiSession: return " coinjoinmultisession" ;
6869 case OptionsModel::CoinJoinRounds: return " coinjoinrounds" ;
6970 case OptionsModel::CoinJoinSessions: return " coinjoinsessions" ;
@@ -339,13 +340,6 @@ bool OptionsModel::Init(bilingual_str& error)
339340 settings.setValue (" digits" , " 2" );
340341
341342 // CoinJoin
342- if (!settings.contains (" fCoinJoinEnabled" )) {
343- settings.setValue (" fCoinJoinEnabled" , true );
344- }
345- if (!gArgs .SoftSetBoolArg (" -enablecoinjoin" , settings.value (" fCoinJoinEnabled" ).toBool ())) {
346- addOverriddenOption (" -enablecoinjoin" );
347- }
348-
349343 if (!settings.contains (" fShowAdvancedCJUI" ))
350344 settings.setValue (" fShowAdvancedCJUI" , false );
351345 fShowAdvancedCJUI = settings.value (" fShowAdvancedCJUI" , false ).toBool ();
@@ -361,8 +355,8 @@ bool OptionsModel::Init(bilingual_str& error)
361355 // and we want command-line parameters to overwrite the GUI settings.
362356 for (OptionID option : {DatabaseCache, ThreadsScriptVerif, SpendZeroConfChange, ExternalSignerPath, MapPortUPnP,
363357 MapPortNatpmp, Listen, Server, Prune, ProxyUse, ProxyUseTor, Language, CoinJoinAmount,
364- CoinJoinDenomsGoal, CoinJoinDenomsHardCap, CoinJoinMultiSession, CoinJoinRounds ,
365- CoinJoinSessions}) {
358+ CoinJoinDenomsGoal, CoinJoinDenomsHardCap, CoinJoinEnabled, CoinJoinMultiSession ,
359+ CoinJoinRounds, CoinJoinSessions}) {
366360 std::string setting = SettingName (option);
367361 if (node ().isSettingIgnored (setting)) addOverriddenOption (" -" + setting);
368362 try {
@@ -624,7 +618,7 @@ QVariant OptionsModel::getOption(OptionID option) const
624618 case ShowGovernanceTab:
625619 return settings.value (" fShowGovernanceTab" );
626620 case CoinJoinEnabled:
627- return settings. value ( " fCoinJoinEnabled " );
621+ return SettingToBool ( setting (), /* fDefault= */ true );
628622 case ShowAdvancedCJUI:
629623 return fShowAdvancedCJUI ;
630624 case ShowCoinJoinPopups:
@@ -826,8 +820,8 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value)
826820 }
827821 break ;
828822 case CoinJoinEnabled:
829- if (settings. value ( " fCoinJoinEnabled " ) != value ) {
830- settings. setValue ( " fCoinJoinEnabled " , value.toBool ());
823+ if (changed () ) {
824+ update ( value.toBool ());
831825 Q_EMIT coinJoinEnabledChanged ();
832826 }
833827 break ;
@@ -1127,6 +1121,7 @@ void OptionsModel::checkAndMigrate()
11271121 migrate_setting (CoinJoinAmount, " nCoinJoinAmount" );
11281122 migrate_setting (CoinJoinDenomsGoal, " nCoinJoinDenomsGoal" );
11291123 migrate_setting (CoinJoinDenomsHardCap, " nCoinJoinDenomsHardCap" );
1124+ migrate_setting (CoinJoinEnabled, " fCoinJoinEnabled" );
11301125 migrate_setting (CoinJoinMultiSession, " fCoinJoinMultiSession" );
11311126 migrate_setting (CoinJoinRounds, " nCoinJoinRounds" );
11321127 migrate_setting (CoinJoinSessions, " nCoinJoinSessions" );
0 commit comments