1 #include "optionsmodel.h"
2 #include "bitcoinunits.h"
8 OptionsModel::OptionsModel(CWallet *wallet, QObject *parent) :
9 QAbstractListModel(parent),
11 nDisplayUnit(BitcoinUnits::BTC)
13 // Read our specific settings from the wallet db
14 CWalletDB walletdb(wallet->strWalletFile);
15 walletdb.ReadSetting("nDisplayUnit", nDisplayUnit);
18 int OptionsModel::rowCount(const QModelIndex & parent) const
20 return OptionIDRowCount;
23 QVariant OptionsModel::data(const QModelIndex & index, int role) const
25 if(role == Qt::EditRole)
32 return QVariant(fMinimizeToTray);
34 return QVariant(fUseUPnP);
36 return QVariant(fMinimizeOnClose);
38 return QVariant(fUseProxy);
40 return QVariant(QString::fromStdString(addrProxy.ToStringIP()));
42 return QVariant(QString::fromStdString(addrProxy.ToStringPort()));
44 return QVariant(nTransactionFee);
46 return QVariant(nDisplayUnit);
54 bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, int role)
56 bool successful = true; /* set to false on parse error */
57 if(role == Qt::EditRole)
59 CWalletDB walletdb(wallet->strWalletFile);
63 successful = false; /*TODO*/
66 fMinimizeToTray = value.toBool();
67 walletdb.WriteSetting("fMinimizeToTray", fMinimizeToTray);
70 fUseUPnP = value.toBool();
71 walletdb.WriteSetting("fUseUPnP", fUseUPnP);
77 fMinimizeOnClose = value.toBool();
78 walletdb.WriteSetting("fMinimizeOnClose", fMinimizeOnClose);
81 fUseProxy = value.toBool();
82 walletdb.WriteSetting("fUseProxy", fUseProxy);
86 // Use CAddress to parse and check IP
87 CAddress addr(value.toString().toStdString() + ":1");
88 if (addr.ip != INADDR_NONE)
90 addrProxy.ip = addr.ip;
91 walletdb.WriteSetting("addrProxy", addrProxy);
101 int nPort = atoi(value.toString().toAscii().data());
102 if (nPort > 0 && nPort < USHRT_MAX)
104 addrProxy.port = htons(nPort);
105 walletdb.WriteSetting("addrProxy", addrProxy);
114 nTransactionFee = value.toLongLong();
115 walletdb.WriteSetting("nTransactionFee", nTransactionFee);
119 int unit = value.toInt();
121 walletdb.WriteSetting("nDisplayUnit", nDisplayUnit);
122 emit displayUnitChanged(unit);
128 emit dataChanged(index, index);
133 qint64 OptionsModel::getTransactionFee()
135 return nTransactionFee;
138 bool OptionsModel::getMinimizeToTray()
140 return fMinimizeToTray;
143 bool OptionsModel::getMinimizeOnClose()
145 return fMinimizeOnClose;
148 int OptionsModel::getDisplayUnit()