diff --git a/Modules/Bar/Widgets/SystemMonitor.qml b/Modules/Bar/Widgets/SystemMonitor.qml index 5cc6a79c..05575a0f 100644 --- a/Modules/Bar/Widgets/SystemMonitor.qml +++ b/Modules/Bar/Widgets/SystemMonitor.qml @@ -423,11 +423,24 @@ Rectangle { // Disk Usage Component (primary drive) Item { + id: diskContainer Layout.preferredWidth: isVertical ? root.width : iconSize + percentTextWidth + (Style.marginXXS) Layout.preferredHeight: Style.capsuleHeight Layout.alignment: isVertical ? Qt.AlignHCenter : Qt.AlignVCenter visible: showDiskUsage + // Status indicator covering the entire component + Loader { + sourceComponent: statusIndicatorComponent + anchors.centerIn: parent + + onLoaded: { + item.warning = Qt.binding(() => diskWarning) + item.critical = Qt.binding(() => diskCritical) + item.indicatorWidth = Qt.binding(() => diskContainer.width) + } + } + GridLayout { id: diskContent anchors.centerIn: parent @@ -444,6 +457,8 @@ Rectangle { Layout.alignment: Qt.AlignCenter Layout.row: isVertical ? 1 : 0 Layout.column: 0 + // Invert color when disk indicator active + color: (diskWarning || diskCritical) ? Color.mSurfaceVariant : textColor } NText { @@ -456,7 +471,8 @@ Rectangle { Layout.preferredWidth: isVertical ? -1 : percentTextWidth horizontalAlignment: isVertical ? Text.AlignHCenter : Text.AlignRight verticalAlignment: Text.AlignVCenter - color: textColor + // Invert text color to bar background when disk indicator active + color: (diskWarning || diskCritical) ? Color.mSurfaceVariant : textColor Layout.row: isVertical ? 0 : 0 Layout.column: isVertical ? 0 : 1 scale: isVertical ? Math.min(1.0, root.width / implicitWidth) : 1.0