Skip to content

Commit 6c49a55

Browse files
committed
gui: Add Open Wallet menu
1 parent 32a8c6a commit 6c49a55

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

src/qt/bitcoingui.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,10 @@ void BitcoinGUI::createActions()
334334
openAction = new QAction(platformStyle->TextColorIcon(":/icons/open"), tr("Open &URI..."), this);
335335
openAction->setStatusTip(tr("Open a bitcoin: URI or payment request"));
336336

337+
m_open_wallet_action = new QAction(tr("Open Wallet"), this);
338+
m_open_wallet_action->setMenu(new QMenu(this));
339+
m_open_wallet_action->setStatusTip(tr("Open a wallet"));
340+
337341
showHelpMessageAction = new QAction(platformStyle->TextColorIcon(":/icons/info"), tr("&Command-line options"), this);
338342
showHelpMessageAction->setMenuRole(QAction::NoRole);
339343
showHelpMessageAction->setStatusTip(tr("Show the %1 help message to get a list with possible Bitcoin command-line options").arg(tr(PACKAGE_NAME)));
@@ -361,6 +365,16 @@ void BitcoinGUI::createActions()
361365
connect(usedSendingAddressesAction, &QAction::triggered, walletFrame, &WalletFrame::usedSendingAddresses);
362366
connect(usedReceivingAddressesAction, &QAction::triggered, walletFrame, &WalletFrame::usedReceivingAddresses);
363367
connect(openAction, &QAction::triggered, this, &BitcoinGUI::openClicked);
368+
connect(m_open_wallet_action->menu(), &QMenu::aboutToShow, [this] {
369+
m_open_wallet_action->menu()->clear();
370+
for (std::string path : m_wallet_controller->getWalletsAvailableToOpen()) {
371+
QString name = path.empty() ? QString("["+tr("default wallet")+"]") : QString::fromStdString(path);
372+
QAction* action = m_open_wallet_action->menu()->addAction(name);
373+
connect(action, &QAction::triggered, [this, path] {
374+
setCurrentWallet(m_wallet_controller->openWallet(path));
375+
});
376+
}
377+
});
364378
}
365379
#endif // ENABLE_WALLET
366380

@@ -382,6 +396,8 @@ void BitcoinGUI::createMenuBar()
382396
QMenu *file = appMenuBar->addMenu(tr("&File"));
383397
if(walletFrame)
384398
{
399+
file->addAction(m_open_wallet_action);
400+
file->addSeparator();
385401
file->addAction(openAction);
386402
file->addAction(backupWalletAction);
387403
file->addAction(signMessageAction);

src/qt/bitcoingui.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ class BitcoinGUI : public QMainWindow
147147
QAction* openRPCConsoleAction = nullptr;
148148
QAction* openAction = nullptr;
149149
QAction* showHelpMessageAction = nullptr;
150+
QAction* m_open_wallet_action{nullptr};
150151
QAction* m_wallet_selector_label_action = nullptr;
151152
QAction* m_wallet_selector_action = nullptr;
152153

0 commit comments

Comments
 (0)