#include "assert.h"
-#define RECT_SIZE 100
-#define ART_SIZE 64
-#define OFFSET (100-64)/2
+#define RECT_SIZE 100
+#define ART_SIZE 64
+#define OFFSET (100-64)/2
+#define ITEMS_SPACING 10
+#define ART_RADIUS 5
void PlListViewItemDelegate::paint( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const
{
- painter->setRenderHint( QPainter::Antialiasing );
+ painter->setRenderHints( QPainter::Antialiasing | QPainter::SmoothPixmapTransform );
/*if( option.state & QStyle::State_Selected )
painter->fillRect(option.rect, option.palette.highlight());*/
pix = QPixmap( ":/noart64" );
}
- QRect art_rect = option.rect.adjusted( OFFSET - 1, 0, - OFFSET, - OFFSET *2 );
+ QRect artRect = option.rect.adjusted( OFFSET - 1, 0, - OFFSET, - OFFSET *2 );
+ QPainterPath artRectPath;
+ artRectPath.addRoundedRect( artRect, ART_RADIUS, ART_RADIUS );
- painter->drawPixmap( art_rect, pix );
+ // 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->setClipPath( artRectPath );
+ painter->drawPixmap( artRect, pix );
+ painter->setClipping( false );
painter->setFont( QFont( "Verdana", 7 ) );
QRect textRect = option.rect.adjusted( 1, ART_SIZE + 2, -1, -1 );
- painter->drawText( textRect, qfu( input_item_GetTitle( currentItem->inputItem() ) ),
+ painter->drawText( textRect, qfu( input_item_GetTitleFbName( currentItem->inputItem() ) ),
QTextOption( Qt::AlignCenter ) );
}
setModel( model );
setViewMode( QListView::IconMode );
setMovement( QListView::Static );
+ setResizeMode( QListView::Adjust );
+ setGridSize( QSize( 100, 100 ) );
+ setSpacing( ITEMS_SPACING );
+ setWrapping( true );
PlListViewItemDelegate *pl = new PlListViewItemDelegate();
setItemDelegate( pl );