Esempio n. 1
0
QSpotifyAlbum::QSpotifyAlbum(sp_album *album)
    : QSpotifyObject(true)
    , m_isAvailable(false)
    , m_year(0)
    , m_type(Unknown)
{
    connect(this, SIGNAL(dataChanged()), this, SIGNAL(albumDataChanged()));
    sp_album_add_ref(album);
    m_sp_album = album;
    metadataUpdated();
}
/*!
 Sets the data model for the container.
 */
void MpCollectionContainerAlbums::setDataModel( MpCollectionDataModel *dataModel )
{
    TX_ENTRY
    MpCollectionContainer::setDataModel(dataModel);
    if ( mCollectionContext == ECollectionContextAlbums ) {
        if ( mList ) {
            mList->setModel(dataModel);
            if ( mCollectionData->count() ) {
                mList->scrollTo( dataModel->index(mCurrentAlbumIndex, 0) );
            }
        }
    }
    else if ( mCollectionContext == ECollectionContextAlbumsTBone ) {
        if ( mTBone ) {
            mTBone->setModel(dataModel);
            mTBone->scrollTo( dataModel->index(mCurrentAlbumIndex, 0) );
            if ( mTBoneListModel == 0 ) {
                mTBoneListModel = new MpCollectionTBoneListDataModel(mCollectionData, MpEngineFactory::sharedEngine()->playbackData());
                connect( mTBoneListModel, SIGNAL(albumDataChanged()), this, SLOT(albumDataChanged()) );
                connect( mTBoneListModel, SIGNAL(albumDataAvailable()), this, SLOT(albumDataAvailable()) );
            }
            mList->setModel(mTBoneListModel);
            if ( mCollectionData->setCurrentAlbum(mCurrentAlbumIndex) ) {
                if ( mCollectionData->albumSongsCount() > 1 ) {
                    emit shuffleEnabled(true);
                }
                else {
                    emit shuffleEnabled(false);
                }
            }
            else {
                emit findAlbumSongs(mCurrentAlbumIndex);
                emit shuffleEnabled(false);
            }
        }
    }
    TX_EXIT
}
/*!
 Constructs the collection data model.
 */
MpCollectionTBoneListDataModel::MpCollectionTBoneListDataModel( MpMpxCollectionData *collectionData, 
        MpPlaybackData *playbackData, QObject *parent )
    : QAbstractListModel( parent ),
      mCollectionData( collectionData ),
      mPlaybackData( playbackData ),
      mRowCount( 0 ),
      mCurrentSongId( 0 ),
      mPlaybackActive( false ),
      mPlaybackIndicatorEnabled( false )
{
    TX_ENTRY
    connect( mCollectionData, SIGNAL(refreshAlbumSongs()),
             this, SLOT(refreshModel()) );
    connect( mCollectionData, SIGNAL(albumDataChanged()),
             this, SIGNAL(albumDataChanged()) );
    
    if ( mPlaybackData ) {
        connect( mPlaybackData, SIGNAL(fileCorrupted( int )), 
                this, SLOT(fileCorrupted( int )));
    }
    
    TX_EXIT
}