Skip to content
Permalink
Browse files

device: show address on device display

  • Loading branch information...
ph4r05 committed Jun 17, 2019
1 parent d1e8b6f commit b2542378b2a7dbf699614184ec68581d2e283467
Showing with 39 additions and 0 deletions.
  1. +15 −0 pages/Receive.qml
  2. +19 −0 src/libwalletqt/Wallet.cpp
  3. +5 −0 src/libwalletqt/Wallet.h
@@ -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,
'');
}
}
}
}

@@ -265,6 +265,11 @@ void Wallet::initAsync(const QString &daemonAddress, quint64 upperTransactionLim
watcher->setFuture(future);
}

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
{
@@ -347,6 +352,20 @@ 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)
{
QFuture<void> future = QtConcurrent::run(m_walletImpl, &Monero::Wallet::deviceShowAddress,
accountIndex, addressIndex, paymentId.toStdString());
QFutureWatcher<void> * watcher = new QFutureWatcher<void>();

connect(watcher, &QFutureWatcher<void>::finished,
this, [this, watcher]() {
QFuture<void> future = watcher->future();
watcher->deleteLater();
emit deviceShowAddressShowed();
});
watcher->setFuture(future);
}

void Wallet::refreshHeightAsync() const
{
@@ -177,6 +177,10 @@ class Wallet : public QObject
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;
@@ -348,6 +352,7 @@ class Wallet : public QObject
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);

0 comments on commit b254237

Please sign in to comment.
You can’t perform that action at this time.