QMimeData* MLModel::mimeData( const QModelIndexList &indexes ) const { QList< QUrl > urls; QList< int > rows; foreach( QModelIndex idx, indexes ) { if( rows.contains( idx.row() ) ) continue; rows.append( idx.row() ); AbstractPLItem* item = static_cast<AbstractPLItem*>( idx.internalPointer() ); urls.append( item->getURI() ); } QMimeData *data = new QMimeData; data->setUrls( urls ); return data; }
QMimeData *PLModel::mimeData( const QModelIndexList &indexes ) const { PlMimeData *plMimeData = new PlMimeData(); QModelIndexList list; foreach( const QModelIndex &index, indexes ) { if( index.isValid() && index.column() == 0 ) list.append(index); } qSort(list.begin(), list.end(), modelIndexLessThen); AbstractPLItem *item = NULL; foreach( const QModelIndex &index, list ) { if( item ) { AbstractPLItem *testee = getItem( index ); while( testee->parent() ) { if( testee->parent() == item || testee->parent() == item->parent() ) break; testee = testee->parent(); } if( testee->parent() == item ) continue; item = getItem( index ); } else item = getItem( index ); plMimeData->appendItem( static_cast<PLItem*>(item)->inputItem() ); } return plMimeData; }
bool VLCModel::isCurrent( const QModelIndex &index ) const { AbstractPLItem *item = getItem( index ); if ( !item ) return false; return item->inputItem() == THEMIM->currentInputItem(); }
QString VLCModel::getTitle( const QModelIndex &index ) const { AbstractPLItem *item = getItem( index ); if ( !item ) return QString(); return item->getTitle(); }
input_item_t * VLCModel::getInputItem( const QModelIndex &index ) const { AbstractPLItem *item = getItem( index ); if ( !item ) return NULL; return item->inputItem(); }
int VLCModel::itemId( const QModelIndex &index ) const { AbstractPLItem *item = getItem( index ); if ( !item ) return -1; return item->id(); }