FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
bitcoin/src/qt/optionsmodel.cpp at master · blaklite/bitcoin · GitHub
blaklite
/
bitcoin
Public
forked from
bitcoin/bitcoin
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
bitcoin
/
src
/
qt
/
optionsmodel.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
307 lines (277 loc) · 9.22 KB
Breadcrumbs
bitcoin
/
src
/
qt
/
optionsmodel.cpp
Copy path
File metadata and controls
307 lines (277 loc) · 9.22 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
#
if
defined(HAVE_CONFIG_H)
#
include
"
bitcoin-config.h
"
#
endif
#
include
"
optionsmodel.h
"
#
include
"
bitcoinunits.h
"
#
include
"
init.h
"
#
include
"
walletdb.h
"
#
include
"
guiutil.h
"
#
include
<
QSettings
>
OptionsModel::OptionsModel
(QObject *parent) :
QAbstractListModel(parent)
{
Init
();
}
bool
static
ApplyProxySettings
()
{
QSettings settings;
CService
addrProxy
(settings.
value
(
"
addrProxy
"
,
"
127.0.0.1:9050
"
).
toString
().
toStdString
());
int
nSocksVersion
(settings.
value
(
"
nSocksVersion
"
,
5
).
toInt
());
if
(!settings.
value
(
"
fUseProxy
"
,
false
).
toBool
()) {
addrProxy =
CService
();
nSocksVersion =
0
;
return
false
;
}
if
(nSocksVersion && !addrProxy.
IsValid
())
return
false
;
if
(!
IsLimited
(
NET_IPV4
))
SetProxy
(
NET_IPV4
, addrProxy, nSocksVersion);
if
(nSocksVersion >
4
) {
#
ifdef
USE_IPV6
if
(!
IsLimited
(
NET_IPV6
))
SetProxy
(
NET_IPV6
, addrProxy, nSocksVersion);
#
endif
SetNameProxy
(addrProxy, nSocksVersion);
}
return
true
;
}
void
OptionsModel::Init
()
{
QSettings settings;
//
These are Qt-only settings:
nDisplayUnit = settings.
value
(
"
nDisplayUnit
"
, BitcoinUnits::
BTC
).
toInt
();
bDisplayAddresses = settings.
value
(
"
bDisplayAddresses
"
,
false
).
toBool
();
fMinimizeToTray
= settings.
value
(
"
fMinimizeToTray
"
,
false
).
toBool
();
fMinimizeOnClose
= settings.
value
(
"
fMinimizeOnClose
"
,
false
).
toBool
();
nTransactionFee = settings.
value
(
"
nTransactionFee
"
).
toLongLong
();
language = settings.
value
(
"
language
"
,
"
"
).
toString
();
//
These are shared with core Bitcoin; we want
//
command-line options to override the GUI settings:
if
(settings.
contains
(
"
fUseUPnP
"
))
SoftSetBoolArg
(
"
-upnp
"
, settings.
value
(
"
fUseUPnP
"
).
toBool
());
if
(settings.
contains
(
"
addrProxy
"
) && settings.
value
(
"
fUseProxy
"
).
toBool
())
SoftSetArg
(
"
-proxy
"
, settings.
value
(
"
addrProxy
"
).
toString
().
toStdString
());
if
(settings.
contains
(
"
nSocksVersion
"
) && settings.
value
(
"
fUseProxy
"
).
toBool
())
SoftSetArg
(
"
-socks
"
, settings.
value
(
"
nSocksVersion
"
).
toString
().
toStdString
());
if
(!language.
isEmpty
())
SoftSetArg
(
"
-lang
"
, language.
toStdString
());
}
void
OptionsModel::Reset
()
{
QSettings settings;
//
Remove all entries in this QSettings object
settings.
clear
();
//
default setting for OptionsModel::StartAtStartup - disabled
if
(
GUIUtil::GetStartOnSystemStartup
())
GUIUtil::SetStartOnSystemStartup
(
false
);
//
Re-Init to get default values
Init
();
//
Ensure Upgrade() is not running again by setting the bImportFinished flag
settings.
setValue
(
"
bImportFinished
"
,
true
);
}
bool
OptionsModel::Upgrade
()
{
QSettings settings;
if
(settings.
contains
(
"
bImportFinished
"
))
return
false
;
//
Already upgraded
settings.
setValue
(
"
bImportFinished
"
,
true
);
//
Move settings from old wallet.dat (if any):
CWalletDB
walletdb
(strWalletFile);
QList<QString> intOptions;
intOptions <<
"
nDisplayUnit
"
<<
"
nTransactionFee
"
;
foreach
(QString key, intOptions)
{
int
value =
0
;
if
(walletdb.
ReadSetting
(key.
toStdString
(), value))
{
settings.
setValue
(key, value);
walletdb.
EraseSetting
(key.
toStdString
());
}
}
QList<QString> boolOptions;
boolOptions <<
"
bDisplayAddresses
"
<<
"
fMinimizeToTray
"
<<
"
fMinimizeOnClose
"
<<
"
fUseProxy
"
<<
"
fUseUPnP
"
;
foreach
(QString key, boolOptions)
{
bool
value =
false
;
if
(walletdb.
ReadSetting
(key.
toStdString
(), value))
{
settings.
setValue
(key, value);
walletdb.
EraseSetting
(key.
toStdString
());
}
}
try
{
CAddress addrProxyAddress;
if
(walletdb.
ReadSetting
(
"
addrProxy
"
, addrProxyAddress))
{
settings.
setValue
(
"
addrProxy
"
, addrProxyAddress.
ToStringIPPort
().
c_str
());
walletdb.
EraseSetting
(
"
addrProxy
"
);
}
}
catch
(std::ios_base::failure &e)
{
//
0.6.0rc1 saved this as a CService, which causes failure when parsing as a CAddress
CService addrProxy;
if
(walletdb.
ReadSetting
(
"
addrProxy
"
, addrProxy))
{
settings.
setValue
(
"
addrProxy
"
, addrProxy.
ToStringIPPort
().
c_str
());
walletdb.
EraseSetting
(
"
addrProxy
"
);
}
}
ApplyProxySettings
();
Init
();
return
true
;
}
int
OptionsModel::rowCount
(
const
QModelIndex & parent)
const
{
return
OptionIDRowCount;
}
QVariant
OptionsModel::data
(
const
QModelIndex & index,
int
role)
const
{
if
(role == Qt::EditRole)
{
QSettings settings;
switch
(index.
row
())
{
case
StartAtStartup:
return
QVariant
(
GUIUtil::GetStartOnSystemStartup
());
case
MinimizeToTray:
return
QVariant
(
fMinimizeToTray
);
case
MapPortUPnP:
#
ifdef
USE_UPNP
return
settings.
value
(
"
fUseUPnP
"
,
GetBoolArg
(
"
-upnp
"
,
true
));
#
else
return
QVariant
(
false
);
#
endif
case
MinimizeOnClose:
return
QVariant
(
fMinimizeOnClose
);
case
ProxyUse: {
proxyType proxy;
return
QVariant
(
GetProxy
(
NET_IPV4
, proxy));
}
case
ProxyIP: {
proxyType proxy;
if
(
GetProxy
(
NET_IPV4
, proxy))
return
QVariant
(
QString::fromStdString
(proxy.
first
.
ToStringIP
()));
else
return
QVariant
(
QString::fromStdString
(
"
127.0.0.1
"
));
}
case
ProxyPort: {
proxyType proxy;
if
(
GetProxy
(
NET_IPV4
, proxy))
return
QVariant
(proxy.
first
.
GetPort
());
else
return
QVariant
(
9050
);
}
case
ProxySocksVersion: {
proxyType proxy;
if
(
GetProxy
(
NET_IPV4
, proxy))
return
QVariant
(proxy.
second
);
else
return
QVariant
(
5
);
}
case
Fee:
return
QVariant
(nTransactionFee);
case
DisplayUnit:
return
QVariant
(nDisplayUnit);
case
DisplayAddresses:
return
QVariant
(bDisplayAddresses);
case
Language:
return
settings.
value
(
"
language
"
,
"
"
);
default
:
return
QVariant
();
}
}
return
QVariant
();
}
bool
OptionsModel::setData
(
const
QModelIndex & index,
const
QVariant & value,
int
role)
{
bool
successful =
true
;
/*
set to false on parse error
*/
if
(role == Qt::EditRole)
{
QSettings settings;
switch
(index.
row
())
{
case
StartAtStartup:
successful =
GUIUtil::SetStartOnSystemStartup
(value.
toBool
());
break
;
case
MinimizeToTray:
fMinimizeToTray
= value.
toBool
();
settings.
setValue
(
"
fMinimizeToTray
"
,
fMinimizeToTray
);
break
;
case
MapPortUPnP:
settings.
setValue
(
"
fUseUPnP
"
, value.
toBool
());
MapPort
(value.
toBool
());
break
;
case
MinimizeOnClose:
fMinimizeOnClose
= value.
toBool
();
settings.
setValue
(
"
fMinimizeOnClose
"
,
fMinimizeOnClose
);
break
;
case
ProxyUse:
settings.
setValue
(
"
fUseProxy
"
, value.
toBool
());
successful =
ApplyProxySettings
();
break
;
case
ProxyIP: {
proxyType proxy;
proxy.
first
=
CService
(
"
127.0.0.1
"
,
9050
);
GetProxy
(
NET_IPV4
, proxy);
CNetAddr
addr
(value.
toString
().
toStdString
());
proxy.
first
.
SetIP
(addr);
settings.
setValue
(
"
addrProxy
"
, proxy.
first
.
ToStringIPPort
().
c_str
());
successful =
ApplyProxySettings
();
}
break
;
case
ProxyPort: {
proxyType proxy;
proxy.
first
=
CService
(
"
127.0.0.1
"
,
9050
);
GetProxy
(
NET_IPV4
, proxy);
proxy.
first
.
SetPort
(value.
toInt
());
settings.
setValue
(
"
addrProxy
"
, proxy.
first
.
ToStringIPPort
().
c_str
());
successful =
ApplyProxySettings
();
}
break
;
case
ProxySocksVersion: {
proxyType proxy;
proxy.
second
=
5
;
GetProxy
(
NET_IPV4
, proxy);
proxy.
second
= value.
toInt
();
settings.
setValue
(
"
nSocksVersion
"
, proxy.
second
);
successful =
ApplyProxySettings
();
}
break
;
case
Fee:
nTransactionFee = value.
toLongLong
();
settings.
setValue
(
"
nTransactionFee
"
, nTransactionFee);
break
;
case
DisplayUnit:
nDisplayUnit = value.
toInt
();
settings.
setValue
(
"
nDisplayUnit
"
, nDisplayUnit);
emit
displayUnitChanged
(nDisplayUnit);
break
;
case
DisplayAddresses:
bDisplayAddresses = value.
toBool
();
settings.
setValue
(
"
bDisplayAddresses
"
, bDisplayAddresses);
break
;
case
Language:
settings.
setValue
(
"
language
"
, value);
break
;
default
:
break
;
}
}
emit
dataChanged
(index, index);
return
successful;
}
qint64
OptionsModel::getTransactionFee
()
{
return
nTransactionFee;
}
bool
OptionsModel::getProxySettings
(QString& proxyIP, quint16 &proxyPort)
const
{
std::string proxy =
GetArg
(
"
-proxy
"
,
"
"
);
if
(proxy.
empty
())
return
false
;
CService
addrProxy
(proxy);
proxyIP =
QString
(addrProxy.
ToStringIP
().
c_str
());
proxyPort = addrProxy.
GetPort
();
return
true
;
}
Back
|
FazBrowse Home
|
New Git URL