QVariant JobStatusModel::data( const QModelIndex& index, int role ) const { if ( !hasIndex( index.row(), index.column(), index.parent() ) ) return QVariant(); JobStatusItem* item = m_items[ index.row() ]; switch ( role ) { case Qt::DecorationRole: return item->icon(); case Qt::ToolTipRole: case Qt::DisplayRole: { if ( m_collapseCount.contains( item->type() ) ) return m_collapseCount[ item->type() ].last()->mainText(); else return item->mainText(); } case RightColumnRole: { if ( m_collapseCount.contains( item->type() ) ) return m_collapseCount[ item->type() ].count(); else return item->rightColumnText(); } case AllowMultiLineRole: return item->allowMultiLine(); } return QVariant(); }