Bitcoin ABC  0.28.12
P2P Digital Currency
trafficgraphwidget.h
Go to the documentation of this file.
1 // Copyright (c) 2011-2015 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_TRAFFICGRAPHWIDGET_H
6 #define BITCOIN_QT_TRAFFICGRAPHWIDGET_H
7 
8 #include <QQueue>
9 #include <QWidget>
10 
11 class ClientModel;
12 
13 QT_BEGIN_NAMESPACE
14 class QPaintEvent;
15 class QPainterPath;
16 class QTimer;
17 QT_END_NAMESPACE
18 
19 class TrafficGraphWidget : public QWidget {
20  Q_OBJECT
21 
22 public:
23  explicit TrafficGraphWidget(QWidget *parent = nullptr);
24  void setClientModel(ClientModel *model);
25  int getGraphRangeMins() const;
26 
27 protected:
28  void paintEvent(QPaintEvent *) override;
29 
30 public Q_SLOTS:
31  void updateRates();
32  void setGraphRangeMins(int mins);
33  void clear();
34 
35 private:
36  void paintPath(QPainterPath &path, QQueue<float> &samples);
37 
38  QTimer *timer;
39  float fMax;
40  int nMins;
41  QQueue<float> vSamplesIn;
42  QQueue<float> vSamplesOut;
43  quint64 nLastBytesIn;
44  quint64 nLastBytesOut;
46 };
47 
48 #endif // BITCOIN_QT_TRAFFICGRAPHWIDGET_H
Model for Bitcoin network client.
Definition: clientmodel.h:39
void paintEvent(QPaintEvent *) override
ClientModel * clientModel
TrafficGraphWidget(QWidget *parent=nullptr)
void setClientModel(ClientModel *model)
void setGraphRangeMins(int mins)
QQueue< float > vSamplesOut
void paintPath(QPainterPath &path, QQueue< float > &samples)
QQueue< float > vSamplesIn