Add missing breaks in optionmodel's switch case
[novacoin.git] / src / qt / optionsmodel.cpp
1 #include "optionsmodel.h"
2 #include "bitcoinunits.h"
3
4 #include "headers.h"
5
6 OptionsModel::OptionsModel(CWallet *wallet, QObject *parent) :
7     QAbstractListModel(parent),
8     wallet(wallet),
9     nDisplayUnit(BitcoinUnits::BTC),
10     bDisplayAddresses(false)
11 {
12     // Read our specific settings from the wallet db
13     CWalletDB walletdb(wallet->strWalletFile);
14     walletdb.ReadSetting("nDisplayUnit", nDisplayUnit);
15     walletdb.ReadSetting("bDisplayAddresses", bDisplayAddresses);
16 }
17
18 int OptionsModel::rowCount(const QModelIndex & parent) const
19 {
20     return OptionIDRowCount;
21 }
22
23 QVariant OptionsModel::data(const QModelIndex & index, int role) const
24 {
25     if(role == Qt::EditRole)
26     {
27         switch(index.row())
28         {
29         case StartAtStartup:
30             return QVariant();
31         case MinimizeToTray:
32             return QVariant(fMinimizeToTray);
33         case MapPortUPnP:
34             return QVariant(fUseUPnP);
35         case MinimizeOnClose:
36             return QVariant(fMinimizeOnClose);
37         case ConnectSOCKS4:
38             return QVariant(fUseProxy);
39         case ProxyIP:
40             return QVariant(QString::fromStdString(addrProxy.ToStringIP()));
41         case ProxyPort:
42             return QVariant(QString::fromStdString(addrProxy.ToStringPort()));
43         case Fee:
44             return QVariant(nTransactionFee);
45         case DisplayUnit:
46             return QVariant(nDisplayUnit);
47         case DisplayAddresses:
48             return QVariant(bDisplayAddresses);
49         default:
50             return QVariant();
51         }
52     }
53     return QVariant();
54 }
55
56 bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, int role)
57 {
58     bool successful = true; /* set to false on parse error */
59     if(role == Qt::EditRole)
60     {
61         CWalletDB walletdb(wallet->strWalletFile);
62         switch(index.row())
63         {
64         case StartAtStartup:
65             successful = false; /*TODO*/
66             break;
67         case MinimizeToTray:
68             fMinimizeToTray = value.toBool();
69             walletdb.WriteSetting("fMinimizeToTray", fMinimizeToTray);
70             break;
71         case MapPortUPnP:
72             fUseUPnP = value.toBool();
73             walletdb.WriteSetting("fUseUPnP", fUseUPnP);
74 #ifdef USE_UPNP
75             MapPort(fUseUPnP);
76 #endif
77             break;
78         case MinimizeOnClose:
79             fMinimizeOnClose = value.toBool();
80             walletdb.WriteSetting("fMinimizeOnClose", fMinimizeOnClose);
81             break;
82         case ConnectSOCKS4:
83             fUseProxy = value.toBool();
84             walletdb.WriteSetting("fUseProxy", fUseProxy);
85             break;
86         case ProxyIP:
87             {
88                 // Use CAddress to parse and check IP
89                 CAddress addr(value.toString().toStdString() + ":1");
90                 if (addr.ip != INADDR_NONE)
91                 {
92                     addrProxy.ip = addr.ip;
93                     walletdb.WriteSetting("addrProxy", addrProxy);
94                 }
95                 else
96                 {
97                     successful = false;
98                 }
99             }
100             break;
101         case ProxyPort:
102             {
103                 int nPort = atoi(value.toString().toAscii().data());
104                 if (nPort > 0 && nPort < USHRT_MAX)
105                 {
106                     addrProxy.port = htons(nPort);
107                     walletdb.WriteSetting("addrProxy", addrProxy);
108                 }
109                 else
110                 {
111                     successful = false;
112                 }
113             }
114             break;
115         case Fee: {
116             nTransactionFee = value.toLongLong();
117             walletdb.WriteSetting("nTransactionFee", nTransactionFee);
118             }
119             break;
120         case DisplayUnit: {
121             int unit = value.toInt();
122             nDisplayUnit = unit;
123             walletdb.WriteSetting("nDisplayUnit", nDisplayUnit);
124             emit displayUnitChanged(unit);
125             }
126             break;
127         case DisplayAddresses: {
128             bDisplayAddresses = value.toBool();
129             walletdb.WriteSetting("bDisplayAddresses", bDisplayAddresses);
130             }
131             break;
132         default:
133             break;
134         }
135     }
136     emit dataChanged(index, index);
137
138     return successful;
139 }
140
141 qint64 OptionsModel::getTransactionFee()
142 {
143     return nTransactionFee;
144 }
145
146 bool OptionsModel::getMinimizeToTray()
147 {
148     return fMinimizeToTray;
149 }
150
151 bool OptionsModel::getMinimizeOnClose()
152 {
153     return fMinimizeOnClose;
154 }
155
156 int OptionsModel::getDisplayUnit()
157 {
158     return nDisplayUnit;
159 }
160
161 bool OptionsModel::getDisplayAddresses()
162 {
163     return bDisplayAddresses;
164 }