123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- // ECOin - Copyright (c) - 2014/2021 - GPLv3 - epsylon@riseup.net (https://03c8.net)
- #ifndef ADDRESSTABLEMODEL_H
- #define ADDRESSTABLEMODEL_H
- #include <QAbstractTableModel>
- #include <QStringList>
- class AddressTablePriv;
- class CWallet;
- class WalletModel;
- class AddressTableModel : public QAbstractTableModel
- {
- Q_OBJECT
- public:
- explicit AddressTableModel(CWallet *wallet, WalletModel *parent = 0);
- ~AddressTableModel();
- enum ColumnIndex {
- Label = 0, /**< User specified label */
- Address = 1 /**< Ecoin address */
- };
- enum RoleIndex {
- TypeRole = Qt::UserRole /**< Type of address (#Send or #Receive) */
- };
- /** Return status of edit/insert operation */
- enum EditStatus {
- OK, /**< Everything ok */
- NO_CHANGES, /**< No changes were made during edit operation */
- INVALID_ADDRESS, /**< Unparseable address */
- DUPLICATE_ADDRESS, /**< Address already in address book */
- WALLET_UNLOCK_FAILURE, /**< Wallet could not be unlocked to create new receiving address */
- KEY_GENERATION_FAILURE /**< Generating a new public key for a receiving address failed */
- };
- static const QString Send; /**< Specifies send address */
- static const QString Receive; /**< Specifies receive address */
- int rowCount(const QModelIndex &parent) const;
- int columnCount(const QModelIndex &parent) const;
- QVariant data(const QModelIndex &index, int role) const;
- bool setData(const QModelIndex &index, const QVariant &value, int role);
- 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;
- QString addRow(const QString &type, const QString &label, const QString &address);
- QString labelForAddress(const QString &address) const;
- int lookupAddress(const QString &address) const;
- EditStatus getEditStatus() const { return editStatus; }
- private:
- WalletModel *walletModel;
- CWallet *wallet;
- AddressTablePriv *priv;
- QStringList columns;
- EditStatus editStatus;
- void emitDataChanged(int index);
- signals:
- void defaultAddressChanged(const QString &address);
- public slots:
- void updateEntry(const QString &address, const QString &label, bool isMine, int status);
- friend class AddressTablePriv;
- };
- #endif // ADDRESSTABLEMODEL_H
|