Line data Source code
1 : // Copyright (c) 2011-2013 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 <QWidget>
9 : #include <QQueue>
10 :
11 : class ClientModel;
12 :
13 : QT_BEGIN_NAMESPACE
14 : class QPaintEvent;
15 : class QTimer;
16 : QT_END_NAMESPACE
17 :
18 0 : class TrafficGraphWidget : public QWidget
19 : {
20 0 : Q_OBJECT
21 :
22 : public:
23 : explicit TrafficGraphWidget(QWidget *parent = 0);
24 : void setClientModel(ClientModel *model);
25 : int getGraphRangeMins() const;
26 :
27 : protected:
28 : void paintEvent(QPaintEvent *);
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;
45 : ClientModel *clientModel;
46 : };
47 :
48 : #endif // BITCOIN_QT_TRAFFICGRAPHWIDGET_H
|