From 82f5e2afcb006d254fa9c3d2296f81a6bd601d37 Mon Sep 17 00:00:00 2001 From: Ludovic Fauvet Date: Mon, 25 Jan 2010 15:09:25 +0100 Subject: [PATCH] Qt: add drow shadow effect Signed-off-by: Jean-Baptiste Kempf --- .../gui/qt4/components/playlist/icon_view.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/modules/gui/qt4/components/playlist/icon_view.cpp b/modules/gui/qt4/components/playlist/icon_view.cpp index 2b9f52c68d..2169749031 100644 --- a/modules/gui/qt4/components/playlist/icon_view.cpp +++ b/modules/gui/qt4/components/playlist/icon_view.cpp @@ -32,10 +32,11 @@ #include "assert.h" -#define RECT_SIZE 100 -#define ART_SIZE 64 -#define OFFSET (100-64)/2 -#define ITEMS_SPACING 10 +#define RECT_SIZE 100 +#define ART_SIZE 64 +#define OFFSET (100-64)/2 +#define ITEMS_SPACING 10 +#define ART_RADIUS 7 void PlListViewItemDelegate::paint( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const { @@ -62,8 +63,16 @@ void PlListViewItemDelegate::paint( QPainter * painter, const QStyleOptionViewIt QRect artRect = option.rect.adjusted( OFFSET - 1, 0, - OFFSET, - OFFSET *2 ); QPainterPath artRectPath; - artRectPath.addRoundedRect( artRect, 7, 7 ); + artRectPath.addRoundedRect( artRect, ART_RADIUS, ART_RADIUS ); + // Draw the drop shadow + painter->save(); + painter->setOpacity( 0.7 ); + painter->setBrush( QBrush( Qt::gray ) ); + painter->drawRoundedRect( artRect.adjusted( 2, 2, 2, 2 ), ART_RADIUS, ART_RADIUS ); + painter->restore(); + + // Draw the art pixmap painter->drawPixmap( artRect, pix ); painter->setClipPath( artRectPath ); painter->drawPixmap( artRect, pix ); -- 2.39.2