overviewpage.h raw
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
71