From 4826492c8f893958b0d61d87cdafc7792084ebdc Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Mon, 6 Oct 2014 08:55:51 +0200 Subject: [PATCH] * PlayableModel::ensureResolved() now traverses through parent nodes. --- src/libtomahawk/playlist/PlayableModel.cpp | 10 +++++++--- src/libtomahawk/playlist/PlayableModel.h | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/libtomahawk/playlist/PlayableModel.cpp b/src/libtomahawk/playlist/PlayableModel.cpp index 9c06a898e..5f47de95d 100644 --- a/src/libtomahawk/playlist/PlayableModel.cpp +++ b/src/libtomahawk/playlist/PlayableModel.cpp @@ -840,12 +840,16 @@ PlayableModel::onPlaybackStopped() void -PlayableModel::ensureResolved() +PlayableModel::ensureResolved( const QModelIndex& parent ) { QList< query_ptr > ql; - for ( int i = 0; i < rowCount( QModelIndex() ); i++ ) + for ( int i = 0; i < rowCount( parent ); i++ ) { - query_ptr query = itemFromIndex( index( i, 0, QModelIndex() ) )->query(); + const QModelIndex idx = index( i, 0, parent ); + if ( hasChildren( idx ) ) + ensureResolved( idx ); + + query_ptr query = itemFromIndex( idx )->query(); if ( !query ) continue; diff --git a/src/libtomahawk/playlist/PlayableModel.h b/src/libtomahawk/playlist/PlayableModel.h index 43a3550ef..446e9a124 100644 --- a/src/libtomahawk/playlist/PlayableModel.h +++ b/src/libtomahawk/playlist/PlayableModel.h @@ -119,7 +119,7 @@ public: virtual Tomahawk::PlaylistModes::RepeatMode repeatMode() const; virtual bool shuffled() const { return false; } - virtual void ensureResolved(); + virtual void ensureResolved( const QModelIndex& parent = QModelIndex() ); virtual PlayableItem* itemFromIndex( const QModelIndex& index ) const; virtual PlayableItem* itemFromQuery( const Tomahawk::query_ptr& query ) const;