Fix Minimize to the tray instead of the taskbar
[novacoin.git] / src / qt / optionsmodel.cpp
index d72a0e9..edc1d61 100644 (file)
@@ -2,17 +2,18 @@
 #include "bitcoinunits.h"
 
 #include "headers.h"
-
-#include <QDebug>
+#include "init.h"
 
 OptionsModel::OptionsModel(CWallet *wallet, QObject *parent) :
     QAbstractListModel(parent),
     wallet(wallet),
-    nDisplayUnit(BitcoinUnits::BTC)
+    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
@@ -27,7 +28,7 @@ QVariant OptionsModel::data(const QModelIndex & index, int role) const
         switch(index.row())
         {
         case StartAtStartup:
-            return QVariant();
+            return QVariant(GetStartOnSystemStartup());
         case MinimizeToTray:
             return QVariant(fMinimizeToTray);
         case MapPortUPnP:
@@ -39,11 +40,13 @@ QVariant OptionsModel::data(const QModelIndex & index, int role) const
         case ProxyIP:
             return QVariant(QString::fromStdString(addrProxy.ToStringIP()));
         case ProxyPort:
-            return QVariant(QString::fromStdString(addrProxy.ToStringPort()));
+            return QVariant(addrProxy.GetPort());
         case Fee:
             return QVariant(nTransactionFee);
         case DisplayUnit:
             return QVariant(nDisplayUnit);
+        case DisplayAddresses:
+            return QVariant(bDisplayAddresses);
         default:
             return QVariant();
         }
@@ -60,7 +63,7 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
         switch(index.row())
         {
         case StartAtStartup:
-            successful = false; /*TODO*/
+            successful = SetStartOnSystemStartup(value.toBool());
             break;
         case MinimizeToTray:
             fMinimizeToTray = value.toBool();
@@ -84,10 +87,10 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
         case ProxyIP:
             {
                 // Use CAddress to parse and check IP
-                CAddress addr(value.toString().toStdString() + ":1");
-                if (addr.ip != INADDR_NONE)
+                CNetAddr addr(value.toString().toStdString());
+                if (addr.IsValid())
                 {
-                    addrProxy.ip = addr.ip;
+                    addrProxy.SetIP(addr);
                     walletdb.WriteSetting("addrProxy", addrProxy);
                 }
                 else
@@ -99,9 +102,9 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
         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
@@ -121,6 +124,10 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
             walletdb.WriteSetting("nDisplayUnit", nDisplayUnit);
             emit displayUnitChanged(unit);
             }
+        case DisplayAddresses: {
+            bDisplayAddresses = value.toBool();
+            walletdb.WriteSetting("bDisplayAddresses", bDisplayAddresses);
+            }
         default:
             break;
         }
@@ -149,3 +156,8 @@ int OptionsModel::getDisplayUnit()
 {
     return nDisplayUnit;
 }
+
+bool OptionsModel::getDisplayAddresses()
+{
+    return bDisplayAddresses;
+}