Bitcoin Core  26.1.0
P2P Digital Currency
walletview.h
Go to the documentation of this file.
1 // Copyright (c) 2011-2021 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_WALLETVIEW_H
6 #define BITCOIN_QT_WALLETVIEW_H
7 
8 #include <consensus/amount.h>
9 #include <qt/bitcoinunits.h>
10 
11 #include <QStackedWidget>
12 
13 class ClientModel;
14 class OverviewPage;
15 class PlatformStyle;
16 class ReceiveCoinsDialog;
17 class SendCoinsDialog;
18 class SendCoinsRecipient;
19 class TransactionView;
20 class WalletModel;
21 class AddressBookPage;
22 
23 QT_BEGIN_NAMESPACE
24 class QModelIndex;
25 class QProgressDialog;
26 QT_END_NAMESPACE
27 
28 /*
29  WalletView class. This class represents the view to a single wallet.
30  It was added to support multiple wallet functionality. Each wallet gets its own WalletView instance.
31  It communicates with both the client and the wallet models to give the user an up-to-date view of the
32  current core state.
33 */
34 class WalletView : public QStackedWidget
35 {
36  Q_OBJECT
37 
38 public:
39  explicit WalletView(WalletModel* wallet_model, const PlatformStyle* platformStyle, QWidget* parent);
40  ~WalletView();
41 
46  WalletModel* getWalletModel() const noexcept { return walletModel; }
47 
48  bool handlePaymentRequest(const SendCoinsRecipient& recipient);
49 
50  void showOutOfSyncWarning(bool fShow);
51 
52 private:
54 
60 
62  QWidget *transactionsPage;
67 
69 
70  QProgressDialog* progressDialog{nullptr};
72 
73 public Q_SLOTS:
75  void gotoOverviewPage();
77  void gotoHistoryPage();
79  void gotoReceiveCoinsPage();
81  void gotoSendCoinsPage(QString addr = "");
82 
84  void gotoSignMessageTab(QString addr = "");
86  void gotoVerifyMessageTab(QString addr = "");
87 
92  void processNewTransaction(const QModelIndex& parent, int start, int /*end*/);
94  void encryptWallet();
96  void backupWallet();
98  void changePassphrase();
100  void unlockWallet();
101 
103  void usedSendingAddresses();
105  void usedReceivingAddresses();
106 
108  void showProgress(const QString &title, int nProgress);
109 
110 private Q_SLOTS:
111  void disableTransactionView(bool disable);
112 
113 Q_SIGNALS:
114  void setPrivacy(bool privacy);
115  void transactionClicked();
116  void coinsSent();
118  void message(const QString &title, const QString &message, unsigned int style);
122  void incomingTransaction(const QString& date, BitcoinUnit unit, const CAmount& amount, const QString& type, const QString& address, const QString& label, const QString& walletName);
125 };
126 
127 #endif // BITCOIN_QT_WALLETVIEW_H
QWidget * transactionsPage
Definition: walletview.h:62
Dialog for requesting payment of bitcoins.
WalletModel *const walletModel
The wallet model represents a bitcoin wallet, and offers access to the list of transactions, address book and sending functionality.
Definition: walletview.h:59
Unit
Bitcoin units.
Definition: bitcoinunits.h:42
void gotoVerifyMessageTab(QString addr="")
Show Sign/Verify Message dialog and switch to verify message tab.
Definition: walletview.cpp:181
OverviewPage * overviewPage
Definition: walletview.h:61
TransactionView * transactionView
Definition: walletview.h:68
void usedSendingAddresses()
Show used sending addresses.
Definition: walletview.cpp:250
WalletView(WalletModel *wallet_model, const PlatformStyle *platformStyle, QWidget *parent)
Definition: walletview.cpp:32
void changePassphrase()
Change encrypted wallet passphrase.
Definition: walletview.cpp:231
ClientModel * clientModel
Definition: walletview.h:53
void setPrivacy(bool privacy)
void disableTransactionView(bool disable)
Definition: walletview.cpp:283
void outOfSyncWarningClicked()
Notify that the out of sync warning icon has been pressed.
const PlatformStyle * platformStyle
Definition: walletview.h:71
void gotoSendCoinsPage(QString addr="")
Switch to send coins page.
Definition: walletview.cpp:161
void processNewTransaction(const QModelIndex &parent, int start, int)
Show incoming transaction notification for new transactions.
Definition: walletview.cpp:125
SendCoinsDialog * sendCoinsPage
Definition: walletview.h:64
int64_t CAmount
Amount in satoshis (Can be negative)
Definition: amount.h:12
void gotoHistoryPage()
Switch to history (transactions) page.
Definition: walletview.cpp:151
void usedReceivingAddresses()
Show used receiving addresses.
Definition: walletview.cpp:255
void incomingTransaction(const QString &date, BitcoinUnit unit, const CAmount &amount, const QString &type, const QString &address, const QString &label, const QString &walletName)
Notify that a new transaction appeared.
Widget showing the transaction list for a wallet, including a filter row.
void message(const QString &title, const QString &message, unsigned int style)
Fired when a message should be reported to the user.
void unlockWallet()
Ask for passphrase to unlock wallet temporarily.
Definition: walletview.cpp:238
Dialog for sending bitcoins.
Widget that shows a list of sending or receiving addresses.
Model for Bitcoin network client.
Definition: clientmodel.h:53
void backupWallet()
Backup the wallet.
Definition: walletview.cpp:211
bool handlePaymentRequest(const SendCoinsRecipient &recipient)
Definition: walletview.cpp:193
void gotoOverviewPage()
Switch to overview (home) page.
Definition: walletview.cpp:146
void encryptionStatusChanged()
Encryption status of wallet changed.
AddressBookPage * usedSendingAddressesPage
Definition: walletview.h:65
void gotoSignMessageTab(QString addr="")
Show Sign/Verify Message dialog and switch to sign message tab.
Definition: walletview.cpp:169
Interface to Bitcoin wallet from Qt view code.
Definition: walletmodel.h:51
void showProgress(const QString &title, int nProgress)
Show progress dialog e.g.
Definition: walletview.cpp:260
WalletModel * getWalletModel() const noexcept
Definition: walletview.h:46
void setClientModel(ClientModel *clientModel)
Set the client model.
Definition: walletview.cpp:116
void encryptWallet()
Encrypt the wallet.
Definition: walletview.cpp:203
ReceiveCoinsDialog * receiveCoinsPage
Definition: walletview.h:63
void gotoReceiveCoinsPage()
Switch to receive coins page.
Definition: walletview.cpp:156
void transactionClicked()
Overview ("home") page widget.
Definition: overviewpage.h:28
void showOutOfSyncWarning(bool fShow)
Definition: walletview.cpp:198
QProgressDialog * progressDialog
Definition: walletview.h:70
AddressBookPage * usedReceivingAddressesPage
Definition: walletview.h:66