8
8
#include < common/settings.h>
9
9
#include < common/system.h>
10
10
#include < interfaces/node.h>
11
+ #include < mapport.h>
11
12
#include < qt/guiconstants.h>
12
13
#include < qt/guiutil.h>
13
14
#include < qt/optionsmodel.h>
23
24
#include < QDir>
24
25
#include < QSettings>
25
26
26
- OptionsQmlModel::OptionsQmlModel (interfaces::Node& node)
27
+ OptionsQmlModel::OptionsQmlModel (interfaces::Node& node, bool is_onboarded )
27
28
: m_node{node}
29
+ , m_onboarded{is_onboarded}
28
30
{
29
31
m_dbcache_size_mib = SettingToInt (m_node.getPersistentSetting (" dbcache" ), nDefaultDbCache);
30
32
33
+ m_listen = SettingToBool (m_node.getPersistentSetting (" listen" ), DEFAULT_LISTEN);
34
+
35
+ m_natpmp = SettingToBool (m_node.getPersistentSetting (" natpmp" ), DEFAULT_NATPMP);
36
+
31
37
int64_t prune_value{SettingToInt (m_node.getPersistentSetting (" prune" ), 0 )};
32
38
m_prune = (prune_value > 1 );
33
39
m_prune_size_gb = m_prune ? PruneMiBtoGB (prune_value) : DEFAULT_PRUNE_TARGET_GB;
34
40
35
41
m_script_threads = SettingToInt (m_node.getPersistentSetting (" par" ), DEFAULT_SCRIPTCHECK_THREADS);
42
+
43
+ m_server = SettingToBool (m_node.getPersistentSetting (" server" ), false );
44
+
45
+ m_upnp = SettingToBool (m_node.getPersistentSetting (" upnp" ), DEFAULT_UPNP);
36
46
}
37
47
38
48
void OptionsQmlModel::setDbcacheSizeMiB (int new_dbcache_size_mib)
39
49
{
40
50
if (new_dbcache_size_mib != m_dbcache_size_mib) {
41
51
m_dbcache_size_mib = new_dbcache_size_mib;
42
- m_node.updateRwSetting (" dbcache" , new_dbcache_size_mib);
52
+ if (m_onboarded) {
53
+ m_node.updateRwSetting (" dbcache" , new_dbcache_size_mib);
54
+ }
43
55
Q_EMIT dbcacheSizeMiBChanged (new_dbcache_size_mib);
44
56
}
45
57
}
@@ -48,7 +60,9 @@ void OptionsQmlModel::setListen(bool new_listen)
48
60
{
49
61
if (new_listen != m_listen) {
50
62
m_listen = new_listen;
51
- m_node.updateRwSetting (" listen" , new_listen);
63
+ if (m_onboarded) {
64
+ m_node.updateRwSetting (" listen" , new_listen);
65
+ }
52
66
Q_EMIT listenChanged (new_listen);
53
67
}
54
68
}
@@ -57,7 +71,9 @@ void OptionsQmlModel::setNatpmp(bool new_natpmp)
57
71
{
58
72
if (new_natpmp != m_natpmp) {
59
73
m_natpmp = new_natpmp;
60
- m_node.updateRwSetting (" natpmp" , new_natpmp);
74
+ if (m_onboarded) {
75
+ m_node.updateRwSetting (" natpmp" , new_natpmp);
76
+ }
61
77
Q_EMIT natpmpChanged (new_natpmp);
62
78
}
63
79
}
@@ -66,7 +82,9 @@ void OptionsQmlModel::setPrune(bool new_prune)
66
82
{
67
83
if (new_prune != m_prune) {
68
84
m_prune = new_prune;
69
- m_node.updateRwSetting (" prune" , pruneSetting ());
85
+ if (m_onboarded) {
86
+ m_node.updateRwSetting (" prune" , pruneSetting ());
87
+ }
70
88
Q_EMIT pruneChanged (new_prune);
71
89
}
72
90
}
@@ -75,7 +93,9 @@ void OptionsQmlModel::setPruneSizeGB(int new_prune_size_gb)
75
93
{
76
94
if (new_prune_size_gb != m_prune_size_gb) {
77
95
m_prune_size_gb = new_prune_size_gb;
78
- m_node.updateRwSetting (" prune" , pruneSetting ());
96
+ if (m_onboarded) {
97
+ m_node.updateRwSetting (" prune" , pruneSetting ());
98
+ }
79
99
Q_EMIT pruneSizeGBChanged (new_prune_size_gb);
80
100
}
81
101
}
@@ -84,7 +104,9 @@ void OptionsQmlModel::setScriptThreads(int new_script_threads)
84
104
{
85
105
if (new_script_threads != m_script_threads) {
86
106
m_script_threads = new_script_threads;
87
- m_node.updateRwSetting (" par" , new_script_threads);
107
+ if (m_onboarded) {
108
+ m_node.updateRwSetting (" par" , new_script_threads);
109
+ }
88
110
Q_EMIT scriptThreadsChanged (new_script_threads);
89
111
}
90
112
}
@@ -93,7 +115,9 @@ void OptionsQmlModel::setServer(bool new_server)
93
115
{
94
116
if (new_server != m_server) {
95
117
m_server = new_server;
96
- m_node.updateRwSetting (" server" , new_server);
118
+ if (m_onboarded) {
119
+ m_node.updateRwSetting (" server" , new_server);
120
+ }
97
121
Q_EMIT serverChanged (new_server);
98
122
}
99
123
}
@@ -102,7 +126,9 @@ void OptionsQmlModel::setUpnp(bool new_upnp)
102
126
{
103
127
if (new_upnp != m_upnp) {
104
128
m_upnp = new_upnp;
105
- m_node.updateRwSetting (" upnp" , new_upnp);
129
+ if (m_onboarded) {
130
+ m_node.updateRwSetting (" upnp" , new_upnp);
131
+ }
106
132
Q_EMIT upnpChanged (new_upnp);
107
133
}
108
134
}
@@ -136,4 +162,31 @@ void OptionsQmlModel::setCustomDataDirArgs(QString path)
136
162
// TODO: add actual custom data wiring
137
163
qDebug () << " PlaceHolder: Created data directory: " << path;
138
164
}
139
- }
165
+ }
166
+
167
+ void OptionsQmlModel::onboard ()
168
+ {
169
+ m_node.resetSettings ();
170
+ if (m_dbcache_size_mib != nDefaultDbCache) {
171
+ m_node.updateRwSetting (" dbcache" , m_dbcache_size_mib);
172
+ }
173
+ if (m_listen) {
174
+ m_node.updateRwSetting (" listen" , m_listen);
175
+ }
176
+ if (m_natpmp) {
177
+ m_node.updateRwSetting (" natpmp" , m_natpmp);
178
+ }
179
+ if (m_prune) {
180
+ m_node.updateRwSetting (" prune" , pruneSetting ());
181
+ }
182
+ if (m_script_threads != DEFAULT_SCRIPTCHECK_THREADS) {
183
+ m_node.updateRwSetting (" par" , m_script_threads);
184
+ }
185
+ if (m_server) {
186
+ m_node.updateRwSetting (" server" , m_server);
187
+ }
188
+ if (m_upnp) {
189
+ m_node.updateRwSetting (" upnp" , m_upnp);
190
+ }
191
+ m_onboarded = true ;
192
+ }
0 commit comments