1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-09 23:57:34 +02:00

* Mark-up tracks in the sidebar when hovered.

This commit is contained in:
Christian Muehlhaeuser
2012-12-03 17:15:11 +01:00
parent 7de07aabbf
commit 3721ef2975
2 changed files with 28 additions and 5 deletions

View File

@@ -263,6 +263,12 @@ SourceDelegate::paintCollection( QPainter* painter, const QStyleOptionViewItem&
m_lockRects.remove( index ); m_lockRects.remove( index );
} }
if ( m_trackHovered == index )
{
QFont font = painter->font();
font.setUnderline( true );
painter->setFont( font );
}
textRect.adjust( 0, 0, 0, 2 ); textRect.adjust( 0, 0, 0, 2 );
text = painter->fontMetrics().elidedText( desc, Qt::ElideRight, textRect.width() - 8 ); text = painter->fontMetrics().elidedText( desc, Qt::ElideRight, textRect.width() - 8 );
QTextOption to( Qt::AlignVCenter ); QTextOption to( Qt::AlignVCenter );
@@ -626,6 +632,22 @@ SourceDelegate::editorEvent( QEvent* event, QAbstractItemModel* model, const QSt
const QRect trackRect = m_trackRects[ index ]; const QRect trackRect = m_trackRects[ index ];
const QMouseEvent* ev = static_cast< QMouseEvent* >( event ); const QMouseEvent* ev = static_cast< QMouseEvent* >( event );
hoveringTrack = trackRect.contains( ev->pos() ); hoveringTrack = trackRect.contains( ev->pos() );
if ( hoveringTrack )
{
if ( m_trackHovered != index )
{
m_trackHovered = index;
QMetaObject::invokeMethod( m_parent, "update", Qt::QueuedConnection, Q_ARG( QModelIndex, index ) );
}
}
}
if ( !hoveringTrack )
{
if ( m_trackHovered.isValid() )
QMetaObject::invokeMethod( m_parent, "update", Qt::QueuedConnection, Q_ARG( QModelIndex, m_trackHovered ) );
m_trackHovered = QPersistentModelIndex();
} }
bool lockRectContainsClick = false, headphonesRectContainsClick = false; bool lockRectContainsClick = false, headphonesRectContainsClick = false;

View File

@@ -78,6 +78,7 @@ private:
QMap< int, QString > m_dropTypeTextMap; QMap< int, QString > m_dropTypeTextMap;
QMap< int, QPixmap > m_dropTypeImageMap; QMap< int, QPixmap > m_dropTypeImageMap;
mutable QPersistentModelIndex m_trackHovered;
mutable QHash< QPersistentModelIndex, QRect > m_trackRects; mutable QHash< QPersistentModelIndex, QRect > m_trackRects;
mutable QHash< QPersistentModelIndex, QRect > m_headphoneRects; mutable QHash< QPersistentModelIndex, QRect > m_headphoneRects;
mutable QHash< QPersistentModelIndex, QRect > m_lockRects; mutable QHash< QPersistentModelIndex, QRect > m_lockRects;