Add context menu on transaction list: copy label, copy address, edit label, show...
[novacoin.git] / src / qt / addresstablemodel.h
index 32dd4d9..d48e786 100644 (file)
@@ -5,18 +5,18 @@
 #include <QStringList>
 
 class AddressTablePriv;
+class CWallet;
 
 class AddressTableModel : public QAbstractTableModel
 {
     Q_OBJECT
 public:
-    explicit AddressTableModel(QObject *parent = 0);
+    explicit AddressTableModel(CWallet *wallet, QObject *parent = 0);
     ~AddressTableModel();
 
     enum ColumnIndex {
         Label = 0,   /* User specified label */
-        Address = 1,  /* Bitcoin address */
-        IsDefaultAddress = 2 /* Is default address? */
+        Address = 1  /* Bitcoin address */
     };
 
     enum {
@@ -34,21 +34,32 @@ 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.
      */
-    QString addRow(const QString &type, const QString &label, const QString &address, bool setAsDefault);
-
-    /* Set and get default address */
-    QString getDefaultAddress() const;
-    void setDefaultAddress(const QString &defaultAddress);
+    QString addRow(const QString &type, const QString &label, const QString &address);
 
     /* Update address list from core. Invalidates any indices.
      */
     void updateList();
 
+    /* Check address for validity
+     */
+    bool validateAddress(const QString &address);
+
+    /* 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;
+
 private:
+    CWallet *wallet;
     AddressTablePriv *priv;
     QStringList columns;