1 //===========================================
2 // Lumina-DE source code
3 // Copyright (c) 2015, Ken Moore
4 // Available under the 3-clause BSD license
5 // See the LICENSE file for full details
6 //===========================================
7 #include "MonitorWidget.h"
8 #include "ui_MonitorWidget.h"
9
10
11 #include <LuminaXDG.h>
12 #include <LuminaOS.h>
13
MonitorWidget(QWidget * parent)14 MonitorWidget::MonitorWidget(QWidget *parent) : QWidget(parent), ui(new Ui::MonitorWidget()){
15 ui->setupUi(this); //load the designer form
16 upTimer = new QTimer(this);
17 upTimer->setInterval(2000); //update every 2 seconds
18 connect(upTimer, SIGNAL(timeout()), this, SLOT(UpdateStats()) );
19 LoadIcons();
20 ui->label->setText( tr("CPU Temp:") );
21 ui->label_2->setText( tr("CPU Usage:") );
22 ui->label_3->setText( tr("Mem Usage:") );
23 upTimer->start();
24 }
25
~MonitorWidget()26 MonitorWidget::~MonitorWidget(){
27 //qDebug() << "Removing MonitorWidget";
28 }
29
LoadIcons()30 void MonitorWidget::LoadIcons(){
31 ui->tabWidget->setTabIcon(0,LXDG::findIcon("appointment-blank","") ); //Summary
32 ui->tabWidget->setTabIcon(1,LXDG::findIcon("drive-harddisk","") ); //Disk Usage
33 //ui->tabWidget->setTabIcon(1,LXDG::findIcon("cpu","") ); //CPU Log
34 //ui->tabWidget->setTabIcon(2,LXDG::findIcon("media-flash-memory-stick","") ); //Mem Log
35 }
36
UpdateStats()37 void MonitorWidget::UpdateStats(){
38 //qDebug() << "Updating System statistics...";
39 ui->label_temps->setText( LOS::CPUTemperatures().join(", ") );
40 if(ui->progress_cpu->isEnabled()){
41 int perc = LOS::CPUUsagePercent();
42 ui->progress_cpu->setValue(perc);
43 if(perc<0){ ui->progress_cpu->setEnabled(false); } //disable this for future checks
44 }
45 if(ui->progress_mem->isEnabled()){
46 int perc = LOS::MemoryUsagePercent();
47 ui->progress_mem->setValue(perc);
48 if(perc<0){ ui->progress_mem->setEnabled(false); } //disable this for future checks
49 }
50 ui->label_diskinfo->setText( LOS::DiskUsage().join("\n") );
51 //Also perform/update the logs as necessary
52 // -- TO DO --
53 }
54
SysMonitorPlugin(QWidget * parent,QString ID)55 SysMonitorPlugin::SysMonitorPlugin(QWidget *parent, QString ID) : LDPlugin(parent, ID){
56 monitor = new MonitorWidget(this);
57 this->setLayout( new QVBoxLayout() );
58 this->layout()->setContentsMargins(0,0,0,0);
59 this->layout()->addWidget(monitor);
60
61 //this->setInitialSize(monitor->sizeHint().width(),monitor->sizeHint().height());
62 }
63
~SysMonitorPlugin()64 SysMonitorPlugin::~SysMonitorPlugin(){
65 //qDebug() << "Remove SysMonitorPlugin";
66 }
67