mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-23 22:25:11 +02:00
also adjust the PlaylistDelegate
This commit is contained in:
@@ -187,7 +187,18 @@ PlaylistDelegate::sizeHint( const QStyleOptionViewItem& option, const QModelInde
|
|||||||
{
|
{
|
||||||
Q_UNUSED( option );
|
Q_UNUSED( option );
|
||||||
Q_UNUSED( index );
|
Q_UNUSED( index );
|
||||||
return QSize( 0, 64 );
|
|
||||||
|
// Calculates the size for the bold line + 3 normal lines + margins
|
||||||
|
int height = 2 * 6; // margins
|
||||||
|
QFont font = option.font;
|
||||||
|
QFontMetrics fm1( font );
|
||||||
|
font.setPointSize( 8 );
|
||||||
|
height += fm1.height() * 3;
|
||||||
|
font.setPointSize( 9 );
|
||||||
|
QFontMetrics fm2( font );
|
||||||
|
height += fm2.height();
|
||||||
|
|
||||||
|
return QSize( 0, height );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -210,14 +221,17 @@ PlaylistDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option,
|
|||||||
QTextOption to;
|
QTextOption to;
|
||||||
to.setAlignment( Qt::AlignCenter );
|
to.setAlignment( Qt::AlignCenter );
|
||||||
QFont font = opt.font;
|
QFont font = opt.font;
|
||||||
font.setPixelSize( 10 );
|
font.setPointSize( 8 );
|
||||||
|
QFontMetrics fontMetrics( font );
|
||||||
|
|
||||||
QFont boldFont = font;
|
QFont boldFont = font;
|
||||||
boldFont.setBold( true );
|
boldFont.setBold( true );
|
||||||
boldFont.setPixelSize( 11 );
|
boldFont.setPointSize( 9 );
|
||||||
|
QFontMetrics boldFontMetrics( boldFont );
|
||||||
|
|
||||||
QFont figFont = boldFont;
|
QFont figFont = boldFont;
|
||||||
figFont.setPixelSize( 10 );
|
figFont.setPointSize( 8 );
|
||||||
|
QFontMetrics figFontMetrics( figFont );
|
||||||
|
|
||||||
QPixmap icon;
|
QPixmap icon;
|
||||||
RecentlyPlayedPlaylistsModel::PlaylistTypes type = (RecentlyPlayedPlaylistsModel::PlaylistTypes)index.data( RecentlyPlayedPlaylistsModel::PlaylistTypeRole ).toInt();
|
RecentlyPlayedPlaylistsModel::PlaylistTypes type = (RecentlyPlayedPlaylistsModel::PlaylistTypes)index.data( RecentlyPlayedPlaylistsModel::PlaylistTypeRole ).toInt();
|
||||||
@@ -228,7 +242,7 @@ PlaylistDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option,
|
|||||||
else if( type == RecentlyPlayedPlaylistsModel::Station )
|
else if( type == RecentlyPlayedPlaylistsModel::Station )
|
||||||
icon = m_stationIcon;
|
icon = m_stationIcon;
|
||||||
|
|
||||||
QRect pixmapRect = option.rect.adjusted( 10, 13, -option.rect.width() + 48, -13 );
|
QRect pixmapRect = option.rect.adjusted( 10, 13, -option.rect.width() + option.rect.height() - 26, -13 );
|
||||||
icon = icon.scaled( pixmapRect.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation );
|
icon = icon.scaled( pixmapRect.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation );
|
||||||
|
|
||||||
painter->drawPixmap( pixmapRect, icon );
|
painter->drawPixmap( pixmapRect, icon );
|
||||||
@@ -258,7 +272,7 @@ PlaylistDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option,
|
|||||||
QPixmap avatar = index.data( RecentlyPlayedPlaylistsModel::PlaylistRole ).value< Tomahawk::playlist_ptr >()->author()->avatar( Source::FancyStyle );
|
QPixmap avatar = index.data( RecentlyPlayedPlaylistsModel::PlaylistRole ).value< Tomahawk::playlist_ptr >()->author()->avatar( Source::FancyStyle );
|
||||||
if ( avatar.isNull() )
|
if ( avatar.isNull() )
|
||||||
avatar = m_defaultAvatar;
|
avatar = m_defaultAvatar;
|
||||||
QRect r( option.rect.width() - avatar.width() - 10, option.rect.top() + option.rect.height()/2 - avatar.height()/2, avatar.width(), avatar.height() );
|
QRect r( option.rect.width() - option.fontMetrics.height() * 2.5 - 10, option.rect.top() + option.rect.height()/2.25 - option.fontMetrics.height(), option.fontMetrics.height() * 2.5, option.fontMetrics.height() * 2.2 );
|
||||||
painter->drawPixmap( r, avatar );
|
painter->drawPixmap( r, avatar );
|
||||||
|
|
||||||
painter->setFont( font );
|
painter->setFont( font );
|
||||||
@@ -287,7 +301,7 @@ PlaylistDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option,
|
|||||||
painter->setPen( QColor( Qt::gray ).darker() );
|
painter->setPen( QColor( Qt::gray ).darker() );
|
||||||
}
|
}
|
||||||
|
|
||||||
QRect rectText = option.rect.adjusted( 66, 20, -leftEdge - 10, -8 );
|
QRect rectText = option.rect.adjusted( option.fontMetrics.height() * 4.5, boldFontMetrics.height() + 6, -leftEdge - 10, -8 );
|
||||||
#ifdef Q_WS_MAC
|
#ifdef Q_WS_MAC
|
||||||
rectText.adjust( 0, 1, 0, 0 );
|
rectText.adjust( 0, 1, 0, 0 );
|
||||||
#elif defined Q_WS_WIN
|
#elif defined Q_WS_WIN
|
||||||
@@ -299,7 +313,7 @@ PlaylistDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option,
|
|||||||
painter->setFont( font );
|
painter->setFont( font );
|
||||||
|
|
||||||
painter->setFont( boldFont );
|
painter->setFont( boldFont );
|
||||||
painter->drawText( option.rect.adjusted( 56, 6, -100, -option.rect.height() + 20 ), index.data().toString() );
|
painter->drawText( option.rect.adjusted( option.fontMetrics.height() * 4, 6, -100, -option.rect.height() + boldFontMetrics.height() + 6 ), index.data().toString() );
|
||||||
|
|
||||||
painter->restore();
|
painter->restore();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user