Bugfix: Replace "URL" with "URI" where we aren't actually working with URLs
[novacoin.git] / src / qt / optionsmodel.h
index 4ba44dc..0be70f8 100644 (file)
@@ -3,9 +3,7 @@
 
 #include <QAbstractListModel>
 
-class CWallet;
-
-/* Interface from QT to configuration data structure for bitcoin client.
+/** Interface from QT to configuration data structure for bitcoin client.
    To QT, the options are presented as a list with the different options
    laid out vertically.
    This can be changed to a tree once the settings become sufficiently
@@ -15,7 +13,7 @@ class OptionsModel : public QAbstractListModel
 {
     Q_OBJECT
 public:
-    explicit OptionsModel(CWallet *wallet, QObject *parent = 0);
+    explicit OptionsModel(QObject *parent = 0);
 
     enum OptionID {
         StartAtStartup, // bool
@@ -26,9 +24,16 @@ public:
         ProxyIP, // QString
         ProxyPort, // QString
         Fee, // qint64
+        DisplayUnit, // BitcoinUnits::Unit
+        DisplayAddresses, // bool
         OptionIDRowCount
     };
 
+    void Init();
+
+    /* Migrate settings from wallet.dat after app initialization */
+    bool Upgrade(); /* returns true if settings upgraded */
+
     int rowCount(const QModelIndex & parent = QModelIndex()) const;
     QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const;
     bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole);
@@ -37,10 +42,15 @@ public:
     qint64 getTransactionFee();
     bool getMinimizeToTray();
     bool getMinimizeOnClose();
+    int getDisplayUnit();
+    bool getDisplayAddresses();
 private:
-    // Wallet stores persistent options
-    CWallet *wallet;
+    int nDisplayUnit;
+    bool bDisplayAddresses;
+    bool fMinimizeToTray;
+    bool fMinimizeOnClose;
 signals:
+    void displayUnitChanged(int unit);
 
 public slots: