From af0d628a755009e83fe54a8e6d3ea4e88fb6b627 Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Wed, 16 Feb 2011 09:39:49 -0500 Subject: [PATCH] fade out bg if we're not painting alternating row colors for empty rows --- src/libtomahawk/playlist/dynamic/DynamicView.cpp | 12 +++++++++++- src/libtomahawk/playlist/dynamic/DynamicView.h | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/libtomahawk/playlist/dynamic/DynamicView.cpp b/src/libtomahawk/playlist/dynamic/DynamicView.cpp index 0516b3a55..0b37ef3a0 100644 --- a/src/libtomahawk/playlist/dynamic/DynamicView.cpp +++ b/src/libtomahawk/playlist/dynamic/DynamicView.cpp @@ -40,6 +40,7 @@ DynamicView::DynamicView( QWidget* parent ) : PlaylistView( parent ) , m_onDemand( false ) , m_checkOnCollapse( false ) + , m_fadebg( false ) { m_fadeOutAnim.setDuration( FADE_LENGTH ); m_fadeOutAnim.setCurveShape( QTimeLine::LinearCurve ); @@ -192,6 +193,7 @@ DynamicView::collapseEntries( int startRow, int num, int numToKeep ) QStyleOptionViewItemV4 opt = viewOptions(); // code taken from QTreeViewPrivate::paintAlternatingRowColors if( alternatingRowColors() ) { + m_fadebg = !style()->styleHint( QStyle::SH_ItemView_PaintAlternatingRowColorsForEmptyArea, &opt ); qDebug() << "PAINTING ALTERNATING ROW BG!: " << fadingRectViewport; int rowHeight = itemDelegate()->sizeHint( opt, QModelIndex() ).height(); int y = m_fadingIndexes.rect().topLeft().y(); @@ -266,8 +268,16 @@ DynamicView::paintEvent( QPaintEvent* event ) p.save(); QRect bg = m_fadingIndexes.rect(); bg.moveTo( m_fadingPointAnchor ); // cover up the background + if( m_fadebg ) { + p.save(); + p.fillRect( bg, Qt::white ); + + p.setOpacity( 1 - m_fadeOutAnim.currentValue() ); + } p.drawPixmap( bg, m_bg ); - + if( m_fadebg ) { + p.restore(); + } // qDebug() << "FAST SETOPACITY:" << p.paintEngine()->hasFeature(QPaintEngine::ConstantOpacity); p.setOpacity( 1 - m_fadeOutAnim.currentValue() ); diff --git a/src/libtomahawk/playlist/dynamic/DynamicView.h b/src/libtomahawk/playlist/dynamic/DynamicView.h index 73cc62035..f3dd452fc 100644 --- a/src/libtomahawk/playlist/dynamic/DynamicView.h +++ b/src/libtomahawk/playlist/dynamic/DynamicView.h @@ -76,6 +76,7 @@ private: QPixmap m_fadingIndexes; QPixmap m_slidingIndex; QPixmap m_bg; + bool m_fadebg; QTimeLine m_fadeOutAnim; QTimeLine m_slideAnim; };