#include "optionsmodel.h"
-#include "main.h"
-#include "net.h"
+#include "bitcoinunits.h"
-#include <QDebug>
+#include "headers.h"
+#include "init.h"
-OptionsModel::OptionsModel(QObject *parent) :
- QAbstractListModel(parent)
+OptionsModel::OptionsModel(CWallet *wallet, QObject *parent) :
+ QAbstractListModel(parent),
+ 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:
case ProxyPort:
return QVariant(QString::fromStdString(addrProxy.ToStringPort()));
case Fee:
- return QVariant(QString::fromStdString(FormatMoney(nTransactionFee)));
+ return QVariant(nTransactionFee);
+ case DisplayUnit:
+ return QVariant(nDisplayUnit);
+ case DisplayAddresses:
+ return QVariant(bDisplayAddresses);
default:
return QVariant();
}
bool successful = true; /* set to false on parse error */
if(role == Qt::EditRole)
{
- CWalletDB walletdb;
+ CWalletDB walletdb(wallet->strWalletFile);
switch(index.row())
{
case StartAtStartup:
- successful = false; /*TODO*/
+ successful = SetStartOnSystemStartup(value.toBool());
break;
case MinimizeToTray:
fMinimizeToTray = value.toBool();
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);
walletdb.WriteSetting("addrProxy", addrProxy);
}
break;
case Fee: {
- int64 retval;
- if(ParseMoney(value.toString().toStdString(), retval))
- {
- nTransactionFee = retval;
- walletdb.WriteSetting("nTransactionFee", nTransactionFee);
- }
- else
- {
- successful = false; // Parse error
- }
+ nTransactionFee = value.toLongLong();
+ 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;
+}