mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-21 13:21:52 +02:00
use the proxymodel instead of the model directly
This commit is contained in:
@@ -67,6 +67,7 @@ public:
|
|||||||
virtual void setMaxVisibleItems( int items );
|
virtual void setMaxVisibleItems( int items );
|
||||||
|
|
||||||
virtual PlayableItem* itemFromIndex( const QModelIndex& index ) const { return sourceModel()->itemFromIndex( index ); }
|
virtual PlayableItem* itemFromIndex( const QModelIndex& index ) const { return sourceModel()->itemFromIndex( index ); }
|
||||||
|
Q_INVOKABLE virtual PlayableItem* itemFromIndex( int itemIndex ) const { return sourceModel()->itemFromIndex( itemIndex ); }
|
||||||
|
|
||||||
virtual Tomahawk::playlistinterface_ptr playlistInterface();
|
virtual Tomahawk::playlistinterface_ptr playlistInterface();
|
||||||
|
|
||||||
|
@@ -28,12 +28,12 @@ DynamicQmlWidget::DynamicQmlWidget( const dynplaylist_ptr& playlist, QWidget* pa
|
|||||||
m_model = new DynamicModel( this );
|
m_model = new DynamicModel( this );
|
||||||
m_proxyModel = new PlayableProxyModel( this );
|
m_proxyModel = new PlayableProxyModel( this );
|
||||||
m_proxyModel->setSourcePlayableModel( m_model );
|
m_proxyModel->setSourcePlayableModel( m_model );
|
||||||
|
m_proxyModel->setShowOfflineResults( false );
|
||||||
|
|
||||||
m_model->loadPlaylist( m_playlist );
|
m_model->loadPlaylist( m_playlist );
|
||||||
m_model->startOnDemand();
|
m_model->startOnDemand();
|
||||||
|
|
||||||
rootContext()->setContextProperty( "dynamicModel", m_model );
|
rootContext()->setContextProperty( "dynamicModel", m_proxyModel );
|
||||||
currentItemChanged( m_model->currentItem() );
|
currentItemChanged( m_model->currentItem() );
|
||||||
|
|
||||||
// TODO: In case QML is used in more places, this should probably be moved to some generic place
|
// TODO: In case QML is used in more places, this should probably be moved to some generic place
|
||||||
@@ -93,10 +93,12 @@ QPixmap DynamicQmlWidget::requestPixmap(const QString &id, QSize *size, const QS
|
|||||||
if( size )
|
if( size )
|
||||||
*size = QSize( width, height );
|
*size = QSize( width, height );
|
||||||
|
|
||||||
QModelIndex index = m_model->index( id.toInt(), 0, QModelIndex() );
|
QModelIndex index = m_proxyModel->index( id.toInt(), 0, QModelIndex() );
|
||||||
qDebug() << "got index" << index;
|
qDebug() << "!*!*!*! got index" << index << id;
|
||||||
if( index.isValid() ) {
|
if( index.isValid() ) {
|
||||||
PlayableItem *item = m_model->itemFromIndex( index );
|
PlayableItem *item = m_model->itemFromIndex( m_proxyModel->mapToSource( index ) );
|
||||||
|
qDebug() << "item:" << item;
|
||||||
|
qDebug() << "item2:" << item->artistName() << item->name();
|
||||||
if ( !item->album().isNull() ) {
|
if ( !item->album().isNull() ) {
|
||||||
return item->album()->cover( *size );
|
return item->album()->cover( *size );
|
||||||
} else if ( !item->artist().isNull() ) {
|
} else if ( !item->artist().isNull() ) {
|
||||||
@@ -113,9 +115,9 @@ QPixmap DynamicQmlWidget::requestPixmap(const QString &id, QSize *size, const QS
|
|||||||
return pixmap;
|
return pixmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DynamicQmlWidget::currentItemChanged(const QPersistentModelIndex ¤tIndex)
|
void DynamicQmlWidget::currentItemChanged( const QPersistentModelIndex ¤tIndex )
|
||||||
{
|
{
|
||||||
rootContext()->setContextProperty( "currentlyPlayedIndex", m_model->currentItem().row() );
|
rootContext()->setContextProperty( "currentlyPlayedIndex", m_proxyModel->mapFromSource( currentIndex ).row() );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -51,7 +51,7 @@ public:
|
|||||||
|
|
||||||
virtual bool jumpToCurrentTrack();
|
virtual bool jumpToCurrentTrack();
|
||||||
|
|
||||||
QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize);
|
QPixmap requestPixmap( const QString &id, QSize *size, const QSize &requestedSize );
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void currentItemChanged( const QPersistentModelIndex ¤tIndex );
|
void currentItemChanged( const QPersistentModelIndex ¤tIndex );
|
||||||
|
Reference in New Issue
Block a user