ask user for the password if wallet is password-protected

This commit is contained in:
Ilya Kitaev 2016-08-16 23:21:46 +03:00
parent fc7a7ddf25
commit 6f1343aaa0
5 changed files with 49 additions and 41 deletions

View File

@ -0,0 +1,5 @@
import QtQuick 2.0
Item {
}

View File

@ -139,19 +139,18 @@ ApplicationWindow {
if (typeof wizard.settings['wallet'] !== 'undefined') {
wallet = wizard.settings['wallet'];
} else {
var wallet_path = persistentSettings.wallet_path + "/" + persistentSettings.account_name + "/"
+ persistentSettings.account_name;
var wallet_path = walletPath();
console.log("opening wallet at: ", wallet_path);
// TODO: wallet password dialog
wallet = walletManager.openWallet(wallet_path, "", persistentSettings.testnet);
if (wallet.status !== Wallet.Status_Ok) {
console.log("Error opening wallet: ", wallet.errorString);
informationPopup.title = qsTr("Error") + translationManager.emptyString;
informationPopup.text = qsTr("Couldn't open wallet: ") + wallet.errorString;
informationPopup.icon = StandardIcon.Critical
informationPopup.open()
console.error("Error opening wallet with empty password: ", wallet.errorString);
// try to open wallet with password;
passwordDialog.open();
return;
}
console.log("Wallet opened successfully: ", wallet.errorString);
@ -165,6 +164,13 @@ ApplicationWindow {
}
function walletPath() {
var wallet_path = persistentSettings.wallet_path + "/" + persistentSettings.account_name + "/"
+ persistentSettings.account_name;
return wallet_path;
}
function onWalletUpdate() {
console.log(">>> wallet updated")
basicPanel.unlockedBalanceText = leftPanel.unlockedBalanceText = walletManager.displayAmount(wallet.unlockedBalance);
@ -291,6 +297,7 @@ ApplicationWindow {
// Information dialog
MessageDialog {
id: informationPopup
standardButtons: StandardButton.Ok
}
@ -303,6 +310,25 @@ ApplicationWindow {
}
}
PasswordDialog {
id: passwordDialog
standardButtons: StandardButton.Ok + StandardButton.Cancel
onAccepted: {
var wallet_path = walletPath();
console.log("opening wallet with password: ", wallet_path);
wallet = walletManager.openWallet(wallet_path, password, persistentSettings.testnet);
if (wallet.status !== Wallet.Status_Ok) {
console.error("Error opening wallet with password: ", wallet.errorString);
informationPopup.title = qsTr("Error") + translationManager.emptyString;
informationPopup.text = qsTr("Couldn't open wallet: ") + wallet.errorString;
informationPopup.icon = StandardIcon.Critical
informationPopup.open()
}
}
}
Window {
id: walletInitializationSplash
modality: Qt.ApplicationModal

View File

@ -155,6 +155,8 @@ langrel.CONFIG += no_link
QMAKE_EXTRA_TARGETS += langupd deploy deploy_win
QMAKE_EXTRA_COMPILERS += langrel
PRE_TARGETDEPS += langupd compiler_langrel_make_all
RESOURCES += qml.qrc
@ -180,7 +182,8 @@ OTHER_FILES += \
$$TRANSLATIONS
DISTFILES += \
notes.txt
notes.txt \
components/PasswordDialog.qml
# windows application icon
RC_FILE = monero-core.rc

View File

@ -114,5 +114,6 @@
<file>pages/Receive.qml</file>
<file>components/IconButton.qml</file>
<file>lang/flags/italy.png</file>
<file>components/PasswordDialog.qml</file>
</qresource>
</RCC>

View File

@ -78,24 +78,6 @@ Rectangle {
}
}
// TODO: remove it
function handlePageChanged() {
// switch (pages[currentPage]) {
//// case finishPage:
//// // display settings summary
//// finishPage.updateSettingsSummary();
//// nextButton.visible = false;
//// break;
// case recoveryWalletPage:
// // disable "next button" until 25 words private key entered
// nextButton.enabled = false
// break
// default:
// nextButton.enabled = true
// }
}
function openCreateWalletPage() {
@ -126,10 +108,9 @@ Rectangle {
//! actually writes the wallet
function applySettings() {
print ("Here we apply the settings");
console.log("Here we apply the settings");
// here we need to actually move wallet to the new location
// put wallet files to the subdirectory with the same name as
// wallet name
var new_wallet_filename = settings.wallet_path + "/"
+ settings.account_name + "/"
+ settings.account_name;
@ -138,9 +119,12 @@ Rectangle {
if (new_wallet_filename !== settings.wallet_filename) {
// using previously saved wallet;
settings.wallet.store(new_wallet_filename);
//walletManager.moveWallet(settingsObject.wallet_filename, new_wallet_filename);
}
// protecting wallet with password
console.log("Protecting wallet with password: " + settings.wallet_password)
settings.wallet.setPassword(settings.wallet_password);
// saving wallet_filename;
settings['wallet_filename'] = new_wallet_filename;
@ -163,17 +147,6 @@ Rectangle {
}
// Settings {
// id: persistentSettings
// property string language
// property string account_name
// property string wallet_path
// property bool auto_donations_enabled : true
// property int auto_donations_amount : 50
// property bool allow_background_mining : true
// }
Rectangle {
id: nextButton
anchors.verticalCenter: parent.verticalCenter