X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/cdcb4b0166aefdd382d20e7ff3b5cb217ba54ba8..ec00f379dc42b00a64ab1af25bb4bb1a06bd7449:/src/statusbarmessagelabel.cpp diff --git a/src/statusbarmessagelabel.cpp b/src/statusbarmessagelabel.cpp index a8956caaf..fd2c2abd9 100644 --- a/src/statusbarmessagelabel.cpp +++ b/src/statusbarmessagelabel.cpp @@ -20,17 +20,17 @@ #include "statusbarmessagelabel.h" -#include +#include +#include #include #include #include #include #include -#include +#include #include #include -#include #include StatusBarMessageLabel::StatusBarMessageLabel(QWidget* parent) : @@ -44,11 +44,15 @@ StatusBarMessageLabel::StatusBarMessageLabel(QWidget* parent) : { setMinimumHeight(K3Icon::SizeSmall); + QPalette palette; + palette.setColor(QPalette::Background, Qt::transparent); + setPalette(palette); + m_timer = new QTimer(this); connect(m_timer, SIGNAL(timeout()), this, SLOT(timerDone())); - m_closeButton = new QPushButton(i18n("Close"), this); + m_closeButton = new QPushButton(i18nc("@action:button", "Close"), this); m_closeButton->hide(); connect(m_closeButton, SIGNAL(clicked()), this, SLOT(closeErrorMessage())); @@ -95,7 +99,6 @@ void StatusBarMessageLabel::setMessage(const QString& text, break; case DolphinStatusBar::Error: - iconName = "dialog-error"; m_timer->start(100); m_state = Illuminate; @@ -135,11 +138,14 @@ void StatusBarMessageLabel::paintEvent(QPaintEvent* /* event */) QPainter painter(this); // draw background - QColor backgroundColor(palette().brush(QPalette::Background).color()); - QColor foregroundColor(KGlobalSettings::textColor()); + QColor backgroundColor = palette().brush(QPalette::Background).color(); + QColor foregroundColor = KColorScheme(KColorScheme::View).foreground(); if (m_illumination > 0) { - backgroundColor = mixColors(backgroundColor, QColor(255, 255, 128), m_illumination); - foregroundColor = mixColors(foregroundColor, QColor(0, 0, 0), m_illumination); + // TODO: are there foreground and background colors available for + // "error messages"? + backgroundColor.setRgb(255, 255, 0, m_illumination); + QColor mixColor(0, 0, 0, m_illumination); + foregroundColor = KColorUtils::overlayColors(foregroundColor, mixColor); } painter.setBrush(backgroundColor); painter.setPen(backgroundColor); @@ -176,8 +182,12 @@ void StatusBarMessageLabel::timerDone() switch (m_state) { case Illuminate: { // increase the illumination - if (m_illumination < 100) { - m_illumination += 20; + const int illumination_max = 128; + if (m_illumination < illumination_max) { + m_illumination += 32; + if (m_illumination > illumination_max) { + m_illumination = illumination_max; + } update(); } else { m_state = Illuminated; @@ -259,17 +269,6 @@ int StatusBarMessageLabel::availableTextWidth() const return width() - m_pixmap.width() - (borderGap() * 4) - buttonWidth; } -QColor StatusBarMessageLabel::mixColors(const QColor& c1, - const QColor& c2, - int percent) const -{ - const int recip = 100 - percent; - const int red = (c1.red() * recip + c2.red() * percent) / 100; - const int green = (c1.green() * recip + c2.green() * percent) / 100; - const int blue = (c1.blue() * recip + c2.blue() * percent) / 100; - return QColor(red, green, blue); -} - void StatusBarMessageLabel::updateCloseButtonPosition() { const int x = width() - m_closeButton->width() - borderGap();