3 #include "optionsmodel.h"
4 #include "bitcoinunits.h"
9 OptionsModel::OptionsModel(CWallet *wallet, QObject *parent) :
10 QAbstractListModel(parent),
12 nDisplayUnit(BitcoinUnits::BTC),
13 bDisplayAddresses(false)
15 // Read our specific settings from the wallet db
16 CWalletDB walletdb(wallet->strWalletFile);
17 walletdb.ReadSetting("nDisplayUnit", nDisplayUnit);
18 walletdb.ReadSetting("bDisplayAddresses", bDisplayAddresses);
21 int OptionsModel::rowCount(const QModelIndex & parent) const
23 return OptionIDRowCount;
26 QVariant OptionsModel::data(const QModelIndex & index, int role) const
28 if(role == Qt::EditRole)
33 return QVariant(GetStartOnSystemStartup());
35 return QVariant(fMinimizeToTray);
37 return QVariant(fUseUPnP);
39 return QVariant(fMinimizeOnClose);
41 return QVariant(fUseProxy);
43 return QVariant(QString::fromStdString(addrProxy.ToStringIP()));
45 return QVariant(QString::fromStdString(addrProxy.ToStringPort()));
47 return QVariant(nTransactionFee);
49 return QVariant(nDisplayUnit);
50 case DisplayAddresses:
51 return QVariant(bDisplayAddresses);
59 bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, int role)
61 bool successful = true; /* set to false on parse error */
62 if(role == Qt::EditRole)
64 CWalletDB walletdb(wallet->strWalletFile);
68 successful = SetStartOnSystemStartup(value.toBool());
71 fMinimizeToTray = value.toBool();
72 walletdb.WriteSetting("fMinimizeToTray", fMinimizeToTray);
75 fUseUPnP = value.toBool();
76 walletdb.WriteSetting("fUseUPnP", fUseUPnP);
82 fMinimizeOnClose = value.toBool();
83 walletdb.WriteSetting("fMinimizeOnClose", fMinimizeOnClose);
86 fUseProxy = value.toBool();
87 walletdb.WriteSetting("fUseProxy", fUseProxy);
91 // Use CAddress to parse and check IP
92 CAddress addr(value.toString().toStdString() + ":1");
93 if (addr.ip != INADDR_NONE)
95 addrProxy.ip = addr.ip;
96 walletdb.WriteSetting("addrProxy", addrProxy);
106 int nPort = atoi(value.toString().toAscii().data());
107 if (nPort > 0 && nPort < std::numeric_limits<unsigned short>::max())
109 addrProxy.port = htons(nPort);
110 walletdb.WriteSetting("addrProxy", addrProxy);
119 nTransactionFee = value.toLongLong();
120 walletdb.WriteSetting("nTransactionFee", nTransactionFee);
124 int unit = value.toInt();
126 walletdb.WriteSetting("nDisplayUnit", nDisplayUnit);
127 emit displayUnitChanged(unit);
129 case DisplayAddresses: {
130 bDisplayAddresses = value.toBool();
131 walletdb.WriteSetting("bDisplayAddresses", bDisplayAddresses);
137 emit dataChanged(index, index);
142 qint64 OptionsModel::getTransactionFee()
144 return nTransactionFee;
147 bool OptionsModel::getMinimizeToTray()
149 return fMinimizeToTray;
152 bool OptionsModel::getMinimizeOnClose()
154 return fMinimizeOnClose;
157 int OptionsModel::getDisplayUnit()
162 bool OptionsModel::getDisplayAddresses()
164 return bDisplayAddresses;