PLItem *item = static_cast<PLItem*>(index.internalPointer());
if( role == Qt::DisplayRole )
{
- int running_index = -1;
- int columncount = 0;
- int metadata = 1;
-
if( i_depth == DEPTH_SEL )
{
vlc_mutex_lock( &item->p_input->lock );
return QVariant(returninfo);
}
- while( metadata < COLUMN_END )
- {
- if( i_showflags & metadata )
- running_index++;
- if( running_index == index.column() )
- break;
- metadata <<= 1;
- }
-
- if( running_index != index.column() ) return QVariant();
+ int metadata = metaColumn( index.column() );
+ if( metadata == COLUMN_END ) return QVariant();
QString returninfo;
if( metadata == COLUMN_NUMBER )
else
{
char *psz = psz_column_meta( item->p_input, metadata );
- returninfo = QString( qfu( psz ) );
+ returninfo = qfu( psz );
free( psz );
}
return QVariant( returninfo );
QVariant PLModel::headerData( int section, Qt::Orientation orientation,
int role ) const
{
- int metadata=1;
- int running_index=-1;
if (orientation != Qt::Horizontal || role != Qt::DisplayRole)
return QVariant();
if( i_depth == DEPTH_SEL ) return QVariant( QString("") );
- while( metadata < COLUMN_END )
- {
- if( metadata & i_showflags )
- running_index++;
- if( running_index == section )
- break;
- metadata <<= 1;
- }
+ int meta_col = metaColumn( section );
- if( running_index != section ) return QVariant();
+ if( meta_col == COLUMN_END ) return QVariant();
- return QVariant( qfu( psz_column_title( metadata ) ) );
+ return QVariant( qfu( psz_column_title( meta_col ) ) );
}
QModelIndex PLModel::index( int row, int column, const QModelIndex &parent )
#undef CACHE
#undef ICACHE
+/* computes column id of meta data from visible column index */
+int PLModel::metaColumn( int column ) const
+{
+ int metadata = 1;
+ int running_index = -1;
+
+ while( metadata < COLUMN_END )
+ {
+ if( metadata & i_showflags )
+ running_index++;
+ if( running_index == column )
+ break;
+ metadata <<= 1;
+ }
+
+ if( running_index != column ) return COLUMN_END;
+ return metadata;
+}
/************************* Updates handling *****************************/
void PLModel::customEvent( QEvent *event )
if( node )
{
menu->addSeparator();
- QMenu *sort_menu = menu->addMenu( qtr(I_POP_SORT) );
+ QMenu *sort_menu = menu->addMenu( qtr( "Sort by ") +
+ qfu( psz_column_title( metaColumn( index.column() ) ) ) );
sort_menu->addAction( qtr( "Ascending" ),
this, SLOT( popupSortAsc() ) );
sort_menu->addAction( qtr( "Descending" ),