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