diff --git a/src/libtomahawk/Collection.h b/src/libtomahawk/Collection.h index ed7b329bc..1ebdd28f1 100644 --- a/src/libtomahawk/Collection.h +++ b/src/libtomahawk/Collection.h @@ -48,6 +48,7 @@ public: virtual ~Collection(); virtual QString name() const; + virtual QString type() const { return QString(); } virtual void loadPlaylists() { qDebug() << Q_FUNC_INFO; } virtual void loadAutoPlaylists() { qDebug() << Q_FUNC_INFO; } diff --git a/src/libtomahawk/Source.cpp b/src/libtomahawk/Source.cpp index a98d1c5be..e85135664 100644 --- a/src/libtomahawk/Source.cpp +++ b/src/libtomahawk/Source.cpp @@ -104,8 +104,12 @@ Source::peerInfos() const collection_ptr Source::collection() const { - if( m_collections.length() ) - return m_collections.first(); + if ( m_collections.length() ) + { + foreach ( const collection_ptr& collection, m_collections ) + if ( collection->type() == "databasecollection" ) + return collection; // We assume only one is a db collection. Now get off my lawn. + } collection_ptr tmp; return tmp; diff --git a/src/libtomahawk/database/DatabaseCollection.h b/src/libtomahawk/database/DatabaseCollection.h index de94bbd6c..9325b122d 100644 --- a/src/libtomahawk/database/DatabaseCollection.h +++ b/src/libtomahawk/database/DatabaseCollection.h @@ -39,6 +39,8 @@ public: qDebug() << Q_FUNC_INFO; } + virtual QString type() const { return "databasecollection"; } + virtual void loadPlaylists(); virtual void loadAutoPlaylists(); virtual void loadStations(); diff --git a/src/libtomahawk/resolvers/ScriptCollection.h b/src/libtomahawk/resolvers/ScriptCollection.h index 949a3ddc4..10bbcd14e 100644 --- a/src/libtomahawk/resolvers/ScriptCollection.h +++ b/src/libtomahawk/resolvers/ScriptCollection.h @@ -40,6 +40,8 @@ public: QObject* parent = 0 ); virtual ~ScriptCollection(); + virtual QString type() const { return "scriptcollection"; } + private: ExternalResolver* m_resolver;