Merge pull request #226

abd5c68 Windows: don't allow non-ascii characters in path (Jaquee)
1a610db add isWindows property (Jaquee)
This commit is contained in:
Riccardo Spagni 2016-12-09 00:05:33 +02:00
commit 0c484ea424
No known key found for this signature in database
GPG Key ID: 55432DF31CCD4FCD
4 changed files with 29 additions and 10 deletions

View File

@ -118,12 +118,14 @@ int main(int argc, char *argv[])
// to save the wallet file (.keys, .bin), they have to be user-accessible for
// backups - I reckon we save that in My Documents\Monero Accounts\ on
// Windows, ~/Monero Accounts/ on nix / osx
bool isWindows = false;
#ifdef Q_OS_WIN
isWindows = true;
QStringList moneroAccountsRootDir = QStandardPaths::standardLocations(QStandardPaths::DocumentsLocation);
#elif defined(Q_OS_UNIX)
QStringList moneroAccountsRootDir = QStandardPaths::standardLocations(QStandardPaths::HomeLocation);
#endif
engine.rootContext()->setContextProperty("isWindows", isWindows);
if (!moneroAccountsRootDir.empty()) {
QString moneroAccountsDir = moneroAccountsRootDir.at(0) + "/Monero/wallets";

View File

@ -55,7 +55,7 @@ Item {
settingsObject['words'] = uiItem.wordsTexttext
settingsObject['wallet_path'] = uiItem.walletPath
var walletFullPath = wizard.createWalletPath(uiItem.walletPath,uiItem.accountNameText);
return !wizard.walletExists(walletFullPath);
return wizard.walletPathValid(walletFullPath);
}
function checkNextButton() {

View File

@ -141,12 +141,30 @@ Rectangle {
return folder_path + "/" + account_name + "/" + account_name
}
function walletExists(path){
if(walletManager.walletExists(path)){
walletExistsErrorDialog.open();
return true;
function walletPathValid(path){
if (walletManager.walletExists(path)) {
walletErrorDialog.text = qsTr("A wallet with same name already exists. Please change wallet name") + translationManager.emptyString;
walletErrorDialog.open();
return false;
}
return false;
// Don't allow non ascii characters in path on windows platforms until supported by Wallet2
if (isWindows) {
if (!isAscii(path)) {
walletErrorDialog.text = qsTr("Non-ASCII characters are not allowed in wallet path or account name") + translationManager.emptyString;
walletErrorDialog.open();
return false;
}
}
return true;
}
function isAscii(str){
for (var i = 0; i < str.length; i++) {
if (str.charCodeAt(i) > 127)
return false;
}
return true;
}
//! actually writes the wallet
@ -197,9 +215,8 @@ Rectangle {
}
MessageDialog {
id: walletExistsErrorDialog
id: walletErrorDialog
title: "Error"
text: qsTr("A wallet with same name already exists. Please change wallet name") + translationManager.emptyString
onAccepted: {
}
}

View File

@ -59,7 +59,7 @@ Item {
var restoreHeight = parseInt(uiItem.restoreHeight);
settingsObject['restore_height'] = isNaN(restoreHeight)? 0 : restoreHeight
var walletFullPath = wizard.createWalletPath(uiItem.walletPath,uiItem.accountNameText);
if(wizard.walletExists(walletFullPath)){
if(!wizard.walletPathValid(walletFullPath)){
return false
}
return recoveryWallet(settingsObject)