Bitcoin ABC 0.26.3
P2P Digital Currency
Loading...
Searching...
No Matches
walletcontroller.h
Go to the documentation of this file.
1// Copyright (c) 2019 The Bitcoin Core developers
2// Distributed under the MIT software license, see the accompanying
3// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5#ifndef BITCOIN_QT_WALLETCONTROLLER_H
6#define BITCOIN_QT_WALLETCONTROLLER_H
7
8#include <interfaces/wallet.h>
10#include <qt/walletmodel.h>
12#include <sync.h>
13#include <util/translation.h>
14
15#include <QMutex>
16
17#include <map>
18#include <memory>
19#include <string>
20#include <vector>
21
22#include <QMessageBox>
23#include <QProgressDialog>
24#include <QString>
25#include <QThread>
26#include <QTimer>
27
28class ClientModel;
29class OptionsModel;
30class PlatformStyle;
31class WalletModel;
32
33namespace interfaces {
34class Handler;
35class Node;
36class Wallet;
37} // namespace interfaces
38
44
48class WalletController : public QObject {
50
52
53public:
55 const PlatformStyle *platform_style, QObject *parent);
57
59 std::vector<WalletModel *> getOpenWallets() const;
60
61 WalletModel *getOrCreateWallet(std::unique_ptr<interfaces::Wallet> wallet);
62
65 std::map<std::string, bool> listWalletDir() const;
66
67 void closeWallet(WalletModel *wallet_model, QWidget *parent = nullptr);
68 void closeAllWallets(QWidget *parent = nullptr);
69
73
76
77private:
79 QObject *const m_activity_worker;
84 mutable QMutex m_mutex;
85 std::vector<WalletModel *> m_wallets;
86 std::unique_ptr<interfaces::Handler> m_handler_load_wallet;
87
89};
90
116
139
142
143public:
145 QWidget *parent_widget);
146
147 void open(const std::string &path);
148
151
152private:
153 void finish();
154};
155
156#endif // BITCOIN_QT_WALLETCONTROLLER_H
Multifunctional dialog to ask for passphrases.
Model for Bitcoin network client.
Definition clientmodel.h:43
AskPassphraseDialog * m_passphrase_dialog
CreateWalletDialog * m_create_wallet_dialog
void created(WalletModel *wallet_model)
Dialog for creating wallets.
void opened(WalletModel *wallet_model)
void open(const std::string &path)
Interface from Qt to configuration data structure for Bitcoin client.
std::vector< bilingual_str > m_warning_message
WalletController *const m_wallet_controller
QProgressDialog * m_progress_dialog
interfaces::Node & node() const
void showProgressDialog(const QString &label_text)
Controller between interfaces::Node, WalletModel instances and the GUI.
WalletModel * getOrCreateWallet(std::unique_ptr< interfaces::Wallet > wallet)
ClientModel & m_client_model
void removeAndDeleteWallet(WalletModel *wallet_model)
void walletAdded(WalletModel *wallet_model)
void closeAllWallets(QWidget *parent=nullptr)
std::unique_ptr< interfaces::Handler > m_handler_load_wallet
QThread *const m_activity_thread
std::map< std::string, bool > listWalletDir() const
Returns all wallet names in the wallet dir mapped to whether the wallet is loaded.
std::vector< WalletModel * > getOpenWallets() const
Returns wallet models currently open.
QObject *const m_activity_worker
void walletRemoved(WalletModel *wallet_model)
const PlatformStyle *const m_platform_style
void coinsSent(interfaces::Wallet &wallet, SendCoinsRecipient recipient, QByteArray transaction)
interfaces::Node & m_node
std::vector< WalletModel * > m_wallets
void closeWallet(WalletModel *wallet_model, QWidget *parent=nullptr)
OptionsModel *const m_options_model
Interface to Bitcoin wallet from Qt view code.
Definition walletmodel.h:47
Top-level interface for a bitcoin node (bitcoind process).
Definition node.h:59
Interface for accessing a wallet.
Definition wallet.h:59
T GetRand(T nMax=std::numeric_limits< T >::max()) noexcept
Generate a uniform random integer of type T in the range [0..nMax) nMax defaults to std::numeric_limi...
Definition random.h:85
std::basic_string< char, std::char_traits< char >, secure_allocator< char > > SecureString
Definition secure.h:55
Bilingual messages:
Definition translation.h:17