1*4882a593Smuzhiyun #include "abountwidget.h"
2*4882a593Smuzhiyun #include <QCoreApplication>
3*4882a593Smuzhiyun #include <QDir>
4*4882a593Smuzhiyun #include <QTimer>
5*4882a593Smuzhiyun #include <QPainter>
6*4882a593Smuzhiyun #include "ui_about.h"
7*4882a593Smuzhiyun #include <QCoreApplication>
8*4882a593Smuzhiyun #include "systemmanager.h"
9*4882a593Smuzhiyun #include <QTimer>
10*4882a593Smuzhiyun
AbountWidget(QWidget * parent)11*4882a593Smuzhiyun AbountWidget::AbountWidget(QWidget *parent) : IWidget(parent),
12*4882a593Smuzhiyun ui(new Ui::AboutWidget),
13*4882a593Smuzhiyun m_bQuit(false)
14*4882a593Smuzhiyun {
15*4882a593Smuzhiyun ui->setupUi(this);
16*4882a593Smuzhiyun ui->textBrowser->append("loading ...");
17*4882a593Smuzhiyun }
18*4882a593Smuzhiyun
~AbountWidget()19*4882a593Smuzhiyun AbountWidget::~AbountWidget()
20*4882a593Smuzhiyun {
21*4882a593Smuzhiyun m_bQuit =true;
22*4882a593Smuzhiyun m_fetcher->terminate();
23*4882a593Smuzhiyun m_fetcher->wait();
24*4882a593Smuzhiyun delete ui;
25*4882a593Smuzhiyun }
26*4882a593Smuzhiyun
id()27*4882a593Smuzhiyun QString AbountWidget::id()
28*4882a593Smuzhiyun {
29*4882a593Smuzhiyun return "about";
30*4882a593Smuzhiyun }
31*4882a593Smuzhiyun
loadData(const QDomElement & head,const QDomElement & body)32*4882a593Smuzhiyun void AbountWidget::loadData(const QDomElement &head, const QDomElement &body)
33*4882a593Smuzhiyun {
34*4882a593Smuzhiyun Q_UNUSED(head)
35*4882a593Smuzhiyun Q_UNUSED(body)
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun // QTimer *timer = new QTimer(this);
38*4882a593Smuzhiyun // connect(timer, &QTimer::timeout, this,[=](){
39*4882a593Smuzhiyun // SystemManager *pSys = SystemManager::instance();
40*4882a593Smuzhiyun // QString stoarge;
41*4882a593Smuzhiyun // QString memTotal;
42*4882a593Smuzhiyun // QString memFree;
43*4882a593Smuzhiyun // QString memAvailable;
44*4882a593Smuzhiyun // QString kerVersion;
45*4882a593Smuzhiyun // QString userCpu;
46*4882a593Smuzhiyun // pSys->getStoargeInfo(stoarge);
47*4882a593Smuzhiyun // pSys->getMemInfo(memTotal, memFree, memAvailable);
48*4882a593Smuzhiyun // pSys->getKernalInfo(kerVersion);
49*4882a593Smuzhiyun // pSys->getCpuInfo(userCpu);
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun // int total = memTotal.toInt()/1024;
52*4882a593Smuzhiyun // int free = memFree.toInt()/1024;
53*4882a593Smuzhiyun // int avaiable = memAvailable.toInt()/1024;
54*4882a593Smuzhiyun // ui->textBrowser->clear();
55*4882a593Smuzhiyun // ui->textBrowser->append(QString("[Kernal Version]: %1").arg(kerVersion.trimmed()));
56*4882a593Smuzhiyun // ui->textBrowser->append("\n");
57*4882a593Smuzhiyun // ui->textBrowser->append(QString("[User Cpu]: %1").arg(userCpu.trimmed()));
58*4882a593Smuzhiyun // ui->textBrowser->append("\n");
59*4882a593Smuzhiyun // ui->textBrowser->append(QString("[MemTotal]: %1 M [MemFree] %2 M [MemAvailable]%3 M")
60*4882a593Smuzhiyun // .arg(total)
61*4882a593Smuzhiyun // .arg(free)
62*4882a593Smuzhiyun // .arg(avaiable)
63*4882a593Smuzhiyun // );
64*4882a593Smuzhiyun // ui->textBrowser->append("\n");
65*4882a593Smuzhiyun // ui->textBrowser->append(stoarge);
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun // });
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun m_fetcher = new FetcherSystem(this);
70*4882a593Smuzhiyun connect(m_fetcher, &FetcherSystem::finished, this, [=](){
71*4882a593Smuzhiyun if(m_bQuit)
72*4882a593Smuzhiyun {
73*4882a593Smuzhiyun return ;
74*4882a593Smuzhiyun }
75*4882a593Smuzhiyun QString stoarge;
76*4882a593Smuzhiyun QString memTotal;
77*4882a593Smuzhiyun QString memFree;
78*4882a593Smuzhiyun QString memAvailable;
79*4882a593Smuzhiyun QString kerVersion;
80*4882a593Smuzhiyun QString userCpu;
81*4882a593Smuzhiyun m_fetcher->getInfomartion(stoarge, memTotal, memFree, memAvailable, kerVersion, userCpu);
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun ui->textBrowser->clear();
84*4882a593Smuzhiyun ui->textBrowser->append(QString("[Kernal Version]: %1").arg(kerVersion.trimmed()));
85*4882a593Smuzhiyun ui->textBrowser->append("\n");
86*4882a593Smuzhiyun ui->textBrowser->append(QString("[User Cpu]: %1").arg(userCpu.trimmed()));
87*4882a593Smuzhiyun ui->textBrowser->append("\n");
88*4882a593Smuzhiyun ui->textBrowser->append(QString("[MemTotal]: %1 M [MemFree] %2 M [MemAvailable]%3 M")
89*4882a593Smuzhiyun .arg(memTotal)
90*4882a593Smuzhiyun .arg(memFree)
91*4882a593Smuzhiyun .arg(memAvailable)
92*4882a593Smuzhiyun );
93*4882a593Smuzhiyun ui->textBrowser->append("\n");
94*4882a593Smuzhiyun ui->textBrowser->append(stoarge);
95*4882a593Smuzhiyun m_fetcher->start();
96*4882a593Smuzhiyun });
97*4882a593Smuzhiyun m_fetcher->start();
98*4882a593Smuzhiyun }
99*4882a593Smuzhiyun
FetcherSystem(QObject * parent)100*4882a593Smuzhiyun FetcherSystem::FetcherSystem(QObject *parent):QThread(parent)
101*4882a593Smuzhiyun {
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun }
104*4882a593Smuzhiyun
getInfomartion(QString & storage,QString & memTotal,QString & memFree,QString & memAvailable,QString & kerVersion,QString & userCpu)105*4882a593Smuzhiyun void FetcherSystem::getInfomartion(QString &storage, QString &memTotal, QString &memFree, QString &memAvailable, QString &kerVersion, QString &userCpu)
106*4882a593Smuzhiyun {
107*4882a593Smuzhiyun storage = m_storage;
108*4882a593Smuzhiyun memTotal = m_memTotal;
109*4882a593Smuzhiyun memFree = m_memFree;
110*4882a593Smuzhiyun memAvailable = m_memAvailable;
111*4882a593Smuzhiyun kerVersion = m_kerVersion;
112*4882a593Smuzhiyun userCpu = m_userCpu;
113*4882a593Smuzhiyun }
114*4882a593Smuzhiyun
run()115*4882a593Smuzhiyun void FetcherSystem::run()
116*4882a593Smuzhiyun {
117*4882a593Smuzhiyun SystemManager *pSys = SystemManager::instance();
118*4882a593Smuzhiyun pSys->getStoargeInfo(m_storage);
119*4882a593Smuzhiyun pSys->getMemInfo(m_memTotal, m_memFree, m_memAvailable);
120*4882a593Smuzhiyun pSys->getKernalInfo(m_kerVersion);
121*4882a593Smuzhiyun pSys->getCpuInfo(m_userCpu);
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun m_memTotal = QString::number(m_memTotal.toInt()/1024);
124*4882a593Smuzhiyun m_memFree = QString::number(m_memFree.toInt()/1024);
125*4882a593Smuzhiyun m_memAvailable = QString::number(m_memAvailable.toInt()/1024);
126*4882a593Smuzhiyun }
127