Use a messagebox to display the error when -server is provided without providing...
[novacoin.git] / src / qt / addresstablemodel.h
index 3ababfc..f4a8dad 100644 (file)
@@ -6,12 +6,13 @@
 
 class AddressTablePriv;
 class CWallet;
+class WalletModel;
 
 class AddressTableModel : public QAbstractTableModel
 {
     Q_OBJECT
 public:
-    explicit AddressTableModel(CWallet *wallet, QObject *parent = 0);
+    explicit AddressTableModel(CWallet *wallet, WalletModel *parent = 0);
     ~AddressTableModel();
 
     enum ColumnIndex {
@@ -19,9 +20,18 @@ public:
         Address = 1  /* Bitcoin address */
     };
 
-    enum {
+    enum RoleIndex {
         TypeRole = Qt::UserRole
-    } RoleIndex;
+    };
+
+    // Return status of last edit/insert operation
+    enum EditStatus {
+        OK,
+        INVALID_ADDRESS,
+        DUPLICATE_ADDRESS,
+        WALLET_UNLOCK_FAILURE,
+        KEY_GENERATION_FAILURE
+    };
 
     static const QString Send; /* Send addres */
     static const QString Receive; /* Receive address */
@@ -34,6 +44,7 @@ public:
     QVariant headerData(int section, Qt::Orientation orientation, int role) const;
     QModelIndex index(int row, int column, const QModelIndex & parent) const;
     bool removeRows(int row, int count, const QModelIndex & parent = QModelIndex());
+    Qt::ItemFlags flags(const QModelIndex & index) const;
 
     /* Add an address to the model.
        Returns the added address on success, and an empty string otherwise.
@@ -44,10 +55,23 @@ public:
      */
     void updateList();
 
+    /* Look up label for address in address book, if not found return empty string.
+     */
+    QString labelForAddress(const QString &address) const;
+
+    /* Look up row index of an address in the model.
+       Return -1 if not found.
+     */
+    int lookupAddress(const QString &address) const;
+
+    EditStatus getEditStatus() const { return editStatus; }
+
 private:
+    WalletModel *walletModel;
     CWallet *wallet;
     AddressTablePriv *priv;
     QStringList columns;
+    EditStatus editStatus;
 
 signals:
     void defaultAddressChanged(const QString &address);