]> Nutra Git (v1) - gamesguru/feather.git/commitdiff
wizard: add toggle to change wallet dir
authortobtoht <tob@featherwallet.org>
Tue, 14 Mar 2023 13:35:10 +0000 (14:35 +0100)
committertobtoht <tob@featherwallet.org>
Tue, 14 Mar 2023 13:35:28 +0000 (14:35 +0100)
src/wizard/PageWalletFile.cpp
src/wizard/PageWalletFile.h
src/wizard/PageWalletFile.ui
src/wizard/WalletWizard.cpp
src/wizard/WalletWizard.h

index 5bd43295c01ab9fa20e55a6ea81d752092eed234..40a019669f97de310b684797e294895d771099c4 100644 (file)
@@ -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;
 }
 
index 73ac30fcc54493ad04ba9a1c2c0b92fc9f5cd818..198746bb3620fa351fe9484d5d300525c7a9a58a 100644 (file)
@@ -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);
index 84a795e4d2d1152eb7ecaf2c7ed670a875dc9c8f..c4e2807a4b4145680a8d8231d99ad0b6d08dcf70 100644 (file)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>486</width>
-    <height>317</height>
+    <width>849</width>
+    <height>579</height>
    </rect>
   </property>
   <property name="windowTitle">
      </property>
     </spacer>
    </item>
+   <item row="6" column="0">
+    <widget class="QCheckBox" name="check_defaultWalletDirectory">
+     <property name="text">
+      <string>Set as default wallet directory</string>
+     </property>
+    </widget>
+   </item>
   </layout>
   <zorder>label_9</zorder>
   <zorder>label</zorder>
   <zorder>line_walletName</zorder>
   <zorder>frame</zorder>
+  <zorder>check_defaultWalletDirectory</zorder>
  </widget>
  <tabstops>
   <tabstop>line_walletName</tabstop>
index d876b597d0cb7f1bacd2763a42c48f6442488abd..f675da8a5a7498605019283b8d1de587f2e732bd 100644 (file)
@@ -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, "");
     });
index 4cb2284c7b11a5406a6495053950adaec162eb74..0ff8e03e12d9ce8e9bc687e4593fcb1f6f5a3a7f 100644 (file)
@@ -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 = "");