1 /*
2     SPDX-FileCopyrightText: 2010 Nicolas Ternisien <nicolas.ternisien@gmail.com>
3 
4     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5 */
6 
7 #ifndef KCONTROL_MEMORY_H
8 #define KCONTROL_MEMORY_H
9 
10 #include <QPushButton>
11 #include <QTimer>
12 #include <QWidget>
13 
14 #include <KAboutData>
15 #include <KCModule>
16 
17 #include "base.h"
18 
19 class QGroupBox;
20 class QPushButton;
21 class ChartWidget;
22 
23 class KCMMemory : public KCModule
24 {
25     Q_OBJECT
26 
27 public:
28     explicit KCMMemory(QWidget *parent = nullptr, const QVariantList &list = QVariantList());
29     ~KCMMemory();
30 
31     QString quickHelp() const override;
32 
33 private Q_SLOTS:
34     void updateMemoryText();
35     void updateMemoryGraphics();
36 
37     void updateDatas();
38 
39 private:
40     QGroupBox *initializeText();
41     QGroupBox *initializeCharts();
42 
43     QTimer *timer;
44 
45     ChartWidget *totalMemory;
46     ChartWidget *physicalMemory;
47     ChartWidget *swapMemory;
48 
49     void fetchValues();
50 };
51 
52 #endif
53