1
mirror of https://github.com/monero-project/monero-gui synced 2024-12-21 03:45:53 +01:00

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

View File

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

View File

@ -114,5 +114,6 @@
<file>pages/Receive.qml</file> <file>pages/Receive.qml</file>
<file>components/IconButton.qml</file> <file>components/IconButton.qml</file>
<file>lang/flags/italy.png</file> <file>lang/flags/italy.png</file>
<file>components/PasswordDialog.qml</file>
</qresource> </qresource>
</RCC> </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() { function openCreateWalletPage() {
@ -126,10 +108,9 @@ Rectangle {
//! actually writes the wallet //! actually writes the wallet
function applySettings() { 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 // 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 + "/" var new_wallet_filename = settings.wallet_path + "/"
+ settings.account_name + "/" + settings.account_name + "/"
+ settings.account_name; + settings.account_name;
@ -138,9 +119,12 @@ Rectangle {
if (new_wallet_filename !== settings.wallet_filename) { if (new_wallet_filename !== settings.wallet_filename) {
// using previously saved wallet; // using previously saved wallet;
settings.wallet.store(new_wallet_filename); 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; // saving wallet_filename;
settings['wallet_filename'] = new_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 { Rectangle {
id: nextButton id: nextButton
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter