24 #include <QNetworkProxy>
26 #include <QStringList>
29 #ifdef NOTYET_ENABLE_I2PSAM
30 #include <QMessageBox>
31 QMessageBox::warning( NULL,
"Notice - Upgrade in progress",
32 "Values are now for read-only purposes only",
33 QMessageBox::Ok, QMessageBox::Ok );
37 QAbstractListModel(parent)
58 if (!settings.contains(
"fMinimizeToTray"))
59 settings.setValue(
"fMinimizeToTray",
false);
62 if (!settings.contains(
"fMinimizeOnClose"))
63 settings.setValue(
"fMinimizeOnClose",
false);
67 if (!settings.contains(
"nDisplayUnit"))
71 if (!settings.contains(
"strThirdPartyTxUrls"))
72 settings.setValue(
"strThirdPartyTxUrls",
"");
75 if (!settings.contains(
"fCoinControlFeatures"))
76 settings.setValue(
"fCoinControlFeatures",
false);
88 if (!settings.contains(
"nDatabaseCache"))
89 settings.setValue(
"nDatabaseCache", (qint64)nDefaultDbCache);
90 if (!
SoftSetArg(
"-dbcache", settings.value(
"nDatabaseCache").toString().toStdString()))
93 if (!settings.contains(
"nThreadsScriptVerif"))
94 settings.setValue(
"nThreadsScriptVerif", DEFAULT_SCRIPTCHECK_THREADS);
95 if (!
SoftSetArg(
"-par", settings.value(
"nThreadsScriptVerif").toString().toStdString()))
100 if (!settings.contains(
"nTransactionFee"))
101 settings.setValue(
"nTransactionFee", (qint64)DEFAULT_TRANSACTION_FEE);
103 if (
mapArgs.count(
"-paytxfee"))
106 if (!settings.contains(
"bSpendZeroConfChange"))
107 settings.setValue(
"bSpendZeroConfChange",
true);
108 if (!
SoftSetBoolArg(
"-spendzeroconfchange", settings.value(
"bSpendZeroConfChange").toBool()))
113 if (!settings.contains(
"fUseUPnP"))
115 settings.setValue(
"fUseUPnP",
true);
117 settings.setValue(
"fUseUPnP",
false);
119 if (!
SoftSetBoolArg(
"-upnp", settings.value(
"fUseUPnP").toBool()))
122 if (!settings.contains(
"fUseProxy"))
123 settings.setValue(
"fUseProxy",
false);
124 if (!settings.contains(
"addrProxy"))
125 settings.setValue(
"addrProxy",
"127.0.0.1:9050");
127 if (settings.value(
"fUseProxy").toBool() && !
SoftSetArg(
"-proxy", settings.value(
"addrProxy").toString().toStdString()))
131 if (!settings.contains(
"language"))
132 settings.setValue(
"language",
"");
133 if (!
SoftSetArg(
"-lang", settings.value(
"language").toString().toStdString()))
136 language = settings.value(
"language").toString();
140 I2PUseI2POnly = IsI2POnly();
158 #endif // ENABLE_I2PSAM
181 if(role == Qt::EditRole)
192 return settings.value(
"fUseUPnP");
201 return settings.value(
"fUseProxy",
false);
204 QStringList strlIpPort = settings.value(
"addrProxy").toString().split(
":", QString::SkipEmptyParts);
205 return strlIpPort.at(0);
209 QStringList strlIpPort = settings.value(
"addrProxy").toString().split(
":", QString::SkipEmptyParts);
210 return strlIpPort.at(1);
222 return settings.value(
"nTransactionFee");
224 return settings.value(
"bSpendZeroConfChange");
231 return settings.value(
"language");
235 return settings.value(
"nDatabaseCache");
237 return settings.value(
"nThreadsScriptVerif");
240 return QVariant( I2PUseI2POnly );
242 return QVariant( I2PSAMHost );
244 return QVariant( I2PSAMPort );
245 case eI2PSessionName:
246 return QVariant( I2PSessionName );
247 case I2PInboundQuantity:
248 return QVariant(i2pInboundQuantity);
249 case I2PInboundLength:
250 return QVariant(i2pInboundLength);
251 case I2PInboundLengthVariance:
252 return QVariant(i2pInboundLengthVariance);
253 case I2PInboundBackupQuantity:
254 return QVariant(i2pInboundBackupQuantity);
255 case I2PInboundAllowZeroHop:
256 return QVariant(i2pInboundAllowZeroHop);
257 case I2PInboundIPRestriction:
258 return QVariant(i2pInboundIPRestriction);
259 case I2POutboundQuantity:
260 return QVariant(i2pOutboundQuantity);
261 case I2POutboundLength:
262 return QVariant(i2pOutboundLength);
263 case I2POutboundLengthVariance:
264 return QVariant(i2pOutboundLengthVariance);
265 case I2POutboundBackupQuantity:
266 return QVariant(i2pOutboundBackupQuantity);
267 case I2POutboundAllowZeroHop:
268 return QVariant(i2pOutboundAllowZeroHop);
269 case I2POutboundIPRestriction:
270 return QVariant(i2pOutboundIPRestriction);
271 case I2POutboundPriority:
272 return QVariant(i2pOutboundPriority);
273 #endif // ENABLE_I2PSAM
284 bool successful =
true;
285 if(role == Qt::EditRole)
298 settings.setValue(
"fUseUPnP", value.toBool());
308 if (settings.value(
"fUseProxy") != value) {
309 settings.setValue(
"fUseProxy", value.toBool());
315 QStringList strlIpPort = settings.value(
"addrProxy").toString().split(
":", QString::SkipEmptyParts);
317 if (!settings.contains(
"addrProxy") || strlIpPort.at(0) != value.toString()) {
319 QString strNewValue = value.toString() +
":" + strlIpPort.at(1);
320 settings.setValue(
"addrProxy", strNewValue);
327 QStringList strlIpPort = settings.value(
"addrProxy").toString().split(
":", QString::SkipEmptyParts);
329 if (!settings.contains(
"addrProxy") || strlIpPort.at(1) != value.toString()) {
331 QString strNewValue = strlIpPort.at(0) +
":" + value.toString();
332 settings.setValue(
"addrProxy", strNewValue);
345 if (settings.value(
"bSpendZeroConfChange") != value) {
346 settings.setValue(
"bSpendZeroConfChange", value);
362 if (settings.value(
"language") != value) {
363 settings.setValue(
"language", value);
373 if (settings.value(
"nDatabaseCache") != value) {
374 settings.setValue(
"nDatabaseCache", value);
379 if (settings.value(
"nThreadsScriptVerif") != value) {
380 settings.setValue(
"nThreadsScriptVerif", value);
388 case eI2PSessionName:
389 case I2PInboundQuantity:
390 case I2PInboundLength:
391 case I2PInboundLengthVariance:
392 case I2PInboundBackupQuantity:
393 case I2PInboundAllowZeroHop:
394 case I2PInboundIPRestriction:
395 case I2POutboundQuantity:
396 case I2POutboundLength:
397 case I2POutboundLengthVariance:
398 case I2POutboundBackupQuantity:
399 case I2POutboundAllowZeroHop:
400 case I2POutboundIPRestriction:
401 case I2POutboundPriority:
403 #endif // ENABLE_I2PSAM
410 if( index.row() < eI2PUseI2POnly )
412 emit dataChanged(index, index);
435 proxy.setType(QNetworkProxy::Socks5Proxy);
436 proxy.setHostName(QString::fromStdString(curProxy.
ToStringIP()));
437 proxy.setPort(curProxy.
GetPort());
442 proxy.setType(QNetworkProxy::NoProxy);
450 return settings.setValue(
"fRestartRequired", fRequired);
456 return settings.value(
"fRestartRequired",
false).toBool();
#define SAM_DEFAULT_OUTBOUND_IPRESTRICTION
#define SAM_DEFAULT_ADDRESS
#define SAM_DEFAULT_INBOUND_IPRESTRICTION
unsigned short GetPort() const
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
void addOverriddenOption(const std::string &option)
Add option to list of GUI options overridden through command line/config file.
std::string ToStringIP() const
bool SoftSetBoolArg(const std::string &strArg, bool fValue)
Set a boolean argument if it doesn't already have a value.
void transactionFeeChanged(qint64)
#define SAM_DEFAULT_INBOUND_BACKUPQUANTITY
bool GetStartOnSystemStartup()
void coinControlFeaturesChanged(bool)
OptionsModel(QObject *parent=0)
#define SAM_DEFAULT_OUTBOUND_ALLOWZEROHOP
#define I2P_SESSION_NAME_DEFAULT
#define SAM_DEFAULT_OUTBOUND_LENGTH
bool GetBoolArg(const std::string &strArg, bool fDefault)
Return boolean argument or default value.
bool SoftSetArg(const std::string &strArg, const std::string &strValue)
Set an argument if it doesn't already have a value.
void setDisplayUnit(const QVariant &value)
Updates current unit in memory, settings and emits displayUnitChanged(newUnit) signal.
#define SAM_DEFAULT_INBOUND_QUANTITY
int rowCount(const QModelIndex &parent=QModelIndex()) const
bool getProxySettings(QNetworkProxy &proxy) const
#define SAM_DEFAULT_OUTBOUND_LENGTHVARIANCE
A combination of a network address (CNetAddr) and a (TCP) port.
#define SAM_DEFAULT_OUTBOUND_PRIORITY
#define SAM_DEFAULT_INBOUND_ALLOWZEROHOP
void displayUnitChanged(int unit)
#define SAM_DEFAULT_INBOUND_LENGTH
bool fCoinControlFeatures
#define SAM_DEFAULT_INBOUND_LENGTHVARIANCE
void setRestartRequired(bool fRequired)
QString strThirdPartyTxUrls
#define SAM_DEFAULT_OUTBOUND_BACKUPQUANTITY
bool GetProxy(enum Network net, proxyType &proxyInfoOut)
bool SetStartOnSystemStartup(bool fAutoStart)
std::string GetArg(const std::string &strArg, const std::string &strDefault)
Return string argument or default value.
#define SAM_DEFAULT_OUTBOUND_QUANTITY
map< string, string > mapArgs
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
QString strOverriddenByCommandLine