From e2bb4d7340282b260b1839d722b955883a1d56ab Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Fri, 28 Oct 2011 11:23:00 +0200 Subject: [PATCH] * Properly center album icons. --- .../playlist/albumitemdelegate.cpp | 2 +- src/libtomahawk/playlist/albumview.cpp | 24 ++++++++++++++++++- src/libtomahawk/playlist/albumview.h | 1 + 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/libtomahawk/playlist/albumitemdelegate.cpp b/src/libtomahawk/playlist/albumitemdelegate.cpp index 4758e3c1f..15a6844cd 100644 --- a/src/libtomahawk/playlist/albumitemdelegate.cpp +++ b/src/libtomahawk/playlist/albumitemdelegate.cpp @@ -117,7 +117,7 @@ AlbumItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, oneLiner = true; else oneLiner = ( textRect.height() / 2 < painter->fontMetrics().boundingRect( item->album()->name() ).height() || - textRect.height() / 2 < painter->fontMetrics().boundingRect( item->album()->artist()->name() ).height() ); + textRect.height() / 2 < painter->fontMetrics().boundingRect( item->album()->artist()->name() ).height() ); if ( oneLiner ) { diff --git a/src/libtomahawk/playlist/albumview.cpp b/src/libtomahawk/playlist/albumview.cpp index 45099d6e8..a3aa5ad9c 100644 --- a/src/libtomahawk/playlist/albumview.cpp +++ b/src/libtomahawk/playlist/albumview.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include "audio/audioengine.h" #include "tomahawksettings.h" @@ -47,7 +48,8 @@ AlbumView::AlbumView( QWidget* parent ) setDropIndicatorShown( false ); setDragDropOverwriteMode( false ); setUniformItemSizes( true ); - setSpacing( 20 ); + setSpacing( 16 ); + setContentsMargins( 0, 0, 0, 0 ); setResizeMode( Adjust ); setViewMode( IconMode ); @@ -179,6 +181,26 @@ AlbumView::paintEvent( QPaintEvent* event ) } +void +AlbumView::resizeEvent( QResizeEvent* event ) +{ + QListView::resizeEvent( event ); + + int scrollbar = !verticalScrollBar()->isVisible() ? verticalScrollBar()->rect().width() : 0; + int rectWidth = contentsRect().width() - scrollbar - 16 - 3; + QSize itemSize = m_proxyModel->data( QModelIndex(), Qt::SizeHintRole ).toSize(); + + int itemsPerRow = qFloor( rectWidth / ( itemSize.width() + 16 ) ); + int rightSpacing = rectWidth - ( itemsPerRow * ( itemSize.width() + 16 ) ); + int newSpacing = 16 + floor( rightSpacing / ( itemsPerRow + 1 ) ); + + if ( itemsPerRow < 1 ) + setSpacing( 16 ); + else + setSpacing( newSpacing ); +} + + void AlbumView::onFilterChanged( const QString& ) { diff --git a/src/libtomahawk/playlist/albumview.h b/src/libtomahawk/playlist/albumview.h index 52dfecee3..68736c55e 100644 --- a/src/libtomahawk/playlist/albumview.h +++ b/src/libtomahawk/playlist/albumview.h @@ -63,6 +63,7 @@ protected: virtual void startDrag( Qt::DropActions supportedActions ); void paintEvent( QPaintEvent* event ); + void resizeEvent( QResizeEvent* event ); private slots: void onFilterChanged( const QString& filter );