- QPainter painter(this);
- const int barWidth = width();
- const int barTop = 2;
- const int barHeight = height() - 4;
-
- QString text;
-
- const int widthDec = 3; // visual decrement for the available width
-
- const QColor c1 = colorGroup().background();
- const QColor c2 = KGlobalSettings::buttonTextColor();
- const QColor frameColor((c1.red() + c2.red()) / 2,
- (c1.green() + c2.green()) / 2,
- (c1.blue() + c2.blue()) / 2);
- painter.setPen(frameColor);
-
- const QColor backgrColor = KGlobalSettings::baseColor();
- painter.setBrush(backgrColor);
-
- painter.drawRect(QRect(0, barTop + 1 , barWidth - widthDec, barHeight));
-
- if ((m_kBSize > 0) && (m_kBAvailable > 0)) {
- // draw 'used size' bar
- painter.setPen(Qt::NoPen);
- painter.setBrush(progressColor(backgrColor));
- int usedWidth = barWidth - static_cast<int>((m_kBAvailable *
- static_cast<float>(barWidth)) / m_kBSize);
- const int left = 1;
- int right = usedWidth - (widthDec + 1);
- if (right < left) {
- right = left;
- }
- painter.drawRect(QRect(left, barTop + 2, right, barHeight - 2));
-
- text = i18n("%1% of %2 used")
- .arg( 100 - (int)(100.0 * m_kBAvailable / m_kBSize))
- .arg(KIO::convertSizeFromKB(m_kBSize));
- }
- else {
- if (m_gettingSize) {
- text = i18n("Getting size...");
- }
- else {
- text = "";
- QTimer::singleShot(0, this, SLOT(hide()));
- }
- }
-
- // draw text (usually 'X% of Y GB used')
- painter.setPen(KGlobalSettings::textColor());
- painter.drawText(QRect(1, 1, barWidth - 2, barHeight + 4),
- Qt::AlignHCenter | Qt::AlignVCenter | Qt::WordBreak,
- text);