added two new themes, reworked Crypto.qml and Stats.qml, standardized the buttons for the modules, added a new Sidebar widget which contains new 3 modules
This commit is contained in:
90
widgets/sidebar/sysinfo/SysInfoRow.qml
Normal file
90
widgets/sidebar/sysinfo/SysInfoRow.qml
Normal file
@@ -0,0 +1,90 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
|
||||
// ── SysInfoRow ────────────────────────────────────────────────────────────────
|
||||
// Metric row with icon badge, label, right-aligned value, and an optional
|
||||
// animated progress bar underneath.
|
||||
Item {
|
||||
id: root
|
||||
|
||||
property string icon: ""
|
||||
property string label: ""
|
||||
property string value: "—"
|
||||
property color iconColor: "#ffffffff"
|
||||
property color dimColor: "#997a8996"
|
||||
property color textColor: "#ffe8eef2"
|
||||
property bool showBar: false
|
||||
property int barPct: 0 // 0-100
|
||||
property color barColor: iconColor
|
||||
property color trackColor: "#15ffffff"
|
||||
|
||||
implicitHeight: col.implicitHeight
|
||||
implicitWidth: col.implicitWidth
|
||||
|
||||
ColumnLayout {
|
||||
id: col
|
||||
anchors { left: parent.left; right: parent.right }
|
||||
spacing: 5
|
||||
|
||||
// ── Label row ─────────────────────────────────────────────────────────
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
spacing: 10
|
||||
|
||||
// Icon in a tinted pill badge
|
||||
Rectangle {
|
||||
width: 18; height: 18
|
||||
radius: 4
|
||||
color: Qt.alpha(root.iconColor, 0.15)
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
text: root.icon
|
||||
color: root.iconColor
|
||||
font.pixelSize: 12
|
||||
}
|
||||
}
|
||||
|
||||
Text {
|
||||
text: root.label
|
||||
color: root.dimColor
|
||||
font.pixelSize: 12
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
|
||||
Text {
|
||||
text: root.value
|
||||
color: root.textColor
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Medium
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
}
|
||||
|
||||
// ── Progress bar (optional) ───────────────────────────────────────────
|
||||
Rectangle {
|
||||
visible: root.showBar
|
||||
Layout.fillWidth: true
|
||||
height: 3
|
||||
radius: 2
|
||||
color: root.trackColor
|
||||
|
||||
Rectangle {
|
||||
width: parent.width * Math.max(0, Math.min(root.barPct, 100)) / 100
|
||||
height: parent.height
|
||||
radius: parent.radius
|
||||
color: root.barColor
|
||||
|
||||
// smooth fill transitions on data refresh
|
||||
Behavior on width {
|
||||
NumberAnimation { duration: 800; easing.type: Easing.OutCubic }
|
||||
}
|
||||
Behavior on color {
|
||||
ColorAnimation { duration: 300 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user