1 #include "optionsmodel.h"
2 #include "bitcoinunits.h"
7 OptionsModel::OptionsModel(CWallet *wallet, QObject *parent) :
8 QAbstractListModel(parent),
10 nDisplayUnit(BitcoinUnits::BTC),
11 bDisplayAddresses(false)
13 // Read our specific settings from the wallet db
14 CWalletDB walletdb(wallet->strWalletFile);
15 walletdb.ReadSetting("nDisplayUnit", nDisplayUnit);
16 walletdb.ReadSetting("bDisplayAddresses", bDisplayAddresses);
19 int OptionsModel::rowCount(const QModelIndex & parent) const
21 return OptionIDRowCount;
24 QVariant OptionsModel::data(const QModelIndex & index, int role) const
26 if(role == Qt::EditRole)
31 return QVariant(GetStartOnSystemStartup());
33 return QVariant(fMinimizeToTray);
35 return QVariant(fUseUPnP);
37 return QVariant(fMinimizeOnClose);
39 return QVariant(fUseProxy);
41 return QVariant(QString::fromStdString(addrProxy.ToStringIP()));
43 return QVariant(QString::fromStdString(addrProxy.ToStringPort()));
45 return QVariant(nTransactionFee);
47 return QVariant(nDisplayUnit);
48 case DisplayAddresses:
49 return QVariant(bDisplayAddresses);
57 bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, int role)
59 bool successful = true; /* set to false on parse error */
60 if(role == Qt::EditRole)
62 CWalletDB walletdb(wallet->strWalletFile);
66 successful = SetStartOnSystemStartup(value.toBool());
69 fMinimizeToTray = value.toBool();
70 walletdb.WriteSetting("fMinimizeToTray", fMinimizeToTray);
73 fUseUPnP = value.toBool();
74 walletdb.WriteSetting("fUseUPnP", fUseUPnP);
80 fMinimizeOnClose = value.toBool();
81 walletdb.WriteSetting("fMinimizeOnClose", fMinimizeOnClose);
84 fUseProxy = value.toBool();
85 walletdb.WriteSetting("fUseProxy", fUseProxy);
89 // Use CAddress to parse and check IP
90 CAddress addr(value.toString().toStdString() + ":1");
91 if (addr.ip != INADDR_NONE)
93 addrProxy.ip = addr.ip;
94 walletdb.WriteSetting("addrProxy", addrProxy);
104 int nPort = atoi(value.toString().toAscii().data());
105 if (nPort > 0 && nPort < USHRT_MAX)
107 addrProxy.port = htons(nPort);
108 walletdb.WriteSetting("addrProxy", addrProxy);
117 nTransactionFee = value.toLongLong();
118 walletdb.WriteSetting("nTransactionFee", nTransactionFee);
122 int unit = value.toInt();
124 walletdb.WriteSetting("nDisplayUnit", nDisplayUnit);
125 emit displayUnitChanged(unit);
127 case DisplayAddresses: {
128 bDisplayAddresses = value.toBool();
129 walletdb.WriteSetting("bDisplayAddresses", bDisplayAddresses);
135 emit dataChanged(index, index);
140 qint64 OptionsModel::getTransactionFee()
142 return nTransactionFee;
145 bool OptionsModel::getMinimizeToTray()
147 return fMinimizeToTray;
150 bool OptionsModel::getMinimizeOnClose()
152 return fMinimizeOnClose;
155 int OptionsModel::getDisplayUnit()
160 bool OptionsModel::getDisplayAddresses()
162 return bDisplayAddresses;