LCOV - code coverage report
Current view: top level - src/qt - addresstablemodel.h (source / functions) Hit Total Coverage
Test: total_coverage.info Lines: 0 2 0.0 %
Date: 2015-10-12 22:39:14 Functions: 0 1 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : // Copyright (c) 2011-2013 The Bitcoin Core developers
       2             : // Distributed under the MIT software license, see the accompanying
       3             : // file COPYING or http://www.opensource.org/licenses/mit-license.php.
       4             : 
       5             : #ifndef BITCOIN_QT_ADDRESSTABLEMODEL_H
       6             : #define BITCOIN_QT_ADDRESSTABLEMODEL_H
       7             : 
       8             : #include <QAbstractTableModel>
       9             : #include <QStringList>
      10             : 
      11             : class AddressTablePriv;
      12             : class WalletModel;
      13             : 
      14             : class CWallet;
      15             : 
      16             : /**
      17             :    Qt model of the address book in the core. This allows views to access and modify the address book.
      18             :  */
      19             : class AddressTableModel : public QAbstractTableModel
      20             : {
      21           0 :     Q_OBJECT
      22             : 
      23             : public:
      24             :     explicit AddressTableModel(CWallet *wallet, WalletModel *parent = 0);
      25             :     ~AddressTableModel();
      26             : 
      27             :     enum ColumnIndex {
      28             :         Label = 0,   /**< User specified label */
      29             :         Address = 1  /**< Bitcoin address */
      30             :     };
      31             : 
      32             :     enum RoleIndex {
      33             :         TypeRole = Qt::UserRole /**< Type of address (#Send or #Receive) */
      34             :     };
      35             : 
      36             :     /** Return status of edit/insert operation */
      37             :     enum EditStatus {
      38             :         OK,                     /**< Everything ok */
      39             :         NO_CHANGES,             /**< No changes were made during edit operation */
      40             :         INVALID_ADDRESS,        /**< Unparseable address */
      41             :         DUPLICATE_ADDRESS,      /**< Address already in address book */
      42             :         WALLET_UNLOCK_FAILURE,  /**< Wallet could not be unlocked to create new receiving address */
      43             :         KEY_GENERATION_FAILURE  /**< Generating a new public key for a receiving address failed */
      44             :     };
      45             : 
      46             :     static const QString Send;      /**< Specifies send address */
      47             :     static const QString Receive;   /**< Specifies receive address */
      48             : 
      49             :     /** @name Methods overridden from QAbstractTableModel
      50             :         @{*/
      51             :     int rowCount(const QModelIndex &parent) const;
      52             :     int columnCount(const QModelIndex &parent) const;
      53             :     QVariant data(const QModelIndex &index, int role) const;
      54             :     bool setData(const QModelIndex &index, const QVariant &value, int role);
      55             :     QVariant headerData(int section, Qt::Orientation orientation, int role) const;
      56             :     QModelIndex index(int row, int column, const QModelIndex &parent) const;
      57             :     bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
      58             :     Qt::ItemFlags flags(const QModelIndex &index) const;
      59             :     /*@}*/
      60             : 
      61             :     /* Add an address to the model.
      62             :        Returns the added address on success, and an empty string otherwise.
      63             :      */
      64             :     QString addRow(const QString &type, const QString &label, const QString &address);
      65             : 
      66             :     /* Look up label for address in address book, if not found return empty string.
      67             :      */
      68             :     QString labelForAddress(const QString &address) const;
      69             : 
      70             :     /* Look up row index of an address in the model.
      71             :        Return -1 if not found.
      72             :      */
      73             :     int lookupAddress(const QString &address) const;
      74             : 
      75           0 :     EditStatus getEditStatus() const { return editStatus; }
      76             : 
      77             : private:
      78             :     WalletModel *walletModel;
      79             :     CWallet *wallet;
      80             :     AddressTablePriv *priv;
      81             :     QStringList columns;
      82             :     EditStatus editStatus;
      83             : 
      84             :     /** Notify listeners that data changed. */
      85             :     void emitDataChanged(int index);
      86             : 
      87             : public Q_SLOTS:
      88             :     /* Update address list from core.
      89             :      */
      90             :     void updateEntry(const QString &address, const QString &label, bool isMine, const QString &purpose, int status);
      91             : 
      92             :     friend class AddressTablePriv;
      93             : };
      94             : 
      95             : #endif // BITCOIN_QT_ADDRESSTABLEMODEL_H

Generated by: LCOV version 1.11