Bitcoin ABC 0.30.7
P2P Digital Currency
addresstablemodel.h
Go to the documentation of this file.
1// Copyright (c) 2011-2015 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
11enum class OutputType;
12
14class WalletModel;
15
16namespace interfaces {
17class Wallet;
18}
19
24class AddressTableModel : public QAbstractTableModel {
25 Q_OBJECT
26
27public:
28 explicit AddressTableModel(WalletModel *parent = nullptr);
30
33 Label = 0,
35 Address = 1
36 };
37
38 enum RoleIndex {
40 TypeRole = Qt::UserRole
41 };
42
57 };
58
60 static const QString Send;
62 static const QString Receive;
63
66 int rowCount(const QModelIndex &parent) const override;
67 int columnCount(const QModelIndex &parent) const override;
68 QVariant data(const QModelIndex &index, int role) const override;
69 bool setData(const QModelIndex &index, const QVariant &value,
70 int role) override;
71 QVariant headerData(int section, Qt::Orientation orientation,
72 int role) const override;
73 QModelIndex index(int row, int column,
74 const QModelIndex &parent) const override;
75 bool removeRows(int row, int count,
76 const QModelIndex &parent = QModelIndex()) override;
77 Qt::ItemFlags flags(const QModelIndex &index) const override;
80 /* Add an address to the model.
81 Returns the added address on success, and an empty string otherwise.
82 */
83 QString addRow(const QString &type, const QString &label,
84 const QString &address, const OutputType address_type);
85
90 QString labelForAddress(const QString &address) const;
91
96 QString purposeForAddress(const QString &address) const;
97
98 /* Look up row index of an address in the model.
99 Return -1 if not found.
100 */
101 int lookupAddress(const QString &address) const;
102
104
106
107private:
110 QStringList columns;
112
114 bool getAddressData(const QString &address, std::string *name,
115 std::string *purpose) const;
116
118 void emitDataChanged(int index);
119
120public Q_SLOTS:
121 /* Update address list from core.
122 */
123 void updateEntry(const QString &address, const QString &label, bool isMine,
124 const QString &purpose, int status);
125
126 friend class AddressTablePriv;
127};
128
129#endif // BITCOIN_QT_ADDRESSTABLEMODEL_H
Qt model of the address book in the core.
bool removeRows(int row, int count, const QModelIndex &parent=QModelIndex()) override
@ TypeRole
Type of address (Send or Receive)
int lookupAddress(const QString &address) const
AddressTablePriv * priv
OutputType GetDefaultAddressType() const
EditStatus getEditStatus() const
EditStatus
Return status of edit/insert operation.
@ WALLET_UNLOCK_FAILURE
Wallet could not be unlocked to create new receiving address.
@ NO_CHANGES
No changes were made during edit operation.
@ INVALID_ADDRESS
Unparseable address.
@ KEY_GENERATION_FAILURE
Generating a new public key for a receiving address failed.
@ OK
Everything ok.
@ DUPLICATE_ADDRESS
Address already in address book.
void emitDataChanged(int index)
Notify listeners that data changed.
@ Address
Bitcoin address.
@ Label
User specified label.
QVariant data(const QModelIndex &index, int role) const override
QModelIndex index(int row, int column, const QModelIndex &parent) const override
int columnCount(const QModelIndex &parent) const override
bool setData(const QModelIndex &index, const QVariant &value, int role) override
static const QString Send
Specifies send address.
QString addRow(const QString &type, const QString &label, const QString &address, const OutputType address_type)
void updateEntry(const QString &address, const QString &label, bool isMine, const QString &purpose, int status)
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
Qt::ItemFlags flags(const QModelIndex &index) const override
static const QString Receive
Specifies receive address.
int rowCount(const QModelIndex &parent) const override
WalletModel *const walletModel
AddressTableModel(WalletModel *parent=nullptr)
QString purposeForAddress(const QString &address) const
Look up purpose for address in address book, if not found return empty string.
QString labelForAddress(const QString &address) const
Look up label for address in address book, if not found return empty string.
bool getAddressData(const QString &address, std::string *name, std::string *purpose) const
Look up address book data given an address string.
Interface to Bitcoin wallet from Qt view code.
Definition: walletmodel.h:47
OutputType
Definition: outputtype.h:16
const char * name
Definition: rest.cpp:47
static int count
Definition: tests.c:31