@@ -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);
0 commit comments