mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 06:28:31 +01:00
Merge #15153: gui: Add Open Wallet menu
1951ea434gui: Show indeterminate progress dialog while opening walllet (João Barbosa)8847cdaaagui: Add OpenWalletActivity (João Barbosa)4c8982a88interfaces: Avoid interface instance if wallet is null (João Barbosa)be82dea23gui: Add thread to run background activity in WalletController (João Barbosa)6c49a55b4gui: Add Open Wallet menu (João Barbosa)32a8c6abfgui: Add openWallet and getWalletsAvailableToOpen to WalletController (João Barbosa)ab288b4e5interfaces: Add loadWallet to Node (João Barbosa)17abc0fd5wallet: Factor out LoadWallet (João Barbosa) Pull request description: The *Open Wallet* menu has all the available wallets currently not loaded. The list of the available wallets comes from `listWalletDir`. In the future the menu can be replaced by a custom dialog. <img width="674" alt="screenshot 2019-01-12 at 12 17 02" src="https://user-images.githubusercontent.com/3534524/51073166-ac041480-1664-11e9-8302-be81702bc146.png"> Tree-SHA512: ebfd75eee0c8264863748899843afab67dadb7dff21313c11e3cb5b6108d954978dd1f1ae786bc07580c5a771ea4ab38d18c1643c9b9b3683ed53f0f6c582e38
This commit is contained in:
@@ -42,6 +42,7 @@ class CWallet;
|
||||
fs::path GetWalletDir();
|
||||
std::vector<fs::path> ListWalletDir();
|
||||
std::vector<std::shared_ptr<CWallet>> GetWallets();
|
||||
std::shared_ptr<CWallet> LoadWallet(interfaces::Chain& chain, const std::string& name, std::string& error, std::string& warning);
|
||||
|
||||
namespace interfaces {
|
||||
|
||||
@@ -252,6 +253,10 @@ public:
|
||||
}
|
||||
return wallets;
|
||||
}
|
||||
std::unique_ptr<Wallet> loadWallet(const std::string& name, std::string& error, std::string& warning) override
|
||||
{
|
||||
return MakeWallet(LoadWallet(*m_interfaces.chain, name, error, warning));
|
||||
}
|
||||
std::unique_ptr<Handler> handleInitMessage(InitMessageFn fn) override
|
||||
{
|
||||
return MakeHandler(::uiInterface.InitMessage_connect(fn));
|
||||
|
||||
@@ -192,6 +192,11 @@ public:
|
||||
//! Return interfaces for accessing wallets (if any).
|
||||
virtual std::vector<std::unique_ptr<Wallet>> getWallets() = 0;
|
||||
|
||||
//! Attempts to load a wallet from file or directory.
|
||||
//! The loaded wallet is also notified to handlers previously registered
|
||||
//! with handleLoadWallet.
|
||||
virtual std::unique_ptr<Wallet> loadWallet(const std::string& name, std::string& error, std::string& warning) = 0;
|
||||
|
||||
//! Register handler for init messages.
|
||||
using InitMessageFn = std::function<void(const std::string& message)>;
|
||||
virtual std::unique_ptr<Handler> handleInitMessage(InitMessageFn fn) = 0;
|
||||
|
||||
@@ -525,7 +525,7 @@ public:
|
||||
|
||||
} // namespace
|
||||
|
||||
std::unique_ptr<Wallet> MakeWallet(const std::shared_ptr<CWallet>& wallet) { return MakeUnique<WalletImpl>(wallet); }
|
||||
std::unique_ptr<Wallet> MakeWallet(const std::shared_ptr<CWallet>& wallet) { return wallet ? MakeUnique<WalletImpl>(wallet) : nullptr; }
|
||||
|
||||
std::unique_ptr<ChainClient> MakeWalletClient(Chain& chain, std::vector<std::string> wallet_filenames)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user