From b5a993bd8a7526bfe43a827261a34f8427e42f1e Mon Sep 17 00:00:00 2001 From: "moneromooo.monero" Date: Sat, 26 Nov 2016 14:46:42 +0000 Subject: [PATCH] Print wallet filename in password dialog where approrpiate --- components/PasswordDialog.qml | 15 ++++++++++++--- main.qml | 4 ++-- src/libwalletqt/Wallet.cpp | 5 +++++ src/libwalletqt/Wallet.h | 4 ++++ 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/components/PasswordDialog.qml b/components/PasswordDialog.qml index 7d1a5bd6..325bf2b3 100644 --- a/components/PasswordDialog.qml +++ b/components/PasswordDialog.qml @@ -40,19 +40,28 @@ Window { modality: Qt.ApplicationModal flags: Qt.Window | Qt.FramelessWindowHint property alias password: passwordInput.text + property string walletName // same signals as Dialog has signal accepted() signal rejected() - function open() { + function open(walletName) { + root.walletName = walletName ? walletName : "" show() } + function usefulName(path) { + // arbitrary "short enough" limit + if (path.length < 32) + return path + return path.replace(/.*[\/\\]/, '').replace(/\.keys$/, '') + } + // TODO: implement without hardcoding sizes width: 480 - height: 200 + height: walletName ? 240 : 200 ColumnLayout { id: mainLayout @@ -65,7 +74,7 @@ Window { Layout.alignment: Qt.AlignHCenter Label { - text: qsTr("Please enter wallet password") + text: root.walletName.length > 0 ? qsTr("Please enter wallet password for:
") + usefulName(root.walletName) : qsTr("Please enter wallet password") Layout.alignment: Qt.AlignHCenter Layout.columnSpan: 2 Layout.fillWidth: true diff --git a/main.qml b/main.qml index 5f28e415..031a4b4a 100644 --- a/main.qml +++ b/main.qml @@ -240,7 +240,7 @@ ApplicationWindow { console.log("closing wallet async : " + wallet.address) walletManager.closeWalletAsync(wallet) // try to open wallet with password; - passwordDialog.open(); + passwordDialog.open(wallet.path); } else { // opening with password but password doesn't match console.error("Error opening wallet with password: ", wallet.errorString); @@ -252,7 +252,7 @@ ApplicationWindow { walletManager.closeWalletAsync(wallet); informationPopup.open() informationPopup.onCloseCallback = function() { - passwordDialog.open() + passwordDialog.open(wallet.path) } } return; diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp index 9170073d..9d814d82 100644 --- a/src/libwalletqt/Wallet.cpp +++ b/src/libwalletqt/Wallet.cpp @@ -112,6 +112,11 @@ QString Wallet::address() const return QString::fromStdString(m_walletImpl->address()); } +QString Wallet::path() const +{ + return QString::fromStdString(m_walletImpl->path()); +} + bool Wallet::store(const QString &path) { return m_walletImpl->store(path.toStdString()); diff --git a/src/libwalletqt/Wallet.h b/src/libwalletqt/Wallet.h index 14308ce5..492080d4 100644 --- a/src/libwalletqt/Wallet.h +++ b/src/libwalletqt/Wallet.h @@ -31,6 +31,7 @@ class Wallet : public QObject Q_PROPERTY(TransactionHistory * history READ history) Q_PROPERTY(QString paymentId READ paymentId WRITE setPaymentId) Q_PROPERTY(TransactionHistorySortFilterModel * historyModel READ historyModel NOTIFY historyModelChanged) + Q_PROPERTY(QString path READ path) public: @@ -78,6 +79,9 @@ public: //! returns wallet's public address QString address() const; + //! returns wallet file's path + QString path() const; + //! saves wallet to the file by given path //! empty path stores in current location Q_INVOKABLE bool store(const QString &path = "");