Full support for other units, add configuration option for default unit (used when...
[novacoin.git] / src / qt / optionsmodel.h
1 #ifndef OPTIONSMODEL_H
2 #define OPTIONSMODEL_H
3
4 #include <QAbstractListModel>
5
6 class CWallet;
7
8 /* Interface from QT to configuration data structure for bitcoin client.
9    To QT, the options are presented as a list with the different options
10    laid out vertically.
11    This can be changed to a tree once the settings become sufficiently
12    complex.
13  */
14 class OptionsModel : public QAbstractListModel
15 {
16     Q_OBJECT
17 public:
18     explicit OptionsModel(CWallet *wallet, QObject *parent = 0);
19
20     enum OptionID {
21         StartAtStartup, // bool
22         MinimizeToTray, // bool
23         MapPortUPnP, // bool
24         MinimizeOnClose, // bool
25         ConnectSOCKS4, // bool
26         ProxyIP, // QString
27         ProxyPort, // QString
28         Fee, // qint64
29         DisplayUnit, // BitcoinUnits::Unit
30         OptionIDRowCount
31     };
32
33     int rowCount(const QModelIndex & parent = QModelIndex()) const;
34     QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const;
35     bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole);
36
37     /* Explicit getters */
38     qint64 getTransactionFee();
39     bool getMinimizeToTray();
40     bool getMinimizeOnClose();
41     int getDisplayUnit();
42 private:
43     // Wallet stores persistent options
44     CWallet *wallet;
45     int nDisplayUnit;
46 signals:
47     void displayUnitChanged(int unit);
48
49 public slots:
50
51 };
52
53 #endif // OPTIONSMODEL_H