Bitcoin Core  0.20.99
P2P Digital Currency
walletview.h
Go to the documentation of this file.
1 // Copyright (c) 2011-2020 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 <amount.h>
9 
10 #include <QStackedWidget>
11 
12 class ClientModel;
13 class OverviewPage;
14 class PlatformStyle;
15 class ReceiveCoinsDialog;
16 class SendCoinsDialog;
17 class SendCoinsRecipient;
18 class TransactionView;
19 class WalletModel;
20 class AddressBookPage;
21 
22 QT_BEGIN_NAMESPACE
23 class QModelIndex;
24 class QProgressDialog;
25 QT_END_NAMESPACE
26 
27 /*
28  WalletView class. This class represents the view to a single wallet.
29  It was added to support multiple wallet functionality. Each wallet gets its own WalletView instance.
30  It communicates with both the client and the wallet models to give the user an up-to-date view of the
31  current core state.
32 */
33 class WalletView : public QStackedWidget
34 {
35  Q_OBJECT
36 
37 public:
38  explicit WalletView(const PlatformStyle *platformStyle, QWidget *parent);
39  ~WalletView();
40 
51 
52  bool handlePaymentRequest(const SendCoinsRecipient& recipient);
53 
54  void showOutOfSyncWarning(bool fShow);
55 
56 private:
59 
61  QWidget *transactionsPage;
66 
68 
69  QProgressDialog* progressDialog{nullptr};
71 
72 public Q_SLOTS:
74  void gotoOverviewPage();
76  void gotoHistoryPage();
78  void gotoReceiveCoinsPage();
80  void gotoSendCoinsPage(QString addr = "");
81 
83  void gotoSignMessageTab(QString addr = "");
85  void gotoVerifyMessageTab(QString addr = "");
87  void gotoLoadPSBT(bool from_clipboard = false);
88 
93  void processNewTransaction(const QModelIndex& parent, int start, int /*end*/);
95  void encryptWallet(bool status);
97  void backupWallet();
99  void changePassphrase();
101  void unlockWallet();
102 
104  void usedSendingAddresses();
106  void usedReceivingAddresses();
107 
109  void updateEncryptionStatus();
110 
112  void showProgress(const QString &title, int nProgress);
113 
116 
117 Q_SIGNALS:
118  void setPrivacy(bool privacy);
119  void transactionClicked();
120  void coinsSent();
122  void message(const QString &title, const QString &message, unsigned int style);
126  void hdEnabledStatusChanged();
128  void incomingTransaction(const QString& date, int unit, const CAmount& amount, const QString& type, const QString& address, const QString& label, const QString& walletName);
131 };
132 
133 #endif // BITCOIN_QT_WALLETVIEW_H
QWidget * transactionsPage
Definition: walletview.h:61
Dialog for requesting payment of bitcoins.
void gotoVerifyMessageTab(QString addr="")
Show Sign/Verify Message dialog and switch to verify message tab.
Definition: walletview.cpp:196
OverviewPage * overviewPage
Definition: walletview.h:60
TransactionView * transactionView
Definition: walletview.h:67
void usedSendingAddresses()
Show used sending addresses.
Definition: walletview.cpp:311
void changePassphrase()
Change encrypted wallet passphrase.
Definition: walletview.cpp:291
ClientModel * clientModel
Definition: walletview.h:57
void setPrivacy(bool privacy)
void requestedSyncWarningInfo()
User has requested more information about the out of sync state.
Definition: walletview.cpp:351
WalletModel * walletModel
Definition: walletview.h:58
void outOfSyncWarningClicked()
Notify that the out of sync warning icon has been pressed.
const PlatformStyle * platformStyle
Definition: walletview.h:70
void gotoSendCoinsPage(QString addr="")
Switch to send coins page.
Definition: walletview.cpp:176
void updateEncryptionStatus()
Re-emit encryption status signal.
Definition: walletview.cpp:256
void processNewTransaction(const QModelIndex &parent, int start, int)
Show incoming transaction notification for new transactions.
Definition: walletview.cpp:141
SendCoinsDialog * sendCoinsPage
Definition: walletview.h:63
int64_t CAmount
Amount in satoshis (Can be negative)
Definition: amount.h:12
WalletModel * getWalletModel()
Definition: walletview.h:45
void gotoHistoryPage()
Switch to history (transactions) page.
Definition: walletview.cpp:166
void usedReceivingAddresses()
Show used receiving addresses.
Definition: walletview.cpp:319
void setWalletModel(WalletModel *walletModel)
Set the wallet model.
Definition: walletview.cpp:106
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:298
Dialog for sending bitcoins.
Widget that shows a list of sending or receiving addresses.
Model for Bitcoin network client.
Definition: clientmodel.h:46
void backupWallet()
Backup the wallet.
Definition: walletview.cpp:272
bool handlePaymentRequest(const SendCoinsRecipient &recipient)
Definition: walletview.cpp:246
void gotoOverviewPage()
Switch to overview (home) page.
Definition: walletview.cpp:161
void encryptionStatusChanged()
Encryption status of wallet changed.
AddressBookPage * usedSendingAddressesPage
Definition: walletview.h:64
void gotoSignMessageTab(QString addr="")
Show Sign/Verify Message dialog and switch to sign message tab.
Definition: walletview.cpp:184
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:327
void gotoLoadPSBT(bool from_clipboard=false)
Load Partially Signed Bitcoin Transaction.
Definition: walletview.cpp:208
WalletView(const PlatformStyle *platformStyle, QWidget *parent)
Definition: walletview.cpp:37
void setClientModel(ClientModel *clientModel)
Set the client model.
Definition: walletview.cpp:97
void hdEnabledStatusChanged()
HD-Enabled status of wallet changed (only possible during startup)
void encryptWallet(bool status)
Encrypt the wallet.
Definition: walletview.cpp:261
ReceiveCoinsDialog * receiveCoinsPage
Definition: walletview.h:62
void gotoReceiveCoinsPage()
Switch to receive coins page.
Definition: walletview.cpp:171
void coinsSent()
void transactionClicked()
Overview ("home") page widget.
Definition: overviewpage.h:28
void showOutOfSyncWarning(bool fShow)
Definition: walletview.cpp:251
void incomingTransaction(const QString &date, int unit, const CAmount &amount, const QString &type, const QString &address, const QString &label, const QString &walletName)
Notify that a new transaction appeared.
QProgressDialog * progressDialog
Definition: walletview.h:69
AddressBookPage * usedReceivingAddressesPage
Definition: walletview.h:65