#include "optionsmodel.h"
+#include "bitcoinunits.h"
#include "headers.h"
-
-#include <QDebug>
+#include "init.h"
OptionsModel::OptionsModel(CWallet *wallet, QObject *parent) :
QAbstractListModel(parent),
- wallet(wallet)
+ wallet(wallet),
+ nDisplayUnit(BitcoinUnits::BTC),
+ bDisplayAddresses(false)
{
+ // Read our specific settings from the wallet db
+ CWalletDB walletdb(wallet->strWalletFile);
+ walletdb.ReadSetting("nDisplayUnit", nDisplayUnit);
+ walletdb.ReadSetting("bDisplayAddresses", bDisplayAddresses);
}
int OptionsModel::rowCount(const QModelIndex & parent) const
switch(index.row())
{
case StartAtStartup:
- return QVariant();
+ return QVariant(GetStartOnSystemStartup());
case MinimizeToTray:
return QVariant(fMinimizeToTray);
case MapPortUPnP:
return QVariant(QString::fromStdString(addrProxy.ToStringPort()));
case Fee:
return QVariant(nTransactionFee);
+ case DisplayUnit:
+ return QVariant(nDisplayUnit);
+ case DisplayAddresses:
+ return QVariant(bDisplayAddresses);
default:
return QVariant();
}
switch(index.row())
{
case StartAtStartup:
- successful = false; /*TODO*/
+ successful = SetStartOnSystemStartup(value.toBool());
break;
case MinimizeToTray:
fMinimizeToTray = value.toBool();
{
// Use CAddress to parse and check IP
CAddress addr(value.toString().toStdString() + ":1");
- if (addr.ip != INADDR_NONE)
+ if (addr.IsValid())
{
- addrProxy.ip = addr.ip;
+ addrProxy.SetIP(addr);
walletdb.WriteSetting("addrProxy", addrProxy);
}
else
case ProxyPort:
{
int nPort = atoi(value.toString().toAscii().data());
- if (nPort > 0 && nPort < USHRT_MAX)
+ if (nPort > 0 && nPort < std::numeric_limits<unsigned short>::max())
{
- addrProxy.port = htons(nPort);
+ addrProxy.SetPort(nPort);
walletdb.WriteSetting("addrProxy", addrProxy);
}
else
walletdb.WriteSetting("nTransactionFee", nTransactionFee);
}
break;
+ case DisplayUnit: {
+ int unit = value.toInt();
+ nDisplayUnit = unit;
+ walletdb.WriteSetting("nDisplayUnit", nDisplayUnit);
+ emit displayUnitChanged(unit);
+ }
+ case DisplayAddresses: {
+ bDisplayAddresses = value.toBool();
+ walletdb.WriteSetting("bDisplayAddresses", bDisplayAddresses);
+ }
default:
break;
}
{
return fMinimizeOnClose;
}
+
+int OptionsModel::getDisplayUnit()
+{
+ return nDisplayUnit;
+}
+
+bool OptionsModel::getDisplayAddresses()
+{
+ return bDisplayAddresses;
+}