mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 15:09:59 +01:00
gui: wallet creation detects external signer
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
#include <config/bitcoin-config.h>
|
#include <config/bitcoin-config.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <external_signer.h>
|
||||||
#include <qt/createwalletdialog.h>
|
#include <qt/createwalletdialog.h>
|
||||||
#include <qt/forms/ui_createwalletdialog.h>
|
#include <qt/forms/ui_createwalletdialog.h>
|
||||||
|
|
||||||
@@ -111,6 +112,28 @@ CreateWalletDialog::~CreateWalletDialog()
|
|||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ENABLE_EXTERNAL_SIGNER
|
||||||
|
void CreateWalletDialog::setSigners(std::vector<ExternalSigner>& signers)
|
||||||
|
{
|
||||||
|
if (!signers.empty()) {
|
||||||
|
ui->external_signer_checkbox->setEnabled(true);
|
||||||
|
ui->external_signer_checkbox->setChecked(true);
|
||||||
|
ui->encrypt_wallet_checkbox->setEnabled(false);
|
||||||
|
ui->encrypt_wallet_checkbox->setChecked(false);
|
||||||
|
// The order matters, because connect() is called when toggling a checkbox:
|
||||||
|
ui->blank_wallet_checkbox->setEnabled(false);
|
||||||
|
ui->blank_wallet_checkbox->setChecked(false);
|
||||||
|
ui->disable_privkeys_checkbox->setEnabled(false);
|
||||||
|
ui->disable_privkeys_checkbox->setChecked(true);
|
||||||
|
const std::string label = signers[0].m_name;
|
||||||
|
ui->wallet_name_line_edit->setText(QString::fromStdString(label));
|
||||||
|
ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
|
||||||
|
} else {
|
||||||
|
ui->external_signer_checkbox->setEnabled(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
QString CreateWalletDialog::walletName() const
|
QString CreateWalletDialog::walletName() const
|
||||||
{
|
{
|
||||||
return ui->wallet_name_line_edit->text();
|
return ui->wallet_name_line_edit->text();
|
||||||
|
|||||||
@@ -9,6 +9,10 @@
|
|||||||
|
|
||||||
class WalletModel;
|
class WalletModel;
|
||||||
|
|
||||||
|
#ifdef ENABLE_EXTERNAL_SIGNER
|
||||||
|
class ExternalSigner;
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class CreateWalletDialog;
|
class CreateWalletDialog;
|
||||||
}
|
}
|
||||||
@@ -23,6 +27,10 @@ public:
|
|||||||
explicit CreateWalletDialog(QWidget* parent);
|
explicit CreateWalletDialog(QWidget* parent);
|
||||||
virtual ~CreateWalletDialog();
|
virtual ~CreateWalletDialog();
|
||||||
|
|
||||||
|
#ifdef ENABLE_EXTERNAL_SIGNER
|
||||||
|
void setSigners(std::vector<ExternalSigner>& signers);
|
||||||
|
#endif
|
||||||
|
|
||||||
QString walletName() const;
|
QString walletName() const;
|
||||||
bool isEncryptWalletChecked() const;
|
bool isEncryptWalletChecked() const;
|
||||||
bool isDisablePrivateKeysChecked() const;
|
bool isDisablePrivateKeysChecked() const;
|
||||||
|
|||||||
@@ -291,6 +291,17 @@ void CreateWalletActivity::finish()
|
|||||||
void CreateWalletActivity::create()
|
void CreateWalletActivity::create()
|
||||||
{
|
{
|
||||||
m_create_wallet_dialog = new CreateWalletDialog(m_parent_widget);
|
m_create_wallet_dialog = new CreateWalletDialog(m_parent_widget);
|
||||||
|
|
||||||
|
#ifdef ENABLE_EXTERNAL_SIGNER
|
||||||
|
std::vector<ExternalSigner> signers;
|
||||||
|
try {
|
||||||
|
signers = node().externalSigners();
|
||||||
|
} catch (const std::runtime_error& e) {
|
||||||
|
QMessageBox::critical(nullptr, tr("Can't list signers"), e.what());
|
||||||
|
}
|
||||||
|
m_create_wallet_dialog->setSigners(signers);
|
||||||
|
#endif
|
||||||
|
|
||||||
m_create_wallet_dialog->setWindowModality(Qt::ApplicationModal);
|
m_create_wallet_dialog->setWindowModality(Qt::ApplicationModal);
|
||||||
m_create_wallet_dialog->show();
|
m_create_wallet_dialog->show();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user