overviewpage.h
1 // Copyright (c) 2011-present 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 protected: 49 void changeEvent(QEvent* e) override; 50 51 private: 52 Ui::OverviewPage *ui; 53 ClientModel* clientModel{nullptr}; 54 WalletModel* walletModel{nullptr}; 55 bool m_privacy{false}; 56 57 const PlatformStyle* m_platform_style; 58 59 TxViewDelegate *txdelegate; 60 std::unique_ptr<TransactionFilterProxy> filter; 61 62 private Q_SLOTS: 63 void LimitTransactionRows(); 64 void updateDisplayUnit(); 65 void handleTransactionClicked(const QModelIndex &index); 66 void updateAlerts(const QString &warnings); 67 void setMonospacedFont(const QFont&); 68 }; 69 70 #endif // BITCOIN_QT_OVERVIEWPAGE_H