From 698037fafba6620b5fc7df242d1cb736d9bc701b Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Mon, 1 Sep 2014 04:25:55 +0200 Subject: [PATCH] * DpiScale GridView & delegate. --- src/libtomahawk/playlist/GridItemDelegate.cpp | 14 ++++++++------ src/libtomahawk/playlist/GridItemDelegate.h | 2 ++ src/libtomahawk/playlist/GridView.cpp | 6 ++++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/libtomahawk/playlist/GridItemDelegate.cpp b/src/libtomahawk/playlist/GridItemDelegate.cpp index 75bbf9276..808d32d0f 100644 --- a/src/libtomahawk/playlist/GridItemDelegate.cpp +++ b/src/libtomahawk/playlist/GridItemDelegate.cpp @@ -41,6 +41,7 @@ #include "utils/PixmapDelegateFader.h" #include "utils/Closure.h" #include "utils/AnimatedSpinner.h" +#include "utils/DpiScaler.h" #include "utils/Logger.h" namespace { @@ -52,6 +53,7 @@ GridItemDelegate::GridItemDelegate( QAbstractItemView* parent, PlayableProxyMode : QStyledItemDelegate( (QObject*)parent ) , m_view( parent ) , m_model( proxy ) + , m_margin( TomahawkUtils::DpiScaler::scaledY( parent, 32 ) ) { if ( m_view && m_view->metaObject()->indexOfSignal( "modelChanged()" ) > -1 ) connect( m_view, SIGNAL( modelChanged() ), this, SLOT( modelChanged() ) ); @@ -185,7 +187,7 @@ GridItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, QFont smallFont = font; smallFont.setPointSize( TomahawkUtils::defaultFontSize() ); - QRect textRect = option.rect.adjusted( 0, r.height() + 8, 0, 0 ); + QRect textRect = option.rect.adjusted( 0, r.height() + m_margin / 4, 0, 0 ); bool oneLiner = false; if ( bottom.isEmpty() ) oneLiner = true; @@ -205,7 +207,7 @@ GridItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, } to.setAlignment( Qt::AlignLeft | Qt::AlignTop ); - text = painter->fontMetrics().elidedText( top, Qt::ElideRight, textRect.width() - 3 ); + text = painter->fontMetrics().elidedText( top, Qt::ElideRight, textRect.width() - m_margin / 8 ); painter->drawText( textRect, text, to ); // Calculate rect of artist on-hover button click area @@ -223,7 +225,7 @@ GridItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, } to.setAlignment( Qt::AlignLeft | Qt::AlignTop ); - text = painter->fontMetrics().elidedText( top, Qt::ElideRight, textRect.width() - 3 ); + text = painter->fontMetrics().elidedText( top, Qt::ElideRight, textRect.width() - m_margin / 8 ); painter->drawText( textRect, text, to ); if ( item->album() ) @@ -244,9 +246,9 @@ GridItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, painter->setFont( f ); } - textRect.adjust( 0, 2, 0, 2 ); + textRect.adjust( 0, m_margin / 16, 0, m_margin / 16 ); to.setAlignment( Qt::AlignLeft | Qt::AlignVCenter ); - text = painter->fontMetrics().elidedText( bottom, Qt::ElideRight, textRect.width() - 3 ); + text = painter->fontMetrics().elidedText( bottom, Qt::ElideRight, textRect.width() - m_margin / 8 ); painter->drawText( textRect, text, to ); // Calculate rect of artist on-hover button click area @@ -347,7 +349,7 @@ GridItemDelegate::editorEvent( QEvent* event, QAbstractItemModel* model, const Q cRect.setHeight( cRect.width() ); HoverControls* controls = new HoverControls( m_view ); - controls->setFixedSize( 64, 40 ); + controls->setFixedSize( m_margin * 2, m_margin + m_margin / 4 ); controls->move( cRect.center() - QPoint( controls->width() / 2 -1, controls->height() / 2 -1 ) ); controls->setContentsMargins( 0, 0, 0, 0 ); controls->setFocusPolicy( Qt::NoFocus ); diff --git a/src/libtomahawk/playlist/GridItemDelegate.h b/src/libtomahawk/playlist/GridItemDelegate.h index 769242fa2..1e8fa2cd7 100644 --- a/src/libtomahawk/playlist/GridItemDelegate.h +++ b/src/libtomahawk/playlist/GridItemDelegate.h @@ -100,6 +100,8 @@ private: mutable QHash< QPersistentModelIndex, QWidget* > m_spinner; mutable QHash< QPersistentModelIndex, HoverControls* > m_hoverControls; mutable QHash< QPersistentModelIndex, QTimeLine* > m_hoverFaders; + + const int m_margin; }; #endif // GRIDITEMDELEGATE_H diff --git a/src/libtomahawk/playlist/GridView.cpp b/src/libtomahawk/playlist/GridView.cpp index d03b919aa..bed35fcae 100644 --- a/src/libtomahawk/playlist/GridView.cpp +++ b/src/libtomahawk/playlist/GridView.cpp @@ -31,6 +31,7 @@ #include "ContextMenu.h" #include "ViewManager.h" #include "MetaPlaylistInterface.h" +#include "utils/DpiScaler.h" #include "utils/Logger.h" #include "utils/AnimatedSpinner.h" #include "utils/PixmapDelegateFader.h" @@ -65,7 +66,7 @@ GridView::GridView( QWidget* parent ) setDropIndicatorShown( false ); setDragDropOverwriteMode( false ); setUniformItemSizes( true ); - setSpacing( 16 ); + setSpacing( TomahawkUtils::DpiScaler::scaledX( this, 16 ) ); setContentsMargins( 0, 0, 0, 0 ); setMouseTracking( true ); setContextMenuPolicy( Qt::CustomContextMenu ); @@ -78,7 +79,8 @@ GridView::GridView( QWidget* parent ) setAutoFitItems( true ); setAutoResize( false ); - setItemSize( QSize( 170, 170 + 56 ) ); + + setItemSize( TomahawkUtils::DpiScaler::scaled( this, QSize( 170, 170 + 56 ) ) ); setProxyModel( new PlayableProxyModel( this ) ); m_timer.setInterval( SCROLL_TIMEOUT );