Commit 0d9ca0e0 authored by Ilkka Ollakka's avatar Ilkka Ollakka

Qt4: highlight nodepath to current item on icon_view

Shows user where the current input is on icon_view with tree-mode.
parent 0455f985
...@@ -168,7 +168,10 @@ void PlIconViewItemDelegate::paint( QPainter * painter, const QStyleOptionViewIt ...@@ -168,7 +168,10 @@ void PlIconViewItemDelegate::paint( QPainter * painter, const QStyleOptionViewIt
QRect r( option.rect ); QRect r( option.rect );
r.setSize( QSize( 25, 25 ) ); r.setSize( QSize( 25, 25 ) );
r.translate( 5, 5 ); r.translate( 5, 5 );
painter->fillRect( r, option.palette.color( QPalette::Mid ) ); if( index.data( PLModel::IsCurrentsParentNodeRole ).toBool() )
painter->fillRect( r, option.palette.color( QPalette::Highlight ) );
else
painter->fillRect( r, option.palette.color( QPalette::Mid ) );
painter->setOpacity( 1.0 ); painter->setOpacity( 1.0 );
QPixmap dirPix( ":/type/node" ); QPixmap dirPix( ":/type/node" );
QRect r2( dirPix.rect() ); QRect r2( dirPix.rect() );
......
...@@ -378,9 +378,25 @@ QVariant PLModel::data( const QModelIndex &index, int role ) const ...@@ -378,9 +378,25 @@ QVariant PLModel::data( const QModelIndex &index, int role ) const
PL_UNLOCK; PL_UNLOCK;
return isLeaf; return isLeaf;
} }
else if( role == IsCurrentsParentNodeRole )
{
return QVariant( isParent( index, current_index ) );
}
return QVariant(); return QVariant();
} }
/* Seek from current index toward the top and see if index is one of parent nodes */
bool PLModel::isParent( const QModelIndex &index, const QModelIndex &current ) const
{
if( index == current )
return true;
if( !current.parent().isValid() )
return false;
return isParent( index, current.parent() );
}
bool PLModel::isCurrent( const QModelIndex &index ) const bool PLModel::isCurrent( const QModelIndex &index ) const
{ {
return index == current_index; return index == current_index;
......
...@@ -59,7 +59,8 @@ friend class PLSelector; ...@@ -59,7 +59,8 @@ friend class PLSelector;
public: public:
enum { enum {
IsCurrentRole = Qt::UserRole, IsCurrentRole = Qt::UserRole,
IsLeafNodeRole IsLeafNodeRole,
IsCurrentsParentNodeRole
}; };
PLModel( playlist_t *, intf_thread_t *, PLModel( playlist_t *, intf_thread_t *,
...@@ -92,6 +93,7 @@ public: ...@@ -92,6 +93,7 @@ public:
QModelIndex index( PLItem *, int c ) const; QModelIndex index( PLItem *, int c ) const;
QModelIndex index( int i_id, int c ); QModelIndex index( int i_id, int c );
QModelIndex currentIndex(); QModelIndex currentIndex();
bool isParent( const QModelIndex &index, const QModelIndex &current) const;
bool isCurrent( const QModelIndex &index ) const; bool isCurrent( const QModelIndex &index ) const;
int itemId( const QModelIndex &index ) const; int itemId( const QModelIndex &index ) const;
static int columnFromMeta( int meta_column ); static int columnFromMeta( int meta_column );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment