2727#endif
2828
2929#include < QNetworkProxy>
30- #include < QSettings>
3130#include < QStringList>
3231
3332OptionsModel::OptionsModel (QObject* parent) : QAbstractListModel(parent)
@@ -52,29 +51,15 @@ void OptionsModel::Init()
5251 // These are Qt-only settings:
5352
5453 // Window
55- if (!settings.contains (" fMinimizeToTray" ))
56- settings.setValue (" fMinimizeToTray" , false );
57- fMinimizeToTray = settings.value (" fMinimizeToTray" ).toBool ();
58-
59- if (!settings.contains (" fMinimizeOnClose" ))
60- settings.setValue (" fMinimizeOnClose" , false );
61- fMinimizeOnClose = settings.value (" fMinimizeOnClose" ).toBool ();
54+ setWindowDefaultOptions (settings);
6255
6356 // Display
64- if (!settings.contains (" nDisplayUnit" ))
65- settings.setValue (" nDisplayUnit" , BitcoinUnits::PIV);
66- nDisplayUnit = settings.value (" nDisplayUnit" ).toInt ();
67-
68- if (!settings.contains (" strThirdPartyTxUrls" ))
69- settings.setValue (" strThirdPartyTxUrls" , " " );
70- strThirdPartyTxUrls = settings.value (" strThirdPartyTxUrls" , " " ).toString ();
71-
7257 if (!settings.contains (" fHideZeroBalances" ))
7358 settings.setValue (" fHideZeroBalances" , true );
7459 fHideZeroBalances = settings.value (" fHideZeroBalances" ).toBool ();
7560
7661 if (!settings.contains (" fHideOrphans" ))
77- settings.setValue (" fHideOrphans" , false );
62+ settings.setValue (" fHideOrphans" , true );
7863 fHideOrphans = settings.value (" fHideOrphans" ).toBool ();
7964
8065 if (!settings.contains (" fCoinControlFeatures" ))
@@ -100,81 +85,132 @@ void OptionsModel::Init()
10085 if (!settings.contains (" fShowMasternodesTab" ))
10186 settings.setValue (" fShowMasternodesTab" , masternodeConfig.getCount ());
10287
88+ // Main
89+ setMainDefaultOptions (settings);
90+
91+ // Wallet
92+ #ifdef ENABLE_WALLET
93+ setWalletDefaultOptions (settings);
94+ #endif
95+
96+ // Network
97+ setNetworkDefaultOptions (settings);
98+ // Display
99+ setDisplayDefaultOptions (settings);
100+
101+ language = settings.value (" language" ).toString ();
102+ }
103+
104+ void OptionsModel::setMainDefaultOptions (QSettings& settings, bool reset){
103105 // These are shared with the core or have a command-line parameter
104106 // and we want command-line parameters to overwrite the GUI settings.
105107 //
106108 // If setting doesn't exist create it with defaults.
107109 //
108110 // If SoftSetArg() or SoftSetBoolArg() return false we were overridden
109111 // by command-line and show this in the UI.
110-
111112 // Main
112- if (!settings.contains (" nDatabaseCache" ))
113+ if (!settings.contains (" nDatabaseCache" ) || reset )
113114 settings.setValue (" nDatabaseCache" , (qint64)nDefaultDbCache);
114115 if (!SoftSetArg (" -dbcache" , settings.value (" nDatabaseCache" ).toString ().toStdString ()))
115116 addOverriddenOption (" -dbcache" );
116117
117- if (!settings.contains (" nThreadsScriptVerif" ))
118+ if (!settings.contains (" nThreadsScriptVerif" ) || reset )
118119 settings.setValue (" nThreadsScriptVerif" , DEFAULT_SCRIPTCHECK_THREADS);
119120 if (!SoftSetArg (" -par" , settings.value (" nThreadsScriptVerif" ).toString ().toStdString ()))
120121 addOverriddenOption (" -par" );
122+ }
121123
122- // Wallet
123- #ifdef ENABLE_WALLET
124- if (!settings.contains (" bSpendZeroConfChange" ))
124+ void OptionsModel::setWalletDefaultOptions (QSettings& settings, bool reset){
125+ if (!settings.contains (" bSpendZeroConfChange" ) || reset)
125126 settings.setValue (" bSpendZeroConfChange" , false );
126127 if (!SoftSetBoolArg (" -spendzeroconfchange" , settings.value (" bSpendZeroConfChange" ).toBool ()))
127128 addOverriddenOption (" -spendzeroconfchange" );
128- # endif
129- if (!settings.contains (" nStakeSplitThreshold" ))
129+
130+ if (!settings.contains (" nStakeSplitThreshold" ) || reset )
130131 settings.setValue (" nStakeSplitThreshold" , 1 );
132+ if (reset){
133+ setStakeSplitThreshold (1 );
134+ }
131135
136+ if (reset){
137+ emit dataChanged (index (0 ), index (rowCount (QModelIndex ()) - 1 ));
138+ }
139+ }
132140
133- // Network
134- if (!settings.contains (" fUseUPnP" ))
141+ void OptionsModel::setNetworkDefaultOptions (QSettings& settings, bool reset){
142+ if (!settings.contains (" fUseUPnP" ) || reset )
135143 settings.setValue (" fUseUPnP" , DEFAULT_UPNP);
136144 if (!SoftSetBoolArg (" -upnp" , settings.value (" fUseUPnP" ).toBool ()))
137145 addOverriddenOption (" -upnp" );
138146
139- if (!settings.contains (" fListen" ))
147+ if (!settings.contains (" fListen" ) || reset )
140148 settings.setValue (" fListen" , DEFAULT_LISTEN);
141149 if (!SoftSetBoolArg (" -listen" , settings.value (" fListen" ).toBool ()))
142150 addOverriddenOption (" -listen" );
143151
144- if (!settings.contains (" fUseProxy" ))
152+ if (!settings.contains (" fUseProxy" ) || reset )
145153 settings.setValue (" fUseProxy" , false );
146- if (!settings.contains (" addrProxy" ))
154+ if (!settings.contains (" addrProxy" ) || reset )
147155 settings.setValue (" addrProxy" , " 127.0.0.1:9050" );
148156 // Only try to set -proxy, if user has enabled fUseProxy
149157 if (settings.value (" fUseProxy" ).toBool () && !SoftSetArg (" -proxy" , settings.value (" addrProxy" ).toString ().toStdString ()))
150158 addOverriddenOption (" -proxy" );
151159 else if (!settings.value (" fUseProxy" ).toBool () && !GetArg (" -proxy" , " " ).empty ())
152160 addOverriddenOption (" -proxy" );
153161
154- // Display
155- if (!settings.contains (" digits" ))
162+ if (reset){
163+ emit dataChanged (index (0 ), index (rowCount (QModelIndex ()) - 1 ));
164+ }
165+ }
166+
167+ void OptionsModel::setWindowDefaultOptions (QSettings& settings, bool reset){
168+ if (!settings.contains (" fMinimizeToTray" ) || reset)
169+ settings.setValue (" fMinimizeToTray" , false );
170+ fMinimizeToTray = settings.value (" fMinimizeToTray" ).toBool ();
171+
172+ if (!settings.contains (" fMinimizeOnClose" ) || reset)
173+ settings.setValue (" fMinimizeOnClose" , false );
174+ fMinimizeOnClose = settings.value (" fMinimizeOnClose" ).toBool ();
175+
176+ if (reset){
177+ emit dataChanged (index (0 ), index (rowCount (QModelIndex ()) - 1 ));
178+ }
179+ }
180+
181+ void OptionsModel::setDisplayDefaultOptions (QSettings& settings, bool reset){
182+ if (!settings.contains (" nDisplayUnit" ) || reset)
183+ settings.setValue (" nDisplayUnit" , BitcoinUnits::PIV);
184+ nDisplayUnit = settings.value (" nDisplayUnit" ).toInt ();
185+ if (!settings.contains (" digits" ) || reset)
156186 settings.setValue (" digits" , " 2" );
157- if (!settings.contains (" theme" ))
187+ if (!settings.contains (" theme" ) || reset )
158188 settings.setValue (" theme" , " " );
159- if (!settings.contains (" fCSSexternal" ))
189+ if (!settings.contains (" fCSSexternal" ) || reset )
160190 settings.setValue (" fCSSexternal" , false );
161- if (!settings.contains (" language" ))
191+ if (!settings.contains (" language" ) || reset )
162192 settings.setValue (" language" , " " );
163193 if (!SoftSetArg (" -lang" , settings.value (" language" ).toString ().toStdString ()))
164194 addOverriddenOption (" -lang" );
165195
166- if (settings.contains (" fZeromintEnable" ))
196+ if (settings.contains (" fZeromintEnable" ) || reset )
167197 SoftSetBoolArg (" -enablezeromint" , settings.value (" fZeromintEnable" ).toBool ());
168- if (settings.contains (" fEnableAutoConvert" ))
198+ if (settings.contains (" fEnableAutoConvert" ) || reset )
169199 SoftSetBoolArg (" -enableautoconvertaddress" , settings.value (" fEnableAutoConvert" ).toBool ());
170- if (settings.contains (" nZeromintPercentage" ))
200+ if (settings.contains (" nZeromintPercentage" ) || reset )
171201 SoftSetArg (" -zeromintpercentage" , settings.value (" nZeromintPercentage" ).toString ().toStdString ());
172- if (settings.contains (" nPreferredDenom" ))
202+ if (settings.contains (" nPreferredDenom" ) || reset )
173203 SoftSetArg (" -preferredDenom" , settings.value (" nPreferredDenom" ).toString ().toStdString ());
174- if (settings.contains (" nAnonymizePivxAmount" ))
204+ if (settings.contains (" nAnonymizePivxAmount" ) || reset )
175205 SoftSetArg (" -anonymizepivxamount" , settings.value (" nAnonymizePivxAmount" ).toString ().toStdString ());
176206
177- language = settings.value (" language" ).toString ();
207+ if (!settings.contains (" strThirdPartyTxUrls" ) || reset)
208+ settings.setValue (" strThirdPartyTxUrls" , " " );
209+ strThirdPartyTxUrls = settings.value (" strThirdPartyTxUrls" , " " ).toString ();
210+
211+ if (reset){
212+ emit dataChanged (index (0 ), index (rowCount (QModelIndex ()) - 1 ));
213+ }
178214}
179215
180216void OptionsModel::Reset ()
0 commit comments