2026-02-24 16:19:31 +00:00
|
|
|
|
import QtQuick 2.15
|
|
|
|
|
|
import QtQuick.Layouts 1.15
|
|
|
|
|
|
import org.kde.plasma.core 2.0 as PlasmaCore
|
|
|
|
|
|
import org.kde.plasma.components 2.0 as PlasmaComponents
|
2026-02-24 19:20:25 +00:00
|
|
|
|
import "logic/CpuWriter.js" as Writer
|
2026-02-24 16:19:31 +00:00
|
|
|
|
|
|
|
|
|
|
Column {
|
|
|
|
|
|
id: root
|
|
|
|
|
|
|
|
|
|
|
|
property int currentPerf: 100
|
|
|
|
|
|
signal perfChangeRequested(int newValue)
|
|
|
|
|
|
|
|
|
|
|
|
spacing: 8
|
|
|
|
|
|
|
|
|
|
|
|
PlasmaComponents.Label {
|
|
|
|
|
|
text: "CPU Limit"
|
|
|
|
|
|
font.pointSize: 10
|
|
|
|
|
|
opacity: 0.6
|
|
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
RowLayout {
|
|
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
|
|
|
|
spacing: 12
|
|
|
|
|
|
|
|
|
|
|
|
Rectangle {
|
|
|
|
|
|
width: 44; height: 44
|
|
|
|
|
|
radius: 22
|
|
|
|
|
|
color: Writer.canDecrease(root.currentPerf)
|
|
|
|
|
|
? Qt.rgba(PlasmaCore.Theme.textColor.r,
|
|
|
|
|
|
PlasmaCore.Theme.textColor.g,
|
|
|
|
|
|
PlasmaCore.Theme.textColor.b, 0.1)
|
|
|
|
|
|
: "transparent"
|
|
|
|
|
|
opacity: Writer.canDecrease(root.currentPerf) ? 1.0 : 0.3
|
|
|
|
|
|
|
|
|
|
|
|
PlasmaComponents.Label {
|
|
|
|
|
|
text: "−5"
|
|
|
|
|
|
font.pointSize: 12
|
|
|
|
|
|
font.weight: Font.Medium
|
|
|
|
|
|
anchors.centerIn: parent
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
MouseArea {
|
|
|
|
|
|
anchors.fill: parent
|
|
|
|
|
|
enabled: Writer.canDecrease(root.currentPerf)
|
|
|
|
|
|
cursorShape: enabled ? Qt.PointingHandCursor : Qt.ArrowCursor
|
|
|
|
|
|
onClicked: root.perfChangeRequested(Writer.decrease(root.currentPerf))
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Column {
|
|
|
|
|
|
spacing: 2
|
|
|
|
|
|
|
|
|
|
|
|
PlasmaComponents.Label {
|
|
|
|
|
|
text: root.currentPerf + "%"
|
|
|
|
|
|
font.pointSize: 22
|
|
|
|
|
|
font.weight: Font.DemiBold
|
|
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Rectangle {
|
|
|
|
|
|
width: 80; height: 4
|
|
|
|
|
|
radius: 2
|
|
|
|
|
|
color: Qt.rgba(PlasmaCore.Theme.textColor.r,
|
|
|
|
|
|
PlasmaCore.Theme.textColor.g,
|
|
|
|
|
|
PlasmaCore.Theme.textColor.b, 0.1)
|
|
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
|
|
|
|
|
|
|
|
|
|
Rectangle {
|
|
|
|
|
|
width: parent.width * root.currentPerf / 100
|
|
|
|
|
|
height: parent.height
|
|
|
|
|
|
radius: 2
|
|
|
|
|
|
color: root.currentPerf > 80 ? "#34c759"
|
|
|
|
|
|
: root.currentPerf > 50 ? "#ffcc00"
|
|
|
|
|
|
: "#ff9500"
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Rectangle {
|
|
|
|
|
|
width: 44; height: 44
|
|
|
|
|
|
radius: 22
|
|
|
|
|
|
color: Writer.canIncrease(root.currentPerf)
|
|
|
|
|
|
? Qt.rgba(PlasmaCore.Theme.textColor.r,
|
|
|
|
|
|
PlasmaCore.Theme.textColor.g,
|
|
|
|
|
|
PlasmaCore.Theme.textColor.b, 0.1)
|
|
|
|
|
|
: "transparent"
|
|
|
|
|
|
opacity: Writer.canIncrease(root.currentPerf) ? 1.0 : 0.3
|
|
|
|
|
|
|
|
|
|
|
|
PlasmaComponents.Label {
|
|
|
|
|
|
text: "+5"
|
|
|
|
|
|
font.pointSize: 12
|
|
|
|
|
|
font.weight: Font.Medium
|
|
|
|
|
|
anchors.centerIn: parent
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
MouseArea {
|
|
|
|
|
|
anchors.fill: parent
|
|
|
|
|
|
enabled: Writer.canIncrease(root.currentPerf)
|
|
|
|
|
|
cursorShape: enabled ? Qt.PointingHandCursor : Qt.ArrowCursor
|
|
|
|
|
|
onClicked: root.perfChangeRequested(Writer.increase(root.currentPerf))
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|