mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2025-12-06 05:25:41 -05:00
178 lines
6.2 KiB
QML
178 lines
6.2 KiB
QML
import QtQuick
|
|
import QtQuick.Effects
|
|
import qs.Common
|
|
import qs.Services
|
|
import qs.Widgets
|
|
|
|
Card {
|
|
id: root
|
|
|
|
Component.onCompleted: {
|
|
DgopService.addRef(["cpu", "memory", "system"])
|
|
}
|
|
Component.onDestruction: {
|
|
DgopService.removeRef(["cpu", "memory", "system"])
|
|
}
|
|
|
|
Row {
|
|
anchors.fill: parent
|
|
anchors.margins: Theme.spacingS
|
|
spacing: Theme.spacingM
|
|
|
|
// CPU Bar
|
|
Column {
|
|
width: (parent.width - 2 * Theme.spacingM) / 3
|
|
height: parent.height
|
|
spacing: Theme.spacingS
|
|
|
|
Rectangle {
|
|
width: 8
|
|
height: parent.height - Theme.iconSizeSmall - Theme.spacingS
|
|
radius: 4
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
|
|
|
|
Rectangle {
|
|
width: parent.width
|
|
height: parent.height * Math.min((DgopService.cpuUsage || 6) / 100, 1)
|
|
radius: parent.radius
|
|
anchors.bottom: parent.bottom
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
color: {
|
|
if (DgopService.cpuUsage > 80) return Theme.error
|
|
if (DgopService.cpuUsage > 60) return Theme.warning
|
|
return Theme.primary
|
|
}
|
|
|
|
Behavior on height {
|
|
NumberAnimation {
|
|
duration: Theme.shortDuration
|
|
easing.type: Theme.standardEasing
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Item {
|
|
width: parent.width
|
|
height: Theme.iconSizeSmall
|
|
|
|
DankIcon {
|
|
name: "memory"
|
|
size: Theme.iconSizeSmall
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
anchors.bottom: parent.bottom
|
|
color: {
|
|
if (DgopService.cpuUsage > 80) return Theme.error
|
|
if (DgopService.cpuUsage > 60) return Theme.warning
|
|
return Theme.primary
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Temperature Bar
|
|
Column {
|
|
width: (parent.width - 2 * Theme.spacingM) / 3
|
|
height: parent.height
|
|
spacing: Theme.spacingS
|
|
|
|
Rectangle {
|
|
width: 8
|
|
height: parent.height - Theme.iconSizeSmall - Theme.spacingS
|
|
radius: 4
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
|
|
|
|
Rectangle {
|
|
width: parent.width
|
|
height: parent.height * Math.min(Math.max((DgopService.cpuTemperature || 40) / 100, 0), 1)
|
|
radius: parent.radius
|
|
anchors.bottom: parent.bottom
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
color: {
|
|
if (DgopService.cpuTemperature > 85) return Theme.error
|
|
if (DgopService.cpuTemperature > 69) return Theme.warning
|
|
return Theme.primary
|
|
}
|
|
|
|
Behavior on height {
|
|
NumberAnimation {
|
|
duration: Theme.shortDuration
|
|
easing.type: Theme.standardEasing
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Item {
|
|
width: parent.width
|
|
height: Theme.iconSizeSmall
|
|
|
|
DankIcon {
|
|
name: "device_thermostat"
|
|
size: Theme.iconSizeSmall
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
anchors.bottom: parent.bottom
|
|
color: {
|
|
if (DgopService.cpuTemperature > 85) return Theme.error
|
|
if (DgopService.cpuTemperature > 69) return Theme.warning
|
|
return Theme.primary
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// RAM Bar
|
|
Column {
|
|
width: (parent.width - 2 * Theme.spacingM) / 3
|
|
height: parent.height
|
|
spacing: Theme.spacingS
|
|
|
|
Rectangle {
|
|
width: 8
|
|
height: parent.height - Theme.iconSizeSmall - Theme.spacingS
|
|
radius: 4
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.2)
|
|
|
|
Rectangle {
|
|
width: parent.width
|
|
height: parent.height * Math.min((DgopService.memoryUsage || 42) / 100, 1)
|
|
radius: parent.radius
|
|
anchors.bottom: parent.bottom
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
color: {
|
|
if (DgopService.memoryUsage > 90) return Theme.error
|
|
if (DgopService.memoryUsage > 75) return Theme.warning
|
|
return Theme.primary
|
|
}
|
|
|
|
Behavior on height {
|
|
NumberAnimation {
|
|
duration: Theme.shortDuration
|
|
easing.type: Theme.standardEasing
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Item {
|
|
width: parent.width
|
|
height: Theme.iconSizeSmall
|
|
|
|
DankIcon {
|
|
name: "developer_board"
|
|
size: Theme.iconSizeSmall
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
anchors.bottom: parent.bottom
|
|
color: {
|
|
if (DgopService.memoryUsage > 90) return Theme.error
|
|
if (DgopService.memoryUsage > 75) return Theme.warning
|
|
return Theme.primary
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |