1 /*
2     SPDX-FileCopyrightText: 2007 Krzysztof Kundzicz <athantor@gmail.com>
3     SPDX-License-Identifier: GPL-2.0-or-later
4 */
5 
6 #ifndef StatsPlugin_H_
7 #define StatsPlugin_H_
8 
9 #include <QObject>
10 #include <QString>
11 #include <QStringList>
12 #include <QTimer>
13 
14 #include <interfaces/guiinterface.h>
15 #include <interfaces/plugin.h>
16 
17 #include <memory>
18 
19 #include <ConnsTabPage.h>
20 #include <DisplaySettingsPage.h>
21 #include <SettingsPage.h>
22 #include <SpdTabPage.h>
23 #include <statspluginsettings.h>
24 
25 namespace kt
26 {
27 /** \brief Statistics plugin
28 \author Krzysztof Kundzicz <athantor@gmail.com>
29 \version 1.1
30 */
31 
32 class StatsPlugin : public Plugin
33 {
34     Q_OBJECT
35 public:
36     /** \brief Constructor
37     \param p Parent
38     */
39     StatsPlugin(QObject *parent, const KPluginMetaData &data, const QVariantList &args);
40     /// Destructor
41     ~StatsPlugin() override;
42 
43     void load() override;
44     void unload() override;
45     void guiUpdate() override;
46 
47 public Q_SLOTS:
48     /// Gather data
49     void gatherData();
50     /// Settings has been changed
51     void settingsChanged();
52 
53 private:
54     /// Speeds tab
55     SpdTabPage *pmUiSpd;
56     /// Connections tab
57     ConnsTabPage *pmUiConns;
58     /// Settings Page
59     SettingsPage *pmUiSett;
60     /// Display settings page
61     DisplaySettingsPage *pmDispSett;
62     /// Timer
63     QTimer pmTmr;
64 
65     /// Updates counter
66     uint32_t mUpdCtr;
67 };
68 
69 } // ns end
70 
71 #endif
72