aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDusan Klinec <dusan.klinec@gmail.com>2019-06-17 17:14:13 +0200
committerDusan Klinec <dusan.klinec@gmail.com>2019-07-15 17:54:50 +0200
commit2d72f55e57ace903d705cf617f305f366cf5665e (patch)
treedbfab7ca5cbdff6eda96c3c74b614b9c954623b4
parent702b654f09785d7aacd0794293947a09d611c5ad (diff)
downloadmonzero-gui-2d72f55e57ace903d705cf617f305f366cf5665e.tar.gz
monzero-gui-2d72f55e57ace903d705cf617f305f366cf5665e.tar.xz
monzero-gui-2d72f55e57ace903d705cf617f305f366cf5665e.zip
device: show address on device display
-rw-r--r--pages/Receive.qml15
-rw-r--r--src/libwalletqt/Wallet.cpp12
-rw-r--r--src/libwalletqt/Wallet.h5
3 files changed, 32 insertions, 0 deletions
diff --git a/pages/Receive.qml b/pages/Receive.qml
index 630690ae..83515643 100644
--- a/pages/Receive.qml
+++ b/pages/Receive.qml
@@ -31,6 +31,7 @@ import QtQuick.Controls 2.0
import QtQuick.Controls.Styles 1.4
import QtQuick.Layouts 1.1
import QtQuick.Dialogs 1.2
+import FontAwesome 1.0
import "../components" as MoneroComponents
import "../components/effects/" as MoneroEffects
@@ -308,6 +309,20 @@ Rectangle {
appWindow.showStatusMessage(qsTr("Copied to clipboard") + translationManager.emptyString, 3);
}
}
+
+ MoneroComponents.StandardButton {
+ text: FontAwesome.eye
+ label.font.family: FontAwesome.fontFamily
+ fontSize: 24
+ width: 36
+ visible: appWindow.currentWallet && appWindow.currentWallet.isHwBacked()
+ onClicked: {
+ appWindow.currentWallet.deviceShowAddressAsync(
+ appWindow.currentWallet.currentSubaddressAccount,
+ appWindow.current_subaddress_table_index,
+ '');
+ }
+ }
}
}
diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp
index 46f843de..9cafd98c 100644
--- a/src/libwalletqt/Wallet.cpp
+++ b/src/libwalletqt/Wallet.cpp
@@ -253,6 +253,11 @@ void Wallet::initAsync(const QString &daemonAddress, quint64 upperTransactionLim
});
}
+bool Wallet::isHwBacked() const
+{
+ return m_walletImpl->getDeviceType() != Monero::Wallet::Device_Software;
+}
+
//! create a view only wallet
bool Wallet::createViewOnly(const QString &path, const QString &password) const
{
@@ -335,6 +340,13 @@ void Wallet::setSubaddressLabel(quint32 accountIndex, quint32 addressIndex, cons
{
m_walletImpl->setSubaddressLabel(accountIndex, addressIndex, label.toStdString());
}
+void Wallet::deviceShowAddressAsync(quint32 accountIndex, quint32 addressIndex, const QString &paymentId)
+{
+ m_scheduler.run([this, accountIndex, addressIndex, paymentId] {
+ m_walletImpl->deviceShowAddress(accountIndex, addressIndex, paymentId.toStdString());
+ emit deviceShowAddressShowed();
+ });
+}
void Wallet::refreshHeightAsync()
{
diff --git a/src/libwalletqt/Wallet.h b/src/libwalletqt/Wallet.h
index 95d4a954..2469b2f2 100644
--- a/src/libwalletqt/Wallet.h
+++ b/src/libwalletqt/Wallet.h
@@ -179,6 +179,10 @@ public:
Q_INVOKABLE void addSubaddress(const QString& label);
Q_INVOKABLE QString getSubaddressLabel(quint32 accountIndex, quint32 addressIndex) const;
Q_INVOKABLE void setSubaddressLabel(quint32 accountIndex, quint32 addressIndex, const QString &label);
+ Q_INVOKABLE void deviceShowAddressAsync(quint32 accountIndex, quint32 addressIndex, const QString &paymentId);
+
+ //! hw-device backed wallets
+ Q_INVOKABLE bool isHwBacked() const;
//! returns if view only wallet
Q_INVOKABLE bool viewOnly() const;
@@ -353,6 +357,7 @@ signals:
void deviceButtonPressed();
void transactionCommitted(bool status, PendingTransaction *t, QStringList txid);
void heightRefreshed(quint64 walletHeight, quint64 daemonHeight, quint64 targetHeight) const;
+ void deviceShowAddressShowed();
// emitted when transaction is created async
void transactionCreated(PendingTransaction * transaction, QString address, QString paymentId, quint32 mixinCount);