/ src / qt / overviewpage.h
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