aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorxiphon <xiphon@protonmail.com>2020-02-15 12:50:51 +0000
committerxiphon <xiphon@protonmail.com>2020-02-15 15:57:38 +0000
commitfbfc5310d592a4ccbf0132ab2133fe045cb25ab8 (patch)
tree6d1f586c7bab4fd9894aa4116b3eb4b42d7f9299 /src
parenteb7fae92ef0ed01a1d17e56fac217c6450716ccc (diff)
downloadmonzero-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.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);