From 43422575654d374e1f812927752d94844759d7d5 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Mon, 6 Oct 2014 08:23:55 +0200 Subject: [PATCH] * Darken blurred background images. --- src/libtomahawk/widgets/BackgroundWidget.cpp | 26 +++++++++++++++----- src/libtomahawk/widgets/BackgroundWidget.h | 1 + 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/libtomahawk/widgets/BackgroundWidget.cpp b/src/libtomahawk/widgets/BackgroundWidget.cpp index b8b62ba79..5410c7006 100644 --- a/src/libtomahawk/widgets/BackgroundWidget.cpp +++ b/src/libtomahawk/widgets/BackgroundWidget.cpp @@ -31,6 +31,7 @@ using namespace Tomahawk; BackgroundWidget::BackgroundWidget( QWidget* parent ) : QWidget( parent ) + , m_blurred( false ) { setAutoFillBackground( false ); BackgroundWidget::setBackgroundColor( QColor( "#333333" ) ); @@ -45,6 +46,7 @@ BackgroundWidget::~BackgroundWidget() void BackgroundWidget::setBackground( const QPixmap& p, bool blurred, bool blackWhite ) { + m_blurred = blurred; if ( blurred ) { m_background = QPixmap::fromImage( TomahawkUtils::blurred( p.toImage(), p.rect(), 10, false, blackWhite ) ); @@ -79,12 +81,6 @@ BackgroundWidget::paintEvent( QPaintEvent* event ) { QPainter painter( this ); - painter.save(); - painter.setPen( m_backgroundColor ); - painter.setBrush( m_backgroundColor ); - painter.drawRect( event->rect() ); - painter.restore(); - if ( m_backgroundSlice.isNull() && !m_background.isNull() ) { m_backgroundSlice = m_background.scaledToWidth( contentsRect().width(), Qt::SmoothTransformation ); @@ -94,6 +90,24 @@ BackgroundWidget::paintEvent( QPaintEvent* event ) if ( !m_backgroundSlice.isNull() ) { painter.drawPixmap( event->rect(), m_backgroundSlice.copy( event->rect() ) ); + + if ( m_blurred ) + { + painter.save(); + painter.setPen( Qt::black ); + painter.setBrush( Qt::black ); + painter.setOpacity( 0.25 ); + painter.drawRect( event->rect() ); + painter.restore(); + } + } + else + { + painter.save(); + painter.setPen( m_backgroundColor ); + painter.setBrush( m_backgroundColor ); + painter.drawRect( event->rect() ); + painter.restore(); } QWidget::paintEvent( event ); diff --git a/src/libtomahawk/widgets/BackgroundWidget.h b/src/libtomahawk/widgets/BackgroundWidget.h index 0a4281898..d8a2d93f2 100644 --- a/src/libtomahawk/widgets/BackgroundWidget.h +++ b/src/libtomahawk/widgets/BackgroundWidget.h @@ -44,6 +44,7 @@ private: QColor m_backgroundColor; QPixmap m_background; QPixmap m_backgroundSlice; + bool m_blurred; }; #endif // BACKGROUNDWIDGET_H