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_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); TxViewDelegate(const PlatformStyle * _platformStyle,QObject * parent=nullptr)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 paint(QPainter * painter,const QStyleOptionViewItem & option,const QModelIndex & index) const44Q_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; 54 WalletModel *walletModel; 55 interfaces::WalletBalances m_balances; 56 bool m_privacy{false}; 57 58 const PlatformStyle* m_platform_style; 59 60 TxViewDelegate *txdelegate; 61 std::unique_ptr<TransactionFilterProxy> filter; 62 63 private Q_SLOTS: 64 void updateDisplayUnit(); 65 void handleTransactionClicked(const QModelIndex &index); 66 void updateAlerts(const QString &warnings); 67 void updateWatchOnlyLabels(bool showWatchOnly); 68 void setMonospacedFont(bool use_embedded_font); 69 }; 70 71 #endif // BITCOIN_QT_OVERVIEWPAGE_H 72