X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/188132117e2cfdee21d0820101eb79aaa65a4c70..862ceee323ad3b474ce9de11eefbddd99c528fac:/src/statusbarmessagelabel.cpp diff --git a/src/statusbarmessagelabel.cpp b/src/statusbarmessagelabel.cpp index b79448b23..759ceed6d 100644 --- a/src/statusbarmessagelabel.cpp +++ b/src/statusbarmessagelabel.cpp @@ -21,29 +21,33 @@ #include "statusbarmessagelabel.h" #include +#include #include #include #include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include StatusBarMessageLabel::StatusBarMessageLabel(QWidget* parent) : - QWidget(parent), - m_type(DolphinStatusBar::Default), - m_state(Default), - m_illumination(0), - m_minTextHeight(-1), - m_timer(0), - m_closeButton(0) + QWidget(parent), + m_type(DolphinStatusBar::Default), + m_state(Default), + m_illumination(0), + m_minTextHeight(-1), + m_timer(0), + m_closeButton(0) { 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())); @@ -138,8 +142,11 @@ void StatusBarMessageLabel::paintEvent(QPaintEvent* /* event */) QColor backgroundColor(palette().brush(QPalette::Background).color()); QColor foregroundColor(KGlobalSettings::textColor()); 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 +183,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 +270,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();