diff options
author | furszy <matiasfurszyfer@protonmail.com> | 2023-10-06 10:28:26 -0300 |
---|---|---|
committer | furszy <matiasfurszyfer@protonmail.com> | 2023-10-06 17:20:54 -0300 |
commit | b442580ed2a6173f0cfb86f265887d783dde3ff8 (patch) | |
tree | c25424deca0c267eda673b3101b2674118a777a0 /src/qt | |
parent | 634b68f0dc6b837f774f646188281757c055c78a (diff) |
gui: remove legacy wallet creation
Diffstat (limited to 'src/qt')
-rw-r--r-- | src/qt/bitcoingui.cpp | 27 | ||||
-rw-r--r-- | src/qt/bitcoingui.h | 2 | ||||
-rw-r--r-- | src/qt/createwalletdialog.cpp | 20 | ||||
-rw-r--r-- | src/qt/createwalletdialog.h | 1 | ||||
-rw-r--r-- | src/qt/forms/createwalletdialog.ui | 72 | ||||
-rw-r--r-- | src/qt/walletcontroller.cpp | 5 |
6 files changed, 77 insertions, 50 deletions
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 8a46d46437..171b50d809 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -109,10 +109,7 @@ BitcoinGUI::BitcoinGUI(interfaces::Node& node, const PlatformStyle *_platformSty { /** Create wallet frame and make it the central widget */ walletFrame = new WalletFrame(_platformStyle, this); - connect(walletFrame, &WalletFrame::createWalletButtonClicked, [this] { - auto activity = new CreateWalletActivity(getWalletController(), this); - activity->create(); - }); + connect(walletFrame, &WalletFrame::createWalletButtonClicked, this, &BitcoinGUI::createWallet); connect(walletFrame, &WalletFrame::message, [this](const QString& title, const QString& message, unsigned int style) { this->message(title, message, style); }); @@ -453,12 +450,7 @@ void BitcoinGUI::createActions() connect(m_close_wallet_action, &QAction::triggered, [this] { m_wallet_controller->closeWallet(walletFrame->currentWalletModel(), this); }); - connect(m_create_wallet_action, &QAction::triggered, [this] { - auto activity = new CreateWalletActivity(m_wallet_controller, this); - connect(activity, &CreateWalletActivity::created, this, &BitcoinGUI::setCurrentWallet); - connect(activity, &CreateWalletActivity::created, rpcConsole, &RPCConsole::setCurrentWallet); - activity->create(); - }); + connect(m_create_wallet_action, &QAction::triggered, this, &BitcoinGUI::createWallet); connect(m_close_all_wallets_action, &QAction::triggered, [this] { m_wallet_controller->closeAllWallets(this); }); @@ -1191,6 +1183,21 @@ void BitcoinGUI::setNumBlocks(int count, const QDateTime& blockDate, double nVer progressBar->setToolTip(tooltip); } +void BitcoinGUI::createWallet() +{ +#ifdef ENABLE_WALLET +#ifndef USE_SQLITE + // Compiled without sqlite support (required for descriptor wallets) + message(tr("Error creating wallet"), tr("Cannot create new wallet, the software was compiled without sqlite support (required for descriptor wallets)"), CClientUIInterface::MSG_ERROR); + return; +#endif // USE_SQLITE + auto activity = new CreateWalletActivity(getWalletController(), this); + connect(activity, &CreateWalletActivity::created, this, &BitcoinGUI::setCurrentWallet); + connect(activity, &CreateWalletActivity::created, rpcConsole, &RPCConsole::setCurrentWallet); + activity->create(); +#endif // ENABLE_WALLET +} + void BitcoinGUI::message(const QString& title, QString message, unsigned int style, bool* ret, const QString& detailed_message) { // Default title. On macOS, the window title is ignored (as required by the macOS Guidelines). diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h index 510561454b..6fdc4c60d8 100644 --- a/src/qt/bitcoingui.h +++ b/src/qt/bitcoingui.h @@ -230,6 +230,8 @@ public Q_SLOTS: void setNetworkActive(bool network_active); /** Set number of blocks and last block date shown in the UI */ void setNumBlocks(int count, const QDateTime& blockDate, double nVerificationProgress, SyncType synctype, SynchronizationState sync_state); + /** Launch the wallet creation modal (no-op if wallet is not compiled) **/ + void createWallet(); /** Notify the user of an event from the core network or transaction handling code. @param[in] title the message box / notification title diff --git a/src/qt/createwalletdialog.cpp b/src/qt/createwalletdialog.cpp index 3e8be3e675..6557280d89 100644 --- a/src/qt/createwalletdialog.cpp +++ b/src/qt/createwalletdialog.cpp @@ -50,12 +50,10 @@ CreateWalletDialog::CreateWalletDialog(QWidget* parent) : ui->encrypt_wallet_checkbox->setEnabled(!checked); ui->blank_wallet_checkbox->setEnabled(!checked); ui->disable_privkeys_checkbox->setEnabled(!checked); - ui->descriptor_checkbox->setEnabled(!checked); // The external signer checkbox is only enabled when a device is detected. // In that case it is checked by default. Toggling it restores the other // options to their default. - ui->descriptor_checkbox->setChecked(checked); ui->encrypt_wallet_checkbox->setChecked(false); ui->disable_privkeys_checkbox->setChecked(checked); ui->blank_wallet_checkbox->setChecked(false); @@ -87,19 +85,6 @@ CreateWalletDialog::CreateWalletDialog(QWidget* parent) : } }); -#ifndef USE_SQLITE - ui->descriptor_checkbox->setToolTip(tr("Compiled without sqlite support (required for descriptor wallets)")); - ui->descriptor_checkbox->setEnabled(false); - ui->descriptor_checkbox->setChecked(false); - ui->external_signer_checkbox->setEnabled(false); - ui->external_signer_checkbox->setChecked(false); -#endif - -#ifndef USE_BDB - ui->descriptor_checkbox->setEnabled(false); - ui->descriptor_checkbox->setChecked(true); -#endif - #ifndef ENABLE_EXTERNAL_SIGNER //: "External signing" means using devices such as hardware wallets. ui->external_signer_checkbox->setToolTip(tr("Compiled without external signing support (required for external signing)")); @@ -155,11 +140,6 @@ bool CreateWalletDialog::isMakeBlankWalletChecked() const return ui->blank_wallet_checkbox->isChecked(); } -bool CreateWalletDialog::isDescriptorWalletChecked() const -{ - return ui->descriptor_checkbox->isChecked(); -} - bool CreateWalletDialog::isExternalSignerChecked() const { return ui->external_signer_checkbox->isChecked(); diff --git a/src/qt/createwalletdialog.h b/src/qt/createwalletdialog.h index 939b82ff78..24ee97385b 100644 --- a/src/qt/createwalletdialog.h +++ b/src/qt/createwalletdialog.h @@ -35,7 +35,6 @@ public: bool isEncryptWalletChecked() const; bool isDisablePrivateKeysChecked() const; bool isMakeBlankWalletChecked() const; - bool isDescriptorWalletChecked() const; bool isExternalSignerChecked() const; private: diff --git a/src/qt/forms/createwalletdialog.ui b/src/qt/forms/createwalletdialog.ui index 56adbe17a5..1d6f0ed530 100644 --- a/src/qt/forms/createwalletdialog.ui +++ b/src/qt/forms/createwalletdialog.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>364</width> - <height>249</height> + <width>371</width> + <height>298</height> </rect> </property> <property name="windowTitle"> @@ -18,6 +18,48 @@ </property> <layout class="QVBoxLayout" name="verticalLayout"> <item> + <widget class="QLabel" name="label_description"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>You are one step away from creating your new wallet!</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_subdescription"> + <property name="text"> + <string>Please provide a name and, if desired, enable any advanced options</string> + </property> + </widget> + </item> + <item> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>3</height> + </size> + </property> + </spacer> + </item> + <item> <layout class="QHBoxLayout" name="horizontalLayout"> <item> <widget class="QLabel" name="wallet_name_label"> @@ -75,7 +117,19 @@ <property name="title"> <string>Advanced Options</string> </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + <property name="flat"> + <bool>false</bool> + </property> + <property name="checkable"> + <bool>false</bool> + </property> <layout class="QVBoxLayout" name="verticalLayout_groupbox"> + <property name="spacing"> + <number>9</number> + </property> <item> <widget class="QCheckBox" name="disable_privkeys_checkbox"> <property name="enabled"> @@ -100,19 +154,6 @@ </widget> </item> <item> - <widget class="QCheckBox" name="descriptor_checkbox"> - <property name="toolTip"> - <string>Use descriptors for scriptPubKey management</string> - </property> - <property name="text"> - <string>Descriptor Wallet</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - </item> - <item> <widget class="QCheckBox" name="external_signer_checkbox"> <property name="toolTip"> <string>Use an external signing device such as a hardware wallet. Configure the external signer script in wallet preferences first.</string> @@ -155,7 +196,6 @@ <tabstop>encrypt_wallet_checkbox</tabstop> <tabstop>disable_privkeys_checkbox</tabstop> <tabstop>blank_wallet_checkbox</tabstop> - <tabstop>descriptor_checkbox</tabstop> <tabstop>external_signer_checkbox</tabstop> </tabstops> <resources/> diff --git a/src/qt/walletcontroller.cpp b/src/qt/walletcontroller.cpp index ca2fa2d672..b1ef489cc3 100644 --- a/src/qt/walletcontroller.cpp +++ b/src/qt/walletcontroller.cpp @@ -250,15 +250,14 @@ void CreateWalletActivity::createWallet() std::string name = m_create_wallet_dialog->walletName().toStdString(); uint64_t flags = 0; + // Enable descriptors by default. + flags |= WALLET_FLAG_DESCRIPTORS; if (m_create_wallet_dialog->isDisablePrivateKeysChecked()) { flags |= WALLET_FLAG_DISABLE_PRIVATE_KEYS; } if (m_create_wallet_dialog->isMakeBlankWalletChecked()) { flags |= WALLET_FLAG_BLANK_WALLET; } - if (m_create_wallet_dialog->isDescriptorWalletChecked()) { - flags |= WALLET_FLAG_DESCRIPTORS; - } if (m_create_wallet_dialog->isExternalSignerChecked()) { flags |= WALLET_FLAG_EXTERNAL_SIGNER; } |