Line data Source code
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 0 : 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