diff options
| author | xiphon <xiphon@protonmail.com> | 2020-02-15 12:50:51 +0000 |
|---|---|---|
| committer | xiphon <xiphon@protonmail.com> | 2020-02-15 15:57:38 +0000 |
| commit | fbfc5310d592a4ccbf0132ab2133fe045cb25ab8 (patch) | |
| tree | 6d1f586c7bab4fd9894aa4116b3eb4b42d7f9299 /src | |
| parent | eb7fae92ef0ed01a1d17e56fac217c6450716ccc (diff) | |
| download | monzero-gui-fbfc5310d592a4ccbf0132ab2133fe045cb25ab8.tar.gz monzero-gui-fbfc5310d592a4ccbf0132ab2133fe045cb25ab8.tar.xz monzero-gui-fbfc5310d592a4ccbf0132ab2133fe045cb25ab8.zip | |
History: display Address Book names for known destination addresses
Diffstat (limited to 'src')
| -rw-r--r-- | src/libwalletqt/AddressBook.cpp | 14 | ||||
| -rw-r--r-- | src/libwalletqt/AddressBook.h | 5 | ||||
| -rw-r--r-- | src/libwalletqt/Wallet.h | 3 |
3 files changed, 20 insertions, 2 deletions
diff --git a/src/libwalletqt/AddressBook.cpp b/src/libwalletqt/AddressBook.cpp index d51fecc0..4856e6fd 100644 --- a/src/libwalletqt/AddressBook.cpp +++ b/src/libwalletqt/AddressBook.cpp @@ -55,8 +55,10 @@ void AddressBook::getAll() { QWriteLocker locker(&m_lock); + m_addresses.clear(); m_rows.clear(); for (auto &abr: m_addressBookImpl->getAll()) { + m_addresses.insert(QString::fromStdString(abr->getAddress()), m_rows.size()); m_rows.append(abr); } } @@ -128,3 +130,15 @@ int AddressBook::lookupPaymentID(const QString &payment_id) const return m_addressBookImpl->lookupPaymentID(payment_id.toStdString()); } + +QString AddressBook::getDescription(const QString &address) const +{ + QReadLocker locker(&m_lock); + + const QMap<QString, size_t>::const_iterator it = m_addresses.find(address); + if (it == m_addresses.end()) + { + return {}; + } + return QString::fromStdString(m_rows.value(*it)->getDescription()); +} diff --git a/src/libwalletqt/AddressBook.h b/src/libwalletqt/AddressBook.h index 1d9309b3..1888b993 100644 --- a/src/libwalletqt/AddressBook.h +++ b/src/libwalletqt/AddressBook.h @@ -30,6 +30,7 @@ #define ADDRESSBOOK_H #include <wallet/api/wallet2_api.h> +#include <QMap> #include <QObject> #include <QReadWriteLock> #include <QList> @@ -51,6 +52,7 @@ public: Q_INVOKABLE QString errorString() const; Q_INVOKABLE int errorCode() const; Q_INVOKABLE int lookupPaymentID(const QString &payment_id) const; + Q_INVOKABLE QString getDescription(const QString &address) const; enum ErrorCode { Status_Ok, @@ -76,7 +78,8 @@ private: friend class Wallet; Monero::AddressBook * m_addressBookImpl; mutable QReadWriteLock m_lock; - mutable QList<Monero::AddressBookRow*> m_rows; + QList<Monero::AddressBookRow*> m_rows; + QMap<QString, size_t> m_addresses; }; #endif // ADDRESSBOOK_H diff --git a/src/libwalletqt/Wallet.h b/src/libwalletqt/Wallet.h index 2646da30..f1568e59 100644 --- a/src/libwalletqt/Wallet.h +++ b/src/libwalletqt/Wallet.h @@ -74,7 +74,7 @@ class Wallet : public QObject Q_PROPERTY(TransactionHistorySortFilterModel * historyModel READ historyModel NOTIFY historyModelChanged) Q_PROPERTY(QString path READ path) Q_PROPERTY(AddressBookModel * addressBookModel READ addressBookModel) - Q_PROPERTY(AddressBook * addressBook READ addressBook) + Q_PROPERTY(AddressBook * addressBook READ addressBook NOTIFY addressBookChanged) Q_PROPERTY(SubaddressModel * subaddressModel READ subaddressModel) Q_PROPERTY(Subaddress * subaddress READ subaddress) Q_PROPERTY(SubaddressAccountModel * subaddressAccountModel READ subaddressAccountModel) @@ -357,6 +357,7 @@ signals: void moneyReceived(const QString &txId, quint64 amount); void unconfirmedMoneyReceived(const QString &txId, quint64 amount); void newBlock(quint64 height, quint64 targetHeight); + void addressBookChanged() const; void historyModelChanged() const; void walletCreationHeightChanged(); void deviceButtonRequest(quint64 buttonCode); |
