mirror of
https://gitlab.com/kelteseth/ScreenPlay.git
synced 2024-09-03 09:09:48 +02:00
Add uptime to sysinfo
This commit is contained in:
parent
817734e6b6
commit
7e10ae47e2
@ -9,8 +9,22 @@ find_package(
|
||||
COMPONENTS Quick Core
|
||||
REQUIRED)
|
||||
|
||||
set(src screenplaysysinfo_plugin.cpp sysinfo.cpp cpu.cpp ram.cpp storage.cpp)
|
||||
set(headers screenplaysysinfo_plugin.h sysinfo.h cpu.h ram.h mathhelper.h storage.h)
|
||||
set(src
|
||||
screenplaysysinfo_plugin.cpp
|
||||
sysinfo.cpp
|
||||
cpu.cpp
|
||||
ram.cpp
|
||||
storage.cpp
|
||||
uptime.cpp)
|
||||
|
||||
set(headers
|
||||
screenplaysysinfo_plugin.h
|
||||
sysinfo.h
|
||||
cpu.h
|
||||
ram.h
|
||||
mathhelper.h
|
||||
storage.h
|
||||
uptime.h)
|
||||
|
||||
add_library(${PROJECT_NAME} SHARED ${src} ${headers})
|
||||
|
||||
|
@ -37,10 +37,10 @@
|
||||
#include <QDebug>
|
||||
#include <QObject>
|
||||
#include <QTimer>
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
#include <qt_windows.h>
|
||||
#endif
|
||||
//#include <sysinfoapi.h>
|
||||
|
||||
#define DWORDLONG unsigned long long
|
||||
|
||||
|
@ -5,5 +5,6 @@ SysInfo::SysInfo(QQuickItem* parent)
|
||||
, m_ram(std::make_unique<RAM>())
|
||||
, m_cpu(std::make_unique<CPU>())
|
||||
, m_storage(std::make_unique<Storage>())
|
||||
, m_uptime(std::make_unique<Uptime>())
|
||||
{
|
||||
}
|
||||
|
@ -40,6 +40,7 @@
|
||||
#include "cpu.h"
|
||||
#include "ram.h"
|
||||
#include "storage.h"
|
||||
#include "uptime.h"
|
||||
|
||||
class SysInfo : public QQuickItem {
|
||||
Q_OBJECT
|
||||
@ -47,33 +48,25 @@ class SysInfo : public QQuickItem {
|
||||
Q_PROPERTY(RAM* ram READ ram NOTIFY ramChanged)
|
||||
Q_PROPERTY(CPU* cpu READ cpu NOTIFY cpuChanged)
|
||||
Q_PROPERTY(Storage* storage READ storage NOTIFY storageChanged)
|
||||
Q_PROPERTY(Uptime* uptime READ uptime NOTIFY uptimeChanged)
|
||||
|
||||
public:
|
||||
SysInfo(QQuickItem* parent = nullptr);
|
||||
~SysInfo() { }
|
||||
|
||||
RAM* ram() const
|
||||
{
|
||||
return m_ram.get();
|
||||
}
|
||||
|
||||
CPU* cpu() const
|
||||
{
|
||||
return m_cpu.get();
|
||||
}
|
||||
|
||||
Storage* storage() const
|
||||
{
|
||||
return m_storage.get();
|
||||
}
|
||||
RAM* ram() const { return m_ram.get(); }
|
||||
CPU* cpu() const { return m_cpu.get(); }
|
||||
Storage* storage() const { return m_storage.get(); }
|
||||
Uptime* uptime() const { return m_uptime.get(); }
|
||||
|
||||
signals:
|
||||
void ramChanged(RAM* ram);
|
||||
void cpuChanged(CPU* cpu);
|
||||
void storageChanged(Storage* storage);
|
||||
void uptimeChanged(Uptime* uptime);
|
||||
|
||||
private:
|
||||
std::unique_ptr<RAM> m_ram;
|
||||
std::unique_ptr<CPU> m_cpu;
|
||||
std::unique_ptr<Storage> m_storage;
|
||||
std::unique_ptr<Uptime> m_uptime;
|
||||
};
|
||||
|
37
ScreenPlaySysInfo/uptime.cpp
Normal file
37
ScreenPlaySysInfo/uptime.cpp
Normal file
@ -0,0 +1,37 @@
|
||||
#include "uptime.h"
|
||||
|
||||
#ifdef Q_OS_WINDOWS
|
||||
#include <Windows.h>
|
||||
#include <sysinfoapi.h>
|
||||
#endif
|
||||
|
||||
Uptime::Uptime(QObject* parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
QObject::connect(&m_updateTimer, &QTimer::timeout, this, &Uptime::update);
|
||||
m_updateTimer.start(m_tickRate);
|
||||
}
|
||||
|
||||
void Uptime::update()
|
||||
{
|
||||
#ifdef Q_OS_WINDOWS
|
||||
auto ticks = GetTickCount64();
|
||||
auto milliseconds = ticks % 1000;
|
||||
ticks /= 1000;
|
||||
auto seconds = ticks % 60;
|
||||
ticks /= 60;
|
||||
auto minutes = ticks % 60;
|
||||
ticks /= 60;
|
||||
auto hours = ticks;
|
||||
ticks /= 24;
|
||||
auto days = ticks;
|
||||
ticks /= 365;
|
||||
auto years = ticks;
|
||||
|
||||
setSeconds(seconds);
|
||||
setMinutes(minutes);
|
||||
setHours(hours);
|
||||
setDays(days);
|
||||
setYears(years);
|
||||
#endif
|
||||
}
|
86
ScreenPlaySysInfo/uptime.h
Normal file
86
ScreenPlaySysInfo/uptime.h
Normal file
@ -0,0 +1,86 @@
|
||||
#pragma once
|
||||
#include <QObject>
|
||||
#include <QTimer>
|
||||
|
||||
class Uptime : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(int days READ days WRITE setDays NOTIFY daysChanged)
|
||||
Q_PROPERTY(int years READ years WRITE setYears NOTIFY yearsChanged)
|
||||
Q_PROPERTY(int hours READ hours WRITE setHours NOTIFY hoursChanged)
|
||||
Q_PROPERTY(int minutes READ minutes WRITE setMinutes NOTIFY minutesChanged)
|
||||
Q_PROPERTY(int seconds READ seconds WRITE setSeconds NOTIFY secondsChanged)
|
||||
|
||||
public:
|
||||
Uptime(QObject* parent = nullptr);
|
||||
|
||||
int days() const { return m_days; }
|
||||
int years() const { return m_years; }
|
||||
int hours() const { return m_hours; }
|
||||
int minutes() const { return m_minutes; }
|
||||
int seconds() const { return m_seconds; }
|
||||
|
||||
public slots:
|
||||
void update();
|
||||
|
||||
void setDays(int days)
|
||||
{
|
||||
if (m_days == days)
|
||||
return;
|
||||
|
||||
m_days = days;
|
||||
emit daysChanged(m_days);
|
||||
}
|
||||
void setYears(int years)
|
||||
{
|
||||
if (m_years == years)
|
||||
return;
|
||||
|
||||
m_years = years;
|
||||
emit yearsChanged(m_years);
|
||||
}
|
||||
|
||||
void setHours(int hours)
|
||||
{
|
||||
if (m_hours == hours)
|
||||
return;
|
||||
|
||||
m_hours = hours;
|
||||
emit hoursChanged(m_hours);
|
||||
}
|
||||
|
||||
void setMinutes(int minutes)
|
||||
{
|
||||
if (m_minutes == minutes)
|
||||
return;
|
||||
|
||||
m_minutes = minutes;
|
||||
emit minutesChanged(m_minutes);
|
||||
}
|
||||
|
||||
void setSeconds(int seconds)
|
||||
{
|
||||
if (m_seconds == seconds)
|
||||
return;
|
||||
|
||||
m_seconds = seconds;
|
||||
emit secondsChanged(m_seconds);
|
||||
}
|
||||
|
||||
signals:
|
||||
void daysChanged(int days);
|
||||
void yearsChanged(int years);
|
||||
void hoursChanged(int hours);
|
||||
void minutesChanged(int minutes);
|
||||
void secondsChanged(int seconds);
|
||||
|
||||
private:
|
||||
int m_days = 0;
|
||||
int m_years = 0;
|
||||
int m_hours = 0;
|
||||
int m_minutes = 0;
|
||||
int m_seconds = 0;
|
||||
|
||||
int m_tickRate = 1000;
|
||||
QTimer m_updateTimer;
|
||||
};
|
Loading…
Reference in New Issue
Block a user