diff --git a/components/HistoryTable.qml b/components/HistoryTable.qml
index 5bf2a3c8..c11fbd0e 100644
--- a/components/HistoryTable.qml
+++ b/components/HistoryTable.qml
@@ -28,6 +28,7 @@
import QtQuick 2.0
import moneroComponents.Clipboard 1.0
+import moneroComponents.AddressBookModel 1.0
ListView {
@@ -36,6 +37,7 @@ ListView {
boundsBehavior: ListView.StopAtBounds
property var previousItem
property int rowSpacing: 12
+ property var addressBookModel: null
function buildTxDetailsString(tx_id, paymentId, tx_key,tx_note, destinations) {
var trStart = '
',
@@ -52,6 +54,15 @@ ListView {
+ translationManager.emptyString;
}
+ function lookupPaymentID(paymentId) {
+ if (!addressBookModel)
+ return ""
+ var idx = addressBookModel.lookupPaymentID(paymentId)
+ if (idx < 0)
+ return ""
+ idx = addressBookModel.index(idx, 0)
+ return addressBookModel.data(idx, AddressBookModel.AddressBookDescriptionRole)
+ }
footer: Rectangle {
@@ -207,6 +218,21 @@ ListView {
text: paymentId
}
+ // Address book lookup
+ TextEdit {
+ readOnly: true
+ selectByMouse: true
+ id: addressBookLookupValue
+ width: 136
+ anchors.bottom: parent.bottom
+ //elide: Text.ElideRight
+ font.family: "Arial"
+ font.pixelSize:13
+ font.letterSpacing: -1
+ color: "#545454"
+ text: "(" + lookupPaymentID(paymentId) + ")"
+ visible: text !== "()"
+ }
}
Row {
// block height row
diff --git a/pages/History.qml b/pages/History.qml
index 5e1be50c..b1c99076 100644
--- a/pages/History.qml
+++ b/pages/History.qml
@@ -540,6 +540,11 @@ Rectangle {
anchors.rightMargin: 14
onContentYChanged: flickableScroll.flickableContentYChanged()
model: root.model
+ addressBookModel: null
}
}
+
+ function onPageCompleted() {
+ table.addressBookModel = appWindow.currentWallet ? appWindow.currentWallet.addressBookModel : null
+ }
}
diff --git a/src/libwalletqt/AddressBook.cpp b/src/libwalletqt/AddressBook.cpp
index 3535bb67..8443d774 100644
--- a/src/libwalletqt/AddressBook.cpp
+++ b/src/libwalletqt/AddressBook.cpp
@@ -68,3 +68,8 @@ quint64 AddressBook::count() const
{
return m_rows.size();
}
+
+int AddressBook::lookupPaymentID(const QString &payment_id) const
+{
+ return m_addressBookImpl->lookupPaymentID(payment_id.toStdString());
+}
diff --git a/src/libwalletqt/AddressBook.h b/src/libwalletqt/AddressBook.h
index 7a1f2da8..3738f0e9 100644
--- a/src/libwalletqt/AddressBook.h
+++ b/src/libwalletqt/AddressBook.h
@@ -22,6 +22,7 @@ public:
quint64 count() const;
Q_INVOKABLE QString errorString() const;
Q_INVOKABLE int errorCode() const;
+ Q_INVOKABLE int lookupPaymentID(const QString &payment_id) const;
enum ErrorCode {
Status_Ok,
diff --git a/src/model/AddressBookModel.cpp b/src/model/AddressBookModel.cpp
index 7ec0074b..c022ce98 100644
--- a/src/model/AddressBookModel.cpp
+++ b/src/model/AddressBookModel.cpp
@@ -63,6 +63,11 @@ bool AddressBookModel::deleteRow(int row)
m_addressBook->deleteRow(row);
}
+int AddressBookModel::lookupPaymentID(const QString &payment_id) const
+{
+ return m_addressBook->lookupPaymentID(payment_id);
+}
+
QHash AddressBookModel::roleNames() const
{
QHash roleNames = QAbstractListModel::roleNames();
diff --git a/src/model/AddressBookModel.h b/src/model/AddressBookModel.h
index b239bd65..ced0a9e3 100644
--- a/src/model/AddressBookModel.h
+++ b/src/model/AddressBookModel.h
@@ -24,6 +24,7 @@ public:
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
Q_INVOKABLE bool deleteRow(int row);
+ Q_INVOKABLE int lookupPaymentID(const QString &payment_id) const;
virtual QHash roleNames() const override;
public slots:
|