Pull request #21: windows fixes/cleanup by Matoking
[novacoin.git] / src / qt / optionsmodel.cpp
index 8961709..efc216d 100644 (file)
@@ -1,13 +1,18 @@
 #include "optionsmodel.h"
+#include "bitcoinunits.h"
 
 #include "headers.h"
 
-#include <QDebug>
-
 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
@@ -37,6 +42,10 @@ QVariant OptionsModel::data(const QModelIndex & index, int role) const
             return QVariant(QString::fromStdString(addrProxy.ToStringPort()));
         case Fee:
             return QVariant(nTransactionFee);
+        case DisplayUnit:
+            return QVariant(nDisplayUnit);
+        case DisplayAddresses:
+            return QVariant(bDisplayAddresses);
         default:
             return QVariant();
         }
@@ -108,6 +117,16 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
             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;
         }
@@ -131,3 +150,13 @@ bool OptionsModel::getMinimizeOnClose()
 {
     return fMinimizeOnClose;
 }
+
+int OptionsModel::getDisplayUnit()
+{
+    return nDisplayUnit;
+}
+
+bool OptionsModel::getDisplayAddresses()
+{
+    return bDisplayAddresses;
+}