Ejemplo n.º 1
0
QVariant MLModel::data( const QModelIndex &index, const int role ) const
{
    if( index.isValid() )
    {
        if( role == Qt::DisplayRole || role == Qt::EditRole )
        {
            MLItem *it = static_cast<MLItem*>( index.internalPointer() );
            if( !it ) return QVariant();
            QVariant tmp = it->data( columnType( index.column() ) );
            return tmp;
        }
        else if( role == Qt::DecorationRole && index.column() == 0  )
        {
            /*
                FIXME: (see ml_type_e)
                media->type uses flags for media type information
            */
            return QVariant( icons[ getInputItem(index)->i_type ] );
        }
        else if( role == IsLeafNodeRole )
            return isLeaf( index );
        else if( role == IsCurrentsParentNodeRole )
            return isParent( index, currentIndex() );
        else if( role == IsCurrentRole )
        {
            return QVariant( isCurrent( index ) );
        }
    }
    return QVariant();
}
Ejemplo n.º 2
0
void MLModel::popupInfo()
{
    MLItem *item = static_cast< MLItem* >( current_index.internalPointer() );
    input_item_t* p_input = ml_CreateInputItem( p_ml,  item->id() );
    MediaInfoDialog *mid = new MediaInfoDialog( p_intf, p_input );
    mid->setParent( PlaylistDialog::getInstance( p_intf ),
                    Qt::Dialog );
    mid->show();
}
Ejemplo n.º 3
0
void MLModel::play( const QModelIndex &idx )
{
    if( !idx.isValid() )
        return;
    MLItem *item = static_cast< MLItem* >( idx.internalPointer() );
    if( !item )
        return;
    AddItemToPlaylist( item->id(), true, p_ml, true );
}
Ejemplo n.º 4
0
bool MLModel::setData( const QModelIndex &idx, const QVariant &value,
                             int role )
{
    if( role != Qt::EditRole || !idx.isValid() ) return false;
    MLItem *media = static_cast<MLItem*>( idx.internalPointer() );
    media->setData( columnType( idx.column() ), value );
    emit dataChanged( idx, idx );
    return true;
}
Ejemplo n.º 5
0
QStringList MLModel::selectedURIs()
{
    QStringList list;
    for( int i = 0; i < current_selection.size(); i++ )
    {
        QModelIndex idx = current_selection.value(i);
        MLItem *item = static_cast< MLItem* >( idx.internalPointer() );
        list.append( QString( item->getUri().toString() ) );
    }
    return list;
}
Ejemplo n.º 6
0
QModelIndex MLModel::getIndexByMLID( int id ) const
{
    for( int i = 0; i < rowCount( ); i++ )
    {
        QModelIndex idx = index( i, 0 );
        MLItem *item = static_cast< MLItem* >( idx.internalPointer() );
        if( item->id() == id )
            return idx;
    }
    return QModelIndex();
}
Ejemplo n.º 7
0
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() );
        MLItem* item = static_cast<MLItem*>( idx.internalPointer() );
        urls.append( item->getUri() );
    }
    QMimeData *data = new QMimeData;
    data->setUrls( urls );
    return data;
}
Ejemplo n.º 8
0
QVariant MLModel::data( const QModelIndex &index, const int role ) const
{
    if( index.isValid() )
    {
        if( role == Qt::DisplayRole || role == Qt::EditRole )
        {
            MLItem *it = static_cast<MLItem*>( index.internalPointer() );
            if( !it ) return QVariant();
            QVariant tmp = it->data( index.column() );
            return tmp;
        }
        else if( role == VLCModel::IsLeafNodeRole )
            return QVariant( true );
        else if( role == VLCModel::IsCurrentsParentNodeRole )
            return QVariant( false );
    }
    return QVariant();
}
Ejemplo n.º 9
0
static int mediaDeleted( vlc_object_t *p_this, char const *psz_var,
                                  vlc_value_t oldval, vlc_value_t newval,
                                  void *data )
{
    VLC_UNUSED( p_this ); VLC_UNUSED( psz_var ); VLC_UNUSED( oldval );

    MLModel* p_model = ( MLModel* )data;
    QModelIndex remove_idx = QModelIndex();
    for( int i = 0; i < p_model->rowCount( ); i++ )
    {
        QModelIndex idx = p_model->index( i, 0 );
        MLItem *item = static_cast< MLItem* >( idx.internalPointer() );
        if( item->id() == newval.i_int )
        {
            remove_idx = idx;
            break;
        }
    }
    if( remove_idx.isValid() )
        p_model->remove( remove_idx );
    return VLC_SUCCESS;
}