diff --git a/src/statusbar/statusbarspaceinfo.cpp b/src/statusbar/statusbarspaceinfo.cpp --- a/src/statusbar/statusbarspaceinfo.cpp +++ b/src/statusbar/statusbarspaceinfo.cpp @@ -22,10 +22,12 @@ #include "spaceinfoobserver.h" +#include #include #include #include +#include StatusBarSpaceInfo::StatusBarSpaceInfo(QWidget* parent) : KCapacityBar(KCapacityBar::DrawTextInline, parent), @@ -104,7 +106,25 @@ const quint64 used = size - available; const int percentUsed = qRound(100.0 * qreal(used) / qreal(size)); + QPalette new_palette = palette(); + KColorScheme colorScheme(QPalette::Active, KColorScheme::Window); + + if (percentUsed >= 90) { + // breeze style + new_palette.setBrush(QPalette::Highlight, colorScheme.background(KColorScheme::NegativeBackground)); + // fusion style + new_palette.setBrush(QPalette::Background, colorScheme.background(KColorScheme::NegativeBackground)); + } else { + // breeze style + new_palette.setBrush(QPalette::Highlight, colorScheme.background(KColorScheme::PositiveBackground)); + // fusion style + new_palette.setBrush(QPalette::Background, colorScheme.background(KColorScheme::PositiveBackground)); + } + + setPalette(new_palette); + setText(i18nc("@info:status Free disk space", "%1 free", KIO::convertSize(available))); + setToolTip(i18nc("@info:status Free disk space", "%1% used", percentUsed)); setUpdatesEnabled(false); setValue(percentUsed); setUpdatesEnabled(true);