aboutsummaryrefslogtreecommitdiff
path: root/src/libwalletqt
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2020-02-19 22:13:53 -0500
committerluigi1111 <luigi1111w@gmail.com>2020-02-19 22:13:53 -0500
commit7c38a836d3cff6a2c7ebb8782cc9d73d01c7b992 (patch)
tree45a037b2fb298bc7e5a6472e5ff455a4edc6a563 /src/libwalletqt
parent07319724991aa391ea27b809583615d7bcfae3f2 (diff)
parentfbfc5310d592a4ccbf0132ab2133fe045cb25ab8 (diff)
downloadmonzero-gui-7c38a836d3cff6a2c7ebb8782cc9d73d01c7b992.tar.gz
monzero-gui-7c38a836d3cff6a2c7ebb8782cc9d73d01c7b992.tar.xz
monzero-gui-7c38a836d3cff6a2c7ebb8782cc9d73d01c7b992.zip
Merge pull request #2775
fbfc531 History: display Address Book names for known destination addresses (xiphon)
Diffstat (limited to 'src/libwalletqt')
-rw-r--r--src/libwalletqt/AddressBook.cpp14
-rw-r--r--src/libwalletqt/AddressBook.h5
-rw-r--r--src/libwalletqt/Wallet.h3
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);