mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-25 10:43:19 -03:00
Fix RPCConsole wallet selection
If a user opens multiple wallets in the GUI from the menu bar, the last one opened is the active one in the main window. However, For the RPC Console window, the _first_ one opened is active. This can be confusing, as wallet RPC commands may be sent to a wallet the user didn't intend. This commit makes the RPC Console switch to the wallet opened from the menu bar.
This commit is contained in:
parent
b264410e01
commit
99c0eb9701
3 changed files with 13 additions and 0 deletions
|
@ -411,6 +411,7 @@ void BitcoinGUI::createActions()
|
||||||
connect(action, &QAction::triggered, [this, path] {
|
connect(action, &QAction::triggered, [this, path] {
|
||||||
auto activity = new OpenWalletActivity(m_wallet_controller, this);
|
auto activity = new OpenWalletActivity(m_wallet_controller, this);
|
||||||
connect(activity, &OpenWalletActivity::opened, this, &BitcoinGUI::setCurrentWallet, Qt::QueuedConnection);
|
connect(activity, &OpenWalletActivity::opened, this, &BitcoinGUI::setCurrentWallet, Qt::QueuedConnection);
|
||||||
|
connect(activity, &OpenWalletActivity::opened, rpcConsole, &RPCConsole::setCurrentWallet, Qt::QueuedConnection);
|
||||||
activity->open(path);
|
activity->open(path);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -440,6 +441,7 @@ void BitcoinGUI::createActions()
|
||||||
|
|
||||||
auto activity = new RestoreWalletActivity(m_wallet_controller, this);
|
auto activity = new RestoreWalletActivity(m_wallet_controller, this);
|
||||||
connect(activity, &RestoreWalletActivity::restored, this, &BitcoinGUI::setCurrentWallet, Qt::QueuedConnection);
|
connect(activity, &RestoreWalletActivity::restored, this, &BitcoinGUI::setCurrentWallet, Qt::QueuedConnection);
|
||||||
|
connect(activity, &RestoreWalletActivity::restored, rpcConsole, &RPCConsole::setCurrentWallet, Qt::QueuedConnection);
|
||||||
|
|
||||||
auto backup_file_path = fs::PathFromString(backup_file.toStdString());
|
auto backup_file_path = fs::PathFromString(backup_file.toStdString());
|
||||||
activity->restore(backup_file_path, wallet_name.toStdString());
|
activity->restore(backup_file_path, wallet_name.toStdString());
|
||||||
|
@ -450,6 +452,7 @@ void BitcoinGUI::createActions()
|
||||||
connect(m_create_wallet_action, &QAction::triggered, [this] {
|
connect(m_create_wallet_action, &QAction::triggered, [this] {
|
||||||
auto activity = new CreateWalletActivity(m_wallet_controller, this);
|
auto activity = new CreateWalletActivity(m_wallet_controller, this);
|
||||||
connect(activity, &CreateWalletActivity::created, this, &BitcoinGUI::setCurrentWallet);
|
connect(activity, &CreateWalletActivity::created, this, &BitcoinGUI::setCurrentWallet);
|
||||||
|
connect(activity, &CreateWalletActivity::created, rpcConsole, &RPCConsole::setCurrentWallet);
|
||||||
activity->create();
|
activity->create();
|
||||||
});
|
});
|
||||||
connect(m_close_all_wallets_action, &QAction::triggered, [this] {
|
connect(m_close_all_wallets_action, &QAction::triggered, [this] {
|
||||||
|
|
|
@ -798,6 +798,12 @@ void RPCConsole::removeWallet(WalletModel * const walletModel)
|
||||||
ui->WalletSelectorLabel->setVisible(false);
|
ui->WalletSelectorLabel->setVisible(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RPCConsole::setCurrentWallet(WalletModel* const wallet_model)
|
||||||
|
{
|
||||||
|
QVariant data = QVariant::fromValue(wallet_model);
|
||||||
|
ui->WalletSelector->setCurrentIndex(ui->WalletSelector->findData(data));
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static QString categoryClass(int category)
|
static QString categoryClass(int category)
|
||||||
|
|
|
@ -136,6 +136,10 @@ public Q_SLOTS:
|
||||||
void unbanSelectedNode();
|
void unbanSelectedNode();
|
||||||
/** set which tab has the focus (is visible) */
|
/** set which tab has the focus (is visible) */
|
||||||
void setTabFocus(enum TabTypes tabType);
|
void setTabFocus(enum TabTypes tabType);
|
||||||
|
#ifdef ENABLE_WALLET
|
||||||
|
/** Set the current (ie - active) wallet */
|
||||||
|
void setCurrentWallet(WalletModel* const wallet_model);
|
||||||
|
#endif // ENABLE_WALLET
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct TranslatedStrings {
|
struct TranslatedStrings {
|
||||||
|
|
Loading…
Add table
Reference in a new issue