From eff31f07d9a21c472a28e4f4173c610e0b4535bd Mon Sep 17 00:00:00 2001 From: "moneromooo.monero" Date: Sat, 24 Dec 2016 16:21:39 +0000 Subject: [PATCH] History: print address book description if available --- components/HistoryTable.qml | 26 ++++++++++++++++++++++++++ pages/History.qml | 5 +++++ src/libwalletqt/AddressBook.cpp | 5 +++++ src/libwalletqt/AddressBook.h | 1 + src/model/AddressBookModel.cpp | 5 +++++ src/model/AddressBookModel.h | 1 + 6 files changed, 43 insertions(+) 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: