1 // Copyright (c) 2011-2018 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_OVERVIEWPAGE_H 6 #define BITCOIN_QT_OVERVIEWPAGE_H 7 8 #include <interfaces/wallet.h> 9 10 #include <QWidget> 11 #include <memory> 12 13 class ClientModel; 14 class TransactionFilterProxy; 15 class TxViewDelegate; 16 class PlatformStyle; 17 class WalletModel; 18 19 namespace Ui { 20 class OverviewPage; 21 } 22 23 QT_BEGIN_NAMESPACE 24 class QModelIndex; 25 QT_END_NAMESPACE 26 27 /** Overview ("home") page widget */ 28 class OverviewPage : public QWidget 29 { 30 Q_OBJECT 31 32 public: 33 explicit OverviewPage(const PlatformStyle *platformStyle, QWidget *parent = nullptr); 34 ~OverviewPage(); 35 36 void setClientModel(ClientModel *clientModel); 37 void setWalletModel(WalletModel *walletModel); 38 void showOutOfSyncWarning(bool fShow); 39 40 public Q_SLOTS: 41 void setBalance(const interfaces::WalletBalances& balances); 42 void setPrivacy(bool privacy); 43 44 Q_SIGNALS: 45 void transactionClicked(const QModelIndex &index); 46 void outOfSyncWarningClicked(); 47 48 private: 49 Ui::OverviewPage *ui; 50 ClientModel *clientModel; 51 WalletModel *walletModel; 52 interfaces::WalletBalances m_balances; 53 bool m_privacy{false}; 54 55 TxViewDelegate *txdelegate; 56 std::unique_ptr<TransactionFilterProxy> filter; 57 58 private Q_SLOTS: 59 void updateDisplayUnit(); 60 void handleTransactionClicked(const QModelIndex &index); 61 void updateAlerts(const QString &warnings); 62 void updateWatchOnlyLabels(bool showWatchOnly); 63 void handleOutOfSyncWarningClicks(); 64 }; 65 66 #endif // BITCOIN_QT_OVERVIEWPAGE_H 67