diff --git a/src/wizard/PageWalletFile.cpp b/src/wizard/PageWalletFile.cpp
index 5bd43295..40a01966 100644
--- a/src/wizard/PageWalletFile.cpp
+++ b/src/wizard/PageWalletFile.cpp
@@ -24,20 +24,25 @@ PageWalletFile::PageWalletFile(WizardFields *fields, QWidget *parent)
connect(ui->btnChange, &QPushButton::clicked, [=] {
QString currentWalletDir = config()->get(Config::walletDirectory).toString();
QString walletDir = QFileDialog::getExistingDirectory(this, "Select wallet directory ", currentWalletDir, QFileDialog::ShowDirsOnly);
- if(walletDir.isEmpty()) return;
+ if (walletDir.isEmpty()) {
+ return;
+ }
ui->line_walletDir->setText(walletDir);
- config()->set(Config::walletDirectory, walletDir);
- emit defaultWalletDirChanged(walletDir);
});
connect(ui->line_walletName, &QLineEdit::textChanged, this, &PageWalletFile::validateWidgets);
- connect(ui->line_walletDir, &QLineEdit::textChanged, this, &PageWalletFile::validateWidgets);
+ connect(ui->line_walletDir, &QLineEdit::textChanged, this, [this](){
+ ui->check_defaultWalletDirectory->setVisible(true);
+ this->validateWidgets();
+ });
}
void PageWalletFile::initializePage() {
this->setTitle(m_fields->modeText);
ui->line_walletDir->setText(config()->get(Config::walletDirectory).toString());
ui->line_walletName->setText(this->defaultWalletName());
+ ui->check_defaultWalletDirectory->setVisible(false);
+ ui->check_defaultWalletDirectory->setChecked(false);
}
bool PageWalletFile::validateWidgets(){
@@ -85,6 +90,12 @@ bool PageWalletFile::validatePage() {
m_fields->walletName = ui->line_walletName->text();
m_fields->walletDir = ui->line_walletDir->text();
+ QString walletDir = ui->line_walletDir->text();
+ bool dirChanged = config()->get(Config::walletDirectory).toString() != walletDir;
+ if (dirChanged && ui->check_defaultWalletDirectory->isChecked()) {
+ config()->set(Config::walletDirectory, walletDir);
+ }
+
return true;
}
diff --git a/src/wizard/PageWalletFile.h b/src/wizard/PageWalletFile.h
index 73ac30fc..198746bb 100644
--- a/src/wizard/PageWalletFile.h
+++ b/src/wizard/PageWalletFile.h
@@ -24,9 +24,6 @@ public:
int nextId() const override;
bool isComplete() const override;
-signals:
- void defaultWalletDirChanged(QString walletDir);
-
private:
QString defaultWalletName();
bool walletPathExists(const QString &walletName);
diff --git a/src/wizard/PageWalletFile.ui b/src/wizard/PageWalletFile.ui
index 84a795e4..c4e2807a 100644
--- a/src/wizard/PageWalletFile.ui
+++ b/src/wizard/PageWalletFile.ui
@@ -6,8 +6,8 @@
0
0
- 486
- 317
+ 849
+ 579
@@ -113,11 +113,19 @@
+ -
+
+
+ Set as default wallet directory
+
+
+
label_9
label
line_walletName
frame
+ check_defaultWalletDirectory
line_walletName
diff --git a/src/wizard/WalletWizard.cpp b/src/wizard/WalletWizard.cpp
index d876b597..f675da8a 100644
--- a/src/wizard/WalletWizard.cpp
+++ b/src/wizard/WalletWizard.cpp
@@ -73,11 +73,6 @@ WalletWizard::WalletWizard(QWidget *parent)
connect(walletSetPasswordPage, &PageSetPassword::createWallet, this, &WalletWizard::onCreateWallet);
-
- connect(createWallet, &PageWalletFile::defaultWalletDirChanged, [this](const QString &walletDir){
- emit defaultWalletDirChanged(walletDir);
- });
-
connect(openWalletPage, &PageOpenWallet::openWallet, [=](const QString &path){
emit openWallet(path, "");
});
diff --git a/src/wizard/WalletWizard.h b/src/wizard/WalletWizard.h
index 4cb2284c..0ff8e03e 100644
--- a/src/wizard/WalletWizard.h
+++ b/src/wizard/WalletWizard.h
@@ -93,7 +93,6 @@ signals:
void initialNetworkConfigured();
void showSettings();
void openWallet(QString path, QString password);
- void defaultWalletDirChanged(QString walletDir);
void createWalletFromDevice(const QString &path, const QString &password, const QString &deviceName, int restoreHeight, const QString &subaddressLookahead);
void createWalletFromKeys(const QString &path, const QString &password, const QString &address, const QString &viewkey, const QString &spendkey, quint64 restoreHeight, const QString subaddressLookahead = "");