mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-03 20:57:52 +02:00
* Safe approach to prevent resizing of album items.
This commit is contained in:
@@ -208,7 +208,7 @@ AlbumView::onScrollTimeout()
|
|||||||
void
|
void
|
||||||
AlbumView::paintEvent( QPaintEvent* event )
|
AlbumView::paintEvent( QPaintEvent* event )
|
||||||
{
|
{
|
||||||
if ( m_inited )
|
if ( !autoFitItems() || m_inited || !m_proxyModel->rowCount() )
|
||||||
QListView::paintEvent( event );
|
QListView::paintEvent( event );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -216,28 +216,30 @@ AlbumView::paintEvent( QPaintEvent* event )
|
|||||||
void
|
void
|
||||||
AlbumView::resizeEvent( QResizeEvent* event )
|
AlbumView::resizeEvent( QResizeEvent* event )
|
||||||
{
|
{
|
||||||
QListView::resizeEvent( event );
|
if ( autoFitItems() )
|
||||||
|
{
|
||||||
m_inited = true;
|
|
||||||
if ( !autoFitItems() )
|
|
||||||
return;
|
|
||||||
|
|
||||||
#ifdef Q_WS_X11
|
#ifdef Q_WS_X11
|
||||||
int scrollbar = !verticalScrollBar()->isVisible() ? verticalScrollBar()->rect().width() : 0;
|
int scrollbar = !verticalScrollBar()->isVisible() ? verticalScrollBar()->rect().width() : 0;
|
||||||
#else
|
#else
|
||||||
int scrollbar = verticalScrollBar()->rect().width();
|
int scrollbar = verticalScrollBar()->rect().width();
|
||||||
#endif
|
#endif
|
||||||
int rectWidth = contentsRect().width() - scrollbar - 16 - 3;
|
int rectWidth = contentsRect().width() - scrollbar - 16 - 3;
|
||||||
QSize itemSize = m_proxyModel->data( QModelIndex(), Qt::SizeHintRole ).toSize();
|
QSize itemSize = m_proxyModel->data( QModelIndex(), Qt::SizeHintRole ).toSize();
|
||||||
|
|
||||||
int itemsPerRow = qFloor( rectWidth / ( itemSize.width() + 16 ) );
|
int itemsPerRow = qFloor( rectWidth / ( itemSize.width() + 16 ) );
|
||||||
int rightSpacing = rectWidth - ( itemsPerRow * ( itemSize.width() + 16 ) );
|
int rightSpacing = rectWidth - ( itemsPerRow * ( itemSize.width() + 16 ) );
|
||||||
int newSpacing = 16 + floor( rightSpacing / ( itemsPerRow + 1 ) );
|
int newSpacing = 16 + floor( rightSpacing / ( itemsPerRow + 1 ) );
|
||||||
|
|
||||||
if ( itemsPerRow < 1 )
|
if ( itemsPerRow < 1 )
|
||||||
setSpacing( 16 );
|
setSpacing( 16 );
|
||||||
else
|
else
|
||||||
setSpacing( newSpacing );
|
setSpacing( newSpacing );
|
||||||
|
|
||||||
|
if ( !m_inited && m_proxyModel->rowCount() )
|
||||||
|
m_inited = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
QListView::resizeEvent( event );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user