diff --git a/src/libwalletqt/AddressBook.cpp b/src/libwalletqt/AddressBook.cpp index 3f4fd85f..9e9efe0d 100644 --- a/src/libwalletqt/AddressBook.cpp +++ b/src/libwalletqt/AddressBook.cpp @@ -4,7 +4,7 @@ #include "AddressBook.h" #include -AddressBook::AddressBook(Monero::AddressBook *abImpl,QObject *parent) +AddressBook::AddressBook(Monero::AddressBook *abImpl, QObject *parent) : QObject(parent), m_addressBookImpl(abImpl) { getAll(); @@ -127,3 +127,16 @@ QString AddressBook::getDescription(const QString &address) const } return m_rows.value(*it)->description(); } + +QString AddressBook::getAddress(const QString &description) const +{ + QReadLocker locker(&m_lock); + + for (const auto &row : m_rows) { + if (row->description() == description) { + return row->address(); + } + } + + return QString(); +} \ No newline at end of file diff --git a/src/libwalletqt/AddressBook.h b/src/libwalletqt/AddressBook.h index 6b88704f..d94f9383 100644 --- a/src/libwalletqt/AddressBook.h +++ b/src/libwalletqt/AddressBook.h @@ -29,6 +29,7 @@ public: Q_INVOKABLE QString errorString() const; Q_INVOKABLE int errorCode() const; Q_INVOKABLE QString getDescription(const QString &address) const; + Q_INVOKABLE QString getAddress(const QString &description) const; enum ErrorCode { Status_Ok, @@ -47,9 +48,6 @@ signals: void refreshFinished() const; void descriptionChanged() const; - -public slots: - private: explicit AddressBook(Monero::AddressBook * abImpl, QObject *parent); friend class Wallet;